| Project | Date |
|---|---|
| NLTEST | 28 Oct 2020, 11:18 |
| Steps | Scenarios | Features | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Tag | Passed | Failed | Skipped | Pending | Undefined | Total | Passed | Failed | Total | Duration | Status |
| @Service=download | 3559 | 164 | 4565 | 0 | 0 | 8288 | 172 | 164 | 336 | 49:35.433 | Failed |
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:11:05.200 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:11:05.205 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 295
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:11:12.165 response time in milliseconds: 6102.48
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:11:11 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:11:09 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/1985c906-c16d-40f2-99a7-df2592236db1.json","testRuns":{"TestRun":{"id":"EID1985c906-c16d-40f2-99a7-df2592236db1","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:11:08.762Z","testTasks":{"TestTask":{"id":"EID0bd0be14-37a3-4cf7-a3db-b734b79b734c","parent":{"ref":"EID1985c906-c16d-40f2-99a7-df2592236db1"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDbce921f9-73f4-4bc6-837b-73dc26a6bb51"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDbce921f9-73f4-4bc6-837b-73dc26a6bb51","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:11:05.652Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:11:08.284Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:11:12.172 [print] EID1985c906-c16d-40f2-99a7-df2592236db1
11:11:12.173 [print] UNDEFINED
11:11:12.173 [print] Conformance Class Download Service - Pre-defined Atom
11:11:12.173 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/1985c906-c16d-40f2-99a7-df2592236db1.json
11:11:12.183 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/log
11:11:12.184 [print] statuspath TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1
11:11:12.185 [print] progresspath TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
11:11:12.187 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:12.715 response time in milliseconds: 528.22
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:11:12 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:12.716 [print] {
"val": "7",
"max": "8",
"log": [
"28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)",
"28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:11:08 - Preparing 1 Test Task:",
"28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)",
"28.10.2020 11:11:08 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:11:08 - with parameters: ",
"28.10.2020 11:11:08 - etf.testcases = *",
"28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:11:08 - Setting state to CREATED",
"28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z",
"28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:11:10 - Project Properties: ",
"28.10.2020 11:11:10 - etf.testcases - * ",
"28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ",
"28.10.2020 11:11:10 - username - ",
"28.10.2020 11:11:10 - authUser - ",
"28.10.2020 11:11:10 - authMethod - basic ",
"28.10.2020 11:11:10 - TestRunTask initialized"
]
}
11:11:12.716 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:13.240 response time in milliseconds: 522.65
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:11:13 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:13.247 retry condition not satisfied: response.val == response.max
11:11:13.247 sleeping before retry #1
11:11:18.248 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:18.766 response time in milliseconds: 517.85
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:11:18 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:18.767 retry condition not satisfied: response.val == response.max
11:11:18.767 sleeping before retry #2
11:11:23.768 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:24.312 response time in milliseconds: 543.45
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:11:24 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:24.313 retry condition not satisfied: response.val == response.max
11:11:24.313 sleeping before retry #3
11:11:29.314 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:29.826 response time in milliseconds: 510.96
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:11:29 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"49","max":"50","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:29.826 retry condition not satisfied: response.val == response.max
11:11:29.826 sleeping before retry #4
11:11:34.827 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:35.348 response time in milliseconds: 520.60
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:11:35 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"58","max":"59","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:35.348 retry condition not satisfied: response.val == response.max
11:11:35.349 sleeping before retry #5
11:11:40.350 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:40.859 response time in milliseconds: 509.11
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:11:40 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"74","max":"75","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:40.860 retry condition not satisfied: response.val == response.max
11:11:40.860 sleeping before retry #6
11:11:45.861 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:46.387 response time in milliseconds: 522.89
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:11:46 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"78","max":"79","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized"]}
11:11:46.388 retry condition not satisfied: response.val == response.max
11:11:46.388 sleeping before retry #7
11:11:51.389 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:51.912 response time in milliseconds: 522.68
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:11:51 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"98","max":"99","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:51.912 retry condition not satisfied: response.val == response.max
11:11:51.912 sleeping before retry #8
11:11:56.913 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:57.536 response time in milliseconds: 617.32
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:11:57 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"119","max":"120","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:57.537 retry condition not satisfied: response.val == response.max
11:11:57.537 sleeping before retry #9
11:12:02.538 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:03.058 response time in milliseconds: 511.13
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:12:02 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"164","max":"165","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:12:03.058 retry condition not satisfied: response.val == response.max
11:12:03.058 sleeping before retry #10
11:12:08.059 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:08.600 response time in milliseconds: 540.68
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:12:08 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:03 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:03 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:04 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:05 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:05 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:12:08.600 retry condition not satisfied: response.val == response.max
11:12:08.600 sleeping before retry #11
11:12:13.601 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:14.118 response time in milliseconds: 516.52
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:12:14 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:11:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:08 UTC 2020)","28.10.2020 11:11:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:08 - Preparing 1 Test Task:","28.10.2020 11:11:08 - TestTask 1 (0bd0be14-37a3-4cf7-a3db-b734b79b734c)","28.10.2020 11:11:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:08 - with parameters: ","28.10.2020 11:11:08 - etf.testcases = *","28.10.2020 11:11:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:08 - Setting state to CREATED","28.10.2020 11:11:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:09 - Starting TestRun.1985c906-c16d-40f2-99a7-df2592236db1 at 2020-10-28T11:11:10Z","28.10.2020 11:11:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:10 - Project Properties: ","28.10.2020 11:11:10 - etf.testcases - * ","28.10.2020 11:11:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:11:10 - username - ","28.10.2020 11:11:10 - authUser - ","28.10.2020 11:11:10 - authMethod - basic ","28.10.2020 11:11:10 - TestRunTask initialized","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:03 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:03 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:04 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:05 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:05 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:12:14.119 retry condition not satisfied: response.val == response.max
11:12:14.119 sleeping before retry #12
11:12:19.120 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:19.629 response time in milliseconds: 508.50
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:12:19 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:12:19.629 retry condition satisfied
11:12:19.630 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:12:19.631 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:43.570 response time in milliseconds: 22977.65
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Cache-Control: public, max-age=120
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:12:42 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Last-Modified: Wed, 28 Oct 2020 11:12:19 GMT
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/1985c906-c16d-40f2-99a7-df2592236db1.json","testRuns":{"TestRun":{"id":"EID1985c906-c16d-40f2-99a7-df2592236db1","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:11:08.762Z","testTasks":{"TestTask":{"id":"EID0bd0be14-37a3-4cf7-a3db-b734b79b734c","parent":{"ref":"EID1985c906-c16d-40f2-99a7-df2592236db1"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDbce921f9-73f4-4bc6-837b-73dc26a6bb51"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDbce921f9-73f4-4bc6-837b-73dc26a6bb51","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:11:05.652Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:11:08.284Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00","testObject":{"ref":"EIDbce921f9-73f4-4bc6-837b-73dc26a6bb51"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee79011-0175-1000-c7c1-c90b3158db32","testCaseResults":{"TestCaseResult":[{"id":"EID6ee79011-0175-1000-959d-bb7f56d3b7fb","testStepResults":{"TestStepResult":[{"id":"EID6ee79012-0175-1000-a482-3dc20affb015","parent":{"ref":"EID6ee79011-0175-1000-959d-bb7f56d3b7fb"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:11:10Z","duration":15,"status":"PASSED"},{"id":"EID6ee79022-0175-1000-8a6a-cf3854eea1c7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79315-0175-1000-38ef-19bc3ab120b6","parent":{"ref":"EID6ee79022-0175-1000-8a6a-cf3854eea1c7"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee79315-0175-1000-aeda-2fc62255537d","parent":{"ref":"EID6ee79022-0175-1000-8a6a-cf3854eea1c7"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee79315-0175-1000-d19c-dfd40763dd28","parent":{"ref":"EID6ee79022-0175-1000-8a6a-cf3854eea1c7"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee79315-0175-1000-94cf-a2da9b664650","parent":{"ref":"EID6ee79022-0175-1000-8a6a-cf3854eea1c7"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID085e57ce-6414-4c75-9911-8e06cc78a9ca"},{"ref":"EIDdcaeffb5-6fc1-47dd-a120-591440460d1b"},{"ref":"EID44b53fb3-f9ac-4593-89c5-3a5ff8a95f25"}]},"parent":{"ref":"EID6ee79011-0175-1000-959d-bb7f56d3b7fb"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:11:10Z","duration":598,"status":"PASSED"}]},"parent":{"ref":"EID6ee79011-0175-1000-c7c1-c90b3158db32"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:11:10Z","duration":773,"status":"PASSED"},{"id":"EID6ee79316-0175-1000-7f8a-22060e2f32e1","testStepResults":{"TestStepResult":{"id":"EID6ee79316-0175-1000-729e-50129b7e4cda","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79530-0175-1000-234f-ad0cc032f989","parent":{"ref":"EID6ee79316-0175-1000-729e-50129b7e4cda"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee79530-0175-1000-48ff-0f348fd8fe0b","parent":{"ref":"EID6ee79316-0175-1000-729e-50129b7e4cda"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee79530-0175-1000-c7b5-4a4e1050f915","parent":{"ref":"EID6ee79316-0175-1000-729e-50129b7e4cda"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb77b309c-fe6c-449d-863f-f27f7dcdc9eb"},{"ref":"EID2836b92b-5763-4bf6-851b-d2b73b284108"},{"ref":"EID3516927d-273a-4056-85f3-6253eb30974f"}]},"parent":{"ref":"EID6ee79316-0175-1000-7f8a-22060e2f32e1"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:11:11Z","duration":449,"status":"PASSED"}},"parent":{"ref":"EID6ee79011-0175-1000-c7c1-c90b3158db32"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:11:11Z","duration":538,"status":"PASSED"}]},"parent":{"ref":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:11:10Z","duration":1311,"status":"PASSED"},{"id":"EID6ee79531-0175-1000-df26-d6b74e185b5d","testCaseResults":{"TestCaseResult":[{"id":"EID6ee79531-0175-1000-28b6-3bf3a0ce1d14","testStepResults":{"TestStepResult":[{"id":"EID6ee79531-0175-1000-2df7-0e8766e4264c","parent":{"ref":"EID6ee79531-0175-1000-28b6-3bf3a0ce1d14"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:11:12Z","duration":449,"status":"PASSED"},{"id":"EID6ee79532-0175-1000-670e-d75b7b830949","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee798cb-0175-1000-c299-cb085f249905","parent":{"ref":"EID6ee79532-0175-1000-670e-d75b7b830949"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798cb-0175-1000-861e-e1b0a9a8e379","parent":{"ref":"EID6ee79532-0175-1000-670e-d75b7b830949"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798cb-0175-1000-4578-3459b263765d","parent":{"ref":"EID6ee79532-0175-1000-670e-d75b7b830949"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798cb-0175-1000-f082-92d983c86685","parent":{"ref":"EID6ee79532-0175-1000-670e-d75b7b830949"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798cb-0175-1000-3c99-9dde2a19a504","parent":{"ref":"EID6ee79532-0175-1000-670e-d75b7b830949"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b7190c8-63b7-46ce-962f-a4f6bf1dc8b7"},{"ref":"EIDcceaeee7-334f-4258-8e03-ddc9ae6142cb"},{"ref":"EID064f78c4-6c5b-4ebd-83e1-0fb920c38dfb"}]},"parent":{"ref":"EID6ee79531-0175-1000-28b6-3bf3a0ce1d14"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:11:12Z","duration":807,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:11:12Z","duration":922,"status":"PASSED"},{"id":"EID6ee798cb-0175-1000-897e-62944c1e92ba","testStepResults":{"TestStepResult":[{"id":"EID6ee798cb-0175-1000-a45e-11f94f5ec9fa","attachments":{"attachment":[{"ref":"EIDc70324d2-349a-455a-bc31-c12c68a7280e"},{"ref":"EID3a5572d2-62d6-40ad-9ce6-524cf0e27d0d"}]},"parent":{"ref":"EID6ee798cb-0175-1000-897e-62944c1e92ba"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:11:13Z","duration":759,"status":"PASSED"},{"id":"EID6ee79c18-0175-1000-d478-03dc272b8f67","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79f0f-0175-1000-6f6f-561699d39641","parent":{"ref":"EID6ee79c18-0175-1000-d478-03dc272b8f67"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee79f0f-0175-1000-2a79-328f345591af","parent":{"ref":"EID6ee79c18-0175-1000-d478-03dc272b8f67"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee79f0f-0175-1000-02ef-aaf186f6bbd3","parent":{"ref":"EID6ee79c18-0175-1000-d478-03dc272b8f67"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee79f0f-0175-1000-665f-3752dcd2dca1","parent":{"ref":"EID6ee79c18-0175-1000-d478-03dc272b8f67"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7099504f-c137-4a96-a1b5-cbef005562e9"},{"ref":"EIDbd14947f-4663-4eb6-8c84-1e9378c50ba9"},{"ref":"EIDb1a6b770-2fa9-4212-afd3-d88873c7fca4"}]},"parent":{"ref":"EID6ee798cb-0175-1000-897e-62944c1e92ba"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:11:13Z","duration":641,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:11:13Z","duration":1604,"status":"PASSED"},{"id":"EID6ee79f10-0175-1000-769d-cd13339fbdd6","testStepResults":{"TestStepResult":[{"id":"EID6ee79f10-0175-1000-9d24-45b736ab2e85","attachments":{"attachment":[{"ref":"EIDcbffae8c-37ca-4d89-9767-d11515dd8a35"},{"ref":"EID88763b7d-0182-40c7-a48b-f1e25603fcf1"}]},"parent":{"ref":"EID6ee79f10-0175-1000-769d-cd13339fbdd6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":514,"status":"PASSED"},{"id":"EID6ee7a149-0175-1000-a619-f998155a100d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7a407-0175-1000-7ede-1897f5d22f78","parent":{"ref":"EID6ee7a149-0175-1000-a619-f998155a100d"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:11:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee7a407-0175-1000-e0ef-fb386e0e3992","parent":{"ref":"EID6ee7a149-0175-1000-a619-f998155a100d"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:11:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee7a407-0175-1000-a0df-70c70b61b53b","parent":{"ref":"EID6ee7a149-0175-1000-a619-f998155a100d"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:11:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee7a407-0175-1000-6ec6-8384610deec1","parent":{"ref":"EID6ee7a149-0175-1000-a619-f998155a100d"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:11:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee7a407-0175-1000-d820-59e80c13f047","parent":{"ref":"EID6ee7a149-0175-1000-a619-f998155a100d"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:11:15Z","duration":1,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5d1ccb71-1055-4f6a-9dc5-4cb94b26fbed"},{"ref":"EID8d66da0b-f3bd-4fe0-908c-8d3e4671f24f"},{"ref":"EIDa78b6c85-edda-4152-a143-4be63a642146"}]},"parent":{"ref":"EID6ee79f10-0175-1000-769d-cd13339fbdd6"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:11:15Z","duration":517,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:11:14Z","duration":1272,"status":"PASSED"},{"id":"EID6ee7a408-0175-1000-dc54-546eb8735677","testStepResults":{"TestStepResult":[{"id":"EID6ee7a408-0175-1000-beeb-599c608ad624","attachments":{"attachment":[{"ref":"EID5ef4a0c9-1163-4d59-a4f0-df93652231c0"},{"ref":"EID272a7e41-62d1-42eb-aae8-3f3abbe2f5be"}]},"parent":{"ref":"EID6ee7a408-0175-1000-dc54-546eb8735677"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:11:15Z","duration":4367,"status":"PASSED"},{"id":"EID6ee7b540-0175-1000-90bf-fe106c12ee7c","parent":{"ref":"EID6ee7a408-0175-1000-dc54-546eb8735677"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:11:20Z","duration":9,"status":"PASSED"},{"id":"EID6ee7b549-0175-1000-b00b-ece24cf35cfa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7b758-0175-1000-fa17-34a48b42c33d","parent":{"ref":"EID6ee7b549-0175-1000-b00b-ece24cf35cfa"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:11:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b758-0175-1000-be9c-f7ba0f685c67","parent":{"ref":"EID6ee7b549-0175-1000-b00b-ece24cf35cfa"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:11:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b758-0175-1000-6ed7-02daefb0eebe","parent":{"ref":"EID6ee7b549-0175-1000-b00b-ece24cf35cfa"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:11:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b758-0175-1000-325c-0b09c6622793","parent":{"ref":"EID6ee7b549-0175-1000-b00b-ece24cf35cfa"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:11:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID44c81619-ac1e-472a-a0d1-8cc05c5afea9"},{"ref":"EID64c2c860-d8fb-4096-8398-783cf909b0cb"},{"ref":"EID4073bd8e-1e25-49b0-b6f8-b3066164bcc5"}]},"parent":{"ref":"EID6ee7a408-0175-1000-dc54-546eb8735677"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:11:20Z","duration":396,"status":"PASSED"},{"id":"EID6ee7b758-0175-1000-f24e-5c4af4ae92ce","attachments":{"attachment":{"ref":"EID6c472892-8963-4e03-a39e-f0f8402be182"}},"parent":{"ref":"EID6ee7a408-0175-1000-dc54-546eb8735677"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:11:20Z","duration":1,"status":"PASSED"},{"id":"EID6ee7b767-0175-1000-af50-a4c4efbd3482","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7b996-0175-1000-5e38-d447a2f3c27b","parent":{"ref":"EID6ee7b767-0175-1000-af50-a4c4efbd3482"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:11:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b996-0175-1000-aae4-ce4a1eb364a9","parent":{"ref":"EID6ee7b767-0175-1000-af50-a4c4efbd3482"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:11:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b996-0175-1000-1587-7cd758340ec8","parent":{"ref":"EID6ee7b767-0175-1000-af50-a4c4efbd3482"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:11:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b996-0175-1000-0a7e-bd08d8c8c2c3","parent":{"ref":"EID6ee7b767-0175-1000-af50-a4c4efbd3482"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:11:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee7b996-0175-1000-9f2a-31fde322aa9d","parent":{"ref":"EID6ee7b767-0175-1000-af50-a4c4efbd3482"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:11:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb7520fea-0334-49e9-b73f-646b3c2ef426"},{"ref":"EID00542328-663e-4bff-be2d-dc26441163d5"},{"ref":"EIDffabd87f-2a8b-46b2-86ce-c2f4c35c7e0f"}]},"parent":{"ref":"EID6ee7a408-0175-1000-dc54-546eb8735677"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:11:20Z","duration":343,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:11:15Z","duration":5529,"status":"PASSED"},{"id":"EID6ee7b9a1-0175-1000-8681-596c4865c9e4","testStepResults":{"TestStepResult":[{"id":"EID6ee7b9a1-0175-1000-2c0b-d540830059fe","attachments":{"attachment":[{"ref":"EIDda2ea897-4d23-4cae-995b-46f7907f05c1"},{"ref":"EID740db037-9f42-4636-8cf1-85334d0c1373"}]},"parent":{"ref":"EID6ee7b9a1-0175-1000-8681-596c4865c9e4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:11:21Z","duration":1242,"status":"PASSED"},{"id":"EID6ee7becc-0175-1000-9a93-cff2dce689ce","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7c4ea-0175-1000-ad98-3d68d4bca07f","parent":{"ref":"EID6ee7becc-0175-1000-9a93-cff2dce689ce"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:11:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee7c4ea-0175-1000-b76e-90a0d4873c82","parent":{"ref":"EID6ee7becc-0175-1000-9a93-cff2dce689ce"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:11:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee7c4ea-0175-1000-5a4a-de86ca56e2f7","parent":{"ref":"EID6ee7becc-0175-1000-9a93-cff2dce689ce"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:11:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee7c4ea-0175-1000-056e-6095b20c211a","parent":{"ref":"EID6ee7becc-0175-1000-9a93-cff2dce689ce"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:11:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID52f45201-90fe-4172-9038-d83256984c0d"},{"ref":"EID0d893b4f-bf94-441a-a335-4f5785cd65b3"},{"ref":"EID30649aff-8931-4fdd-8657-491fa1f83ba4"}]},"parent":{"ref":"EID6ee7b9a1-0175-1000-8681-596c4865c9e4"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:11:22Z","duration":1466,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:11:21Z","duration":2907,"status":"PASSED"},{"id":"EID6ee7c4fc-0175-1000-2831-6e369ac37073","testStepResults":{"TestStepResult":[{"id":"EID6ee7c505-0175-1000-2814-61fd7f8bafd5","attachments":{"attachment":[{"ref":"EID629c5e0f-6eca-4d91-8a00-dc41dcf8562c"},{"ref":"EID77ee999d-4d2c-419b-b871-1f984b85fd04"}]},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:11:24Z","duration":399,"status":"PASSED"},{"id":"EID6ee7c6dc-0175-1000-423e-0828a463a66d","parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:11:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee7c6dd-0175-1000-13a4-3627869f7b73","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7ca35-0175-1000-f0f8-96dd715fa43e","parent":{"ref":"EID6ee7c6dd-0175-1000-13a4-3627869f7b73"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:11:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ca35-0175-1000-857f-9df875b153c3","parent":{"ref":"EID6ee7c6dd-0175-1000-13a4-3627869f7b73"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:11:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ca35-0175-1000-01d7-84ad0f2341d0","parent":{"ref":"EID6ee7c6dd-0175-1000-13a4-3627869f7b73"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:11:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ca35-0175-1000-0ff1-3c82375f7d79","parent":{"ref":"EID6ee7c6dd-0175-1000-13a4-3627869f7b73"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:11:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa6880bb3-76d8-4fd8-9829-b55e2a494d94"},{"ref":"EID610ec90b-c5c3-4ccd-8e75-74f8739e0eaa"},{"ref":"EID0f3702cb-940b-48e5-b456-cfab7762bb89"}]},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:11:24Z","duration":706,"status":"PASSED"},{"id":"EID6ee7ca3e-0175-1000-d683-f91050273d97","attachments":{"attachment":{"ref":"EIDf1cee728-296a-4a15-99e2-00cc05ea5786"}},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:11:25Z","duration":1,"status":"PASSED"},{"id":"EID6ee7ca55-0175-1000-d10e-5fed954c1345","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7cba0-0175-1000-dece-261c244ad5c1","parent":{"ref":"EID6ee7ca55-0175-1000-d10e-5fed954c1345"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:11:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee7cba0-0175-1000-e471-f4a1f858e420","parent":{"ref":"EID6ee7ca55-0175-1000-d10e-5fed954c1345"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:11:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee7cba0-0175-1000-095a-6a4c379140ab","parent":{"ref":"EID6ee7ca55-0175-1000-d10e-5fed954c1345"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:11:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdff8f54f-930c-417b-95d7-340724559442"},{"ref":"EIDa1604987-5421-409f-898e-0653b288b544"},{"ref":"EIDa599fa1f-e534-4313-8832-8c89a2a6eb84"}]},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:11:25Z","duration":270,"status":"PASSED"},{"id":"EID6ee7cba9-0175-1000-d711-069fa69262e8","attachments":{"attachment":{"ref":"EID809584d4-1966-4d51-91b9-21fb7afb3071"}},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:11:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee7cbb9-0175-1000-6858-4a836c59b897","attachments":{"attachment":{"ref":"EID10dcbd6a-d0e9-4865-afe2-7cbfeea7962a"}},"parent":{"ref":"EID6ee7c4fc-0175-1000-2831-6e369ac37073"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:11:26Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:11:24Z","duration":1743,"status":"PASSED"},{"id":"EID6ee7cbcb-0175-1000-ed8b-752c08217b2f","testStepResults":{"TestStepResult":[{"id":"EID6ee7cbd4-0175-1000-dd20-885174600e9c","attachments":{"attachment":[{"ref":"EID19450866-35ce-4734-97e5-63c9a0cec521"},{"ref":"EID97842568-aa5a-4652-a5dd-af6e8d506a9d"}]},"parent":{"ref":"EID6ee7cbcb-0175-1000-ed8b-752c08217b2f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:11:26Z","duration":690,"status":"PASSED"},{"id":"EID6ee7ceb0-0175-1000-de61-bcb219c55f4f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7d637-0175-1000-97a7-d873de3ef8dd","parent":{"ref":"EID6ee7ceb0-0175-1000-de61-bcb219c55f4f"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:11:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d637-0175-1000-d4a2-fae4f1d3a3c1","parent":{"ref":"EID6ee7ceb0-0175-1000-de61-bcb219c55f4f"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:11:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d637-0175-1000-d987-fd9ff30c8ffd","parent":{"ref":"EID6ee7ceb0-0175-1000-de61-bcb219c55f4f"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:11:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d637-0175-1000-a334-912b5dce3bae","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee7ceb0-0175-1000-de61-bcb219c55f4f"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:11:28Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDec9cfe6b-6831-482e-8e42-befb3e4d7b14"},{"ref":"EIDc206cc66-4c07-4c80-9821-04b5ae6e9e7c"},{"ref":"EID02101ddf-9821-4dd6-b694-5a9dc90fed79"}]},"parent":{"ref":"EID6ee7cbcb-0175-1000-ed8b-752c08217b2f"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:11:26Z","duration":1785,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:11:26Z","duration":2680,"status":"PASSED_MANUAL"},{"id":"EID6ee7d643-0175-1000-0039-4b81fc3cafd2","testStepResults":{"TestStepResult":{"id":"EID6ee7d643-0175-1000-2707-093737842ac6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7d82e-0175-1000-eb32-d602347c2f58","parent":{"ref":"EID6ee7d643-0175-1000-2707-093737842ac6"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:11:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d82e-0175-1000-f5a2-1ff74aab0051","parent":{"ref":"EID6ee7d643-0175-1000-2707-093737842ac6"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:11:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d82e-0175-1000-7147-d0c829f323e7","parent":{"ref":"EID6ee7d643-0175-1000-2707-093737842ac6"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:11:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee7d82e-0175-1000-c7ac-1ab0fc2c6f83","parent":{"ref":"EID6ee7d643-0175-1000-2707-093737842ac6"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:11:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3a4bbe32-0820-4abb-bfaf-248ebf6f79bd"},{"ref":"EIDbde5aaab-b61a-4933-9fab-9c9b971e4030"},{"ref":"EID70345573-a74b-4786-85b7-fe21dcf316ef"}]},"parent":{"ref":"EID6ee7d643-0175-1000-0039-4b81fc3cafd2"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:11:28Z","duration":399,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:11:28Z","duration":492,"status":"PASSED"},{"id":"EID6ee7d82f-0175-1000-98fc-e301948ba3a8","testStepResults":{"TestStepResult":{"id":"EID6ee7d837-0175-1000-22ae-ca686c449913","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7dae1-0175-1000-81f8-73632abdbb45","parent":{"ref":"EID6ee7d837-0175-1000-22ae-ca686c449913"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:11:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee7dae2-0175-1000-cc9e-e1846942da0e","parent":{"ref":"EID6ee7d837-0175-1000-22ae-ca686c449913"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:11:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee7dae2-0175-1000-7e5d-306e5a388adf","parent":{"ref":"EID6ee7d837-0175-1000-22ae-ca686c449913"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:11:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee7dae2-0175-1000-a4d0-7fb1338833e8","parent":{"ref":"EID6ee7d837-0175-1000-22ae-ca686c449913"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:11:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID06d340e8-35ce-41eb-8a03-0b46e2bfbf5e"},{"ref":"EIDa986f632-d36f-46eb-ad18-b0142ab27ca9"},{"ref":"EID489528d2-8e75-4071-80ba-43f071689015"}]},"parent":{"ref":"EID6ee7d82f-0175-1000-98fc-e301948ba3a8"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:11:29Z","duration":568,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:11:29Z","duration":691,"status":"PASSED"},{"id":"EID6ee7dae2-0175-1000-620e-58f2b2cbbe45","testStepResults":{"TestStepResult":[{"id":"EID6ee7daeb-0175-1000-d34e-1806197ba1d3","attachments":{"attachment":[{"ref":"EIDa1ef1ade-29d5-4b07-a62f-e7e7280e40f0"},{"ref":"EIDf39cee14-769e-425b-a323-ecfb44c7e599"},{"ref":"EID241248dc-20da-42aa-a9fc-2fc25919cf05"},{"ref":"EID8559d7aa-b739-417b-b5a1-e50eff6ec4f4"},{"ref":"EID3b88e572-5c05-4f36-9dbd-afae2187094e"},{"ref":"EIDe9386005-1ed2-4b00-84a0-99bd57505dac"},{"ref":"EIDd2493a63-0260-4667-a73d-eb311fe73c72"},{"ref":"EID73aae37e-b91c-43cb-aee2-75308c16a83c"},{"ref":"EIDa68d3e48-3358-4f7e-93c6-8315f7075b57"},{"ref":"EIDa65af3fa-39fc-4fd1-988c-3d1381628e7f"},{"ref":"EID0eb6332b-d129-465f-a8e7-d35d3f2ae4ec"},{"ref":"EID7ef2880c-85d4-4769-870c-680f751928a8"}]},"parent":{"ref":"EID6ee7dae2-0175-1000-620e-58f2b2cbbe45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:11:30Z","duration":1720,"status":"PASSED"},{"id":"EID6ee7e2cc-0175-1000-efd1-88d97873d461","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7ed70-0175-1000-7735-156a34ddef53","parent":{"ref":"EID6ee7e2cc-0175-1000-efd1-88d97873d461"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed70-0175-1000-f13a-0e1e189ee9f5","parent":{"ref":"EID6ee7e2cc-0175-1000-efd1-88d97873d461"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed70-0175-1000-590d-e132c76be412","parent":{"ref":"EID6ee7e2cc-0175-1000-efd1-88d97873d461"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed70-0175-1000-9a86-0a1bfde6fb87","parent":{"ref":"EID6ee7e2cc-0175-1000-efd1-88d97873d461"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed70-0175-1000-cd4b-300ea456d8f0","parent":{"ref":"EID6ee7e2cc-0175-1000-efd1-88d97873d461"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID425c1e7c-fa3d-4aaf-bd91-9593676f5123"},{"ref":"EIDf3f625ed-1986-4d49-ac47-7ab4b519fdaf"},{"ref":"EID369a4923-bf04-48df-b1c3-ff43c5a5ea35"}]},"parent":{"ref":"EID6ee7dae2-0175-1000-620e-58f2b2cbbe45"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:11:32Z","duration":2533,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:11:30Z","duration":4751,"status":"PASSED"},{"id":"EID6ee7ed71-0175-1000-8f55-e30d7fd9d29a","testStepResults":{"TestStepResult":{"id":"EID6ee7ed71-0175-1000-2f76-b926dc090a5e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f0c6-0175-1000-24aa-c9d0f136121e","parent":{"ref":"EID6ee7ed71-0175-1000-2f76-b926dc090a5e"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f0c6-0175-1000-de4f-bb81312c3bec","parent":{"ref":"EID6ee7ed71-0175-1000-2f76-b926dc090a5e"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f0c6-0175-1000-5021-57ee49881628","parent":{"ref":"EID6ee7ed71-0175-1000-2f76-b926dc090a5e"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f0c6-0175-1000-b681-f5a53e3e811f","parent":{"ref":"EID6ee7ed71-0175-1000-2f76-b926dc090a5e"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID585f7872-393b-4e69-90f2-aac02619ebce"},{"ref":"EID36ee8dc0-d40a-43ee-9e19-73e4b127b5e0"},{"ref":"EIDe300bb4c-4a0f-4042-a95e-9a9815d826af"}]},"parent":{"ref":"EID6ee7ed71-0175-1000-8f55-e30d7fd9d29a"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:11:34Z","duration":678,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:11:34Z","duration":853,"status":"PASSED"},{"id":"EID6ee7f0c6-0175-1000-5029-89d6be889ae5","testStepResults":{"TestStepResult":{"id":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f9c7-0175-1000-3d4d-9970314a5ecc","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-2085-d692f213be11","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-e5ad-7cd16a633412","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-a0df-fc3e1fdfd599","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-19ed-0d4a42103563","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-a673-267bab1c96c3","parent":{"ref":"EID6ee7f0c6-0175-1000-eae1-f3833b6a3f87"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdd282a97-63d3-4185-9350-8758db237aa6"},{"ref":"EIDa30a9734-ce2a-45c9-8bd2-1637c563a98c"},{"ref":"EIDe4b935f1-63c0-4dce-9036-ad3c5b50f0a2"}]},"parent":{"ref":"EID6ee7f0c6-0175-1000-5029-89d6be889ae5"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:11:35Z","duration":2167,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:11:35Z","duration":2305,"status":"PASSED"},{"id":"EID6ee7f9c7-0175-1000-ba2f-1aa6751c11ce","testStepResults":{"TestStepResult":{"id":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee80041-0175-1000-aa97-eeb3b849a400","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee80041-0175-1000-3cf6-6b0d732de719","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee80041-0175-1000-7576-0501b97448b4","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee80041-0175-1000-304a-1d71fa103c59","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee80041-0175-1000-ddd7-faeafabaa86a","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee80041-0175-1000-0d5e-a597eb9087cb","parent":{"ref":"EID6ee7f9c7-0175-1000-880e-0abcffadf90b"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfe1418c6-106c-45e9-be82-a8d449e74046"},{"ref":"EID7e704bcc-0704-4bc4-8dae-bf4fba9ed1a8"},{"ref":"EIDe34559db-9886-43c9-ad59-c6747a20a360"}]},"parent":{"ref":"EID6ee7f9c7-0175-1000-ba2f-1aa6751c11ce"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:11:37Z","duration":1530,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:11:37Z","duration":1658,"status":"PASSED"},{"id":"EID6ee8004d-0175-1000-5c42-fbd3981fe856","testStepResults":{"TestStepResult":{"id":"EID6ee8004d-0175-1000-704e-44af4838a817","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee80d82-0175-1000-50ad-2db20e5a769b","parent":{"ref":"EID6ee8004d-0175-1000-704e-44af4838a817"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d82-0175-1000-af6b-a3947c2c94e4","parent":{"ref":"EID6ee8004d-0175-1000-704e-44af4838a817"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d82-0175-1000-4513-e1ce7146e5b8","parent":{"ref":"EID6ee8004d-0175-1000-704e-44af4838a817"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d82-0175-1000-2243-7b2e0c58e969","parent":{"ref":"EID6ee8004d-0175-1000-704e-44af4838a817"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2125e472-25b6-41ec-996a-00250d1e6b24"},{"ref":"EIDc852ed47-9abe-4e5c-bb01-ff8200cae94f"},{"ref":"EID7586dcb2-26f9-4fe0-91ee-11a93c6461fb"}]},"parent":{"ref":"EID6ee8004d-0175-1000-5c42-fbd3981fe856"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:11:39Z","duration":3292,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:11:39Z","duration":3381,"status":"PASSED"},{"id":"EID6ee80d82-0175-1000-933d-8dcc4ce88b42","testStepResults":{"TestStepResult":[{"id":"EID6ee80d8b-0175-1000-e365-df19f9670443","attachments":{"attachment":[{"ref":"EID6e6c057d-919a-4d56-a16f-e9392e55dc23"},{"ref":"EID170577cb-cd7a-4aa1-b3fc-61027e23a3cf"},{"ref":"EID74601f84-38da-4780-ae38-78644d50cc25"},{"ref":"EID58d4c233-e506-4841-ae3d-9db2874f1099"}]},"parent":{"ref":"EID6ee80d82-0175-1000-933d-8dcc4ce88b42"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:11:42Z","duration":2674,"status":"PASSED"},{"id":"EID6ee8182b-0175-1000-0ab3-d0e8c448d5d3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81b5c-0175-1000-71a7-0e89ee32d089","parent":{"ref":"EID6ee8182b-0175-1000-0ab3-d0e8c448d5d3"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:11:46Z","duration":1,"status":"PASSED"},{"id":"EID6ee81b5d-0175-1000-4202-0982b1218e42","parent":{"ref":"EID6ee8182b-0175-1000-0ab3-d0e8c448d5d3"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:11:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee81b5d-0175-1000-5621-ef69e6ab8c1d","parent":{"ref":"EID6ee8182b-0175-1000-0ab3-d0e8c448d5d3"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:11:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee81b5d-0175-1000-4409-3ede4d4d7814","parent":{"ref":"EID6ee8182b-0175-1000-0ab3-d0e8c448d5d3"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:11:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID969e67d1-041b-4641-8291-4ba014389733"},{"ref":"EID27c9f7db-0801-4167-a7a6-e8c5b0f09fe2"},{"ref":"EID080802d1-9dc4-4520-867d-8c4976fa569b"}]},"parent":{"ref":"EID6ee80d82-0175-1000-933d-8dcc4ce88b42"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:11:45Z","duration":683,"status":"PASSED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:11:42Z","duration":3547,"status":"PASSED"},{"id":"EID6ee81b5d-0175-1000-fc44-97c2d0ca1f44","testStepResults":{"TestStepResult":{"id":"EID6ee81b5d-0175-1000-8002-6323bebe0531","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81d6d-0175-1000-cad1-896380dcd979","parent":{"ref":"EID6ee81b5d-0175-1000-8002-6323bebe0531"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":1,"status":"PASSED"},{"id":"EID6ee81d6e-0175-1000-c4d4-31ad1f6c10da","parent":{"ref":"EID6ee81b5d-0175-1000-8002-6323bebe0531"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d6e-0175-1000-be46-83be0611a77d","parent":{"ref":"EID6ee81b5d-0175-1000-8002-6323bebe0531"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d6e-0175-1000-9ef2-2d80e7a4d5da","parent":{"ref":"EID6ee81b5d-0175-1000-8002-6323bebe0531"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf501519a-7364-4661-81e6-da573899a76a"},{"ref":"EIDe7854a84-26f6-49de-922b-7dbffca2e76b"},{"ref":"EIDc1669833-821a-4563-a83e-c35b8d16fa75"}]},"parent":{"ref":"EID6ee81b5d-0175-1000-fc44-97c2d0ca1f44"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:11:46Z","duration":360,"status":"PASSED"}},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:11:46Z","duration":529,"status":"PASSED"},{"id":"EID6ee81d6e-0175-1000-e0c4-1010292516b2","testStepResults":{"TestStepResult":[{"id":"EID6ee81d6e-0175-1000-6f4e-841a097393fb","parent":{"ref":"EID6ee81d6e-0175-1000-e0c4-1010292516b2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d6e-0175-1000-ff9f-2bc366adb9a9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8203b-0175-1000-ca40-d86d52fb98bb","parent":{"ref":"EID6ee81d6e-0175-1000-ff9f-2bc366adb9a9"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee8203c-0175-1000-8d78-b5159de0c1f9","parent":{"ref":"EID6ee81d6e-0175-1000-ff9f-2bc366adb9a9"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee8203c-0175-1000-2ae0-3a2a8a9d9f3f","parent":{"ref":"EID6ee81d6e-0175-1000-ff9f-2bc366adb9a9"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee8203c-0175-1000-3f4c-7dfc9d25e352","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee81d6e-0175-1000-ff9f-2bc366adb9a9"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf76f7d67-c1db-45a6-b924-2b58595a6cba"},{"ref":"EID63afb4c9-36db-4bdf-9499-f07ff3dc7115"},{"ref":"EIDfde1e08e-40c6-4f7f-8138-4a9e2b49d21a"}]},"parent":{"ref":"EID6ee81d6e-0175-1000-e0c4-1010292516b2"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:11:47Z","duration":632,"status":"FAILED"}]},"parent":{"ref":"EID6ee79531-0175-1000-df26-d6b74e185b5d"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:11:47Z","duration":718,"status":"FAILED"}]},"parent":{"ref":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:11:12Z","duration":35595,"status":"FAILED"},{"id":"EID6ee8203c-0175-1000-5a6e-cd4315febb88","testCaseResults":{"TestCaseResult":[{"id":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1","testStepResults":{"TestStepResult":[{"id":"EID6ee8203d-0175-1000-6859-e5ac3bb644e4","parent":{"ref":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee8203d-0175-1000-6738-35fdc51ffd95","parent":{"ref":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":360,"status":"PASSED"},{"id":"EID6ee8203d-0175-1000-0e39-9b6041cb73a6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82368-0175-1000-020b-dd11ad693591","parent":{"ref":"EID6ee8203d-0175-1000-0e39-9b6041cb73a6"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee82368-0175-1000-7867-1aaad882a619","parent":{"ref":"EID6ee8203d-0175-1000-0e39-9b6041cb73a6"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee82368-0175-1000-69b6-a538387e8ba3","parent":{"ref":"EID6ee8203d-0175-1000-0e39-9b6041cb73a6"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf3d7e48d-f308-4193-b68a-9c9ec3fc2159"},{"ref":"EID235f2346-f1ae-456f-8609-bccbcb579067"},{"ref":"EIDba20db68-6991-480c-9c2a-19ad97a91ef3"}]},"parent":{"ref":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":716,"status":"PASSED"},{"id":"EID6ee82369-0175-1000-c771-34a4a48580b1","attachments":{"attachment":{"ref":"EID820260de-2639-4570-9cc1-bb28622f70e0"}},"parent":{"ref":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee8237a-0175-1000-6758-d10f24e487e6","parent":{"ref":"EID6ee8203d-0175-1000-4da4-2945ac9dd3d1"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:11:48Z","duration":11,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:11:47Z","duration":841,"status":"PASSED"},{"id":"EID6ee82386-0175-1000-1d2a-f3fc04705d83","testStepResults":{"TestStepResult":[{"id":"EID6ee82386-0175-1000-c7e6-0b85057c6943","parent":{"ref":"EID6ee82386-0175-1000-1d2a-f3fc04705d83"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:11:48Z","duration":449,"status":"PASSED"},{"id":"EID6ee82386-0175-1000-9188-39f5bf82bef6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82fe1-0175-1000-1a43-f6785fde394e","parent":{"ref":"EID6ee82386-0175-1000-9188-39f5bf82bef6"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:11:51Z","duration":1,"status":"PASSED"},{"id":"EID6ee82fe2-0175-1000-2c38-a7b57cd7b9ba","parent":{"ref":"EID6ee82386-0175-1000-9188-39f5bf82bef6"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee82fe2-0175-1000-6670-7f9f121fc94f","parent":{"ref":"EID6ee82386-0175-1000-9188-39f5bf82bef6"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee82fe2-0175-1000-a831-57bd3f6689f9","parent":{"ref":"EID6ee82386-0175-1000-9188-39f5bf82bef6"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee82fe2-0175-1000-23be-1faab865ec9d","parent":{"ref":"EID6ee82386-0175-1000-9188-39f5bf82bef6"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf6a1e5a2-964c-4353-844d-6c4481f778f7"},{"ref":"EIDd9bd561c-8dc8-466e-89b4-56d03e79ad39"},{"ref":"EID7434c90a-c6d5-4cd4-844f-36c06aa0e2ac"}]},"parent":{"ref":"EID6ee82386-0175-1000-1d2a-f3fc04705d83"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:11:48Z","duration":3070,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:11:48Z","duration":3164,"status":"PASSED"},{"id":"EID6ee82fe2-0175-1000-ca5a-2bb2aa5ac7cd","testStepResults":{"TestStepResult":[{"id":"EID6ee82fe2-0175-1000-8472-67a9629e8432","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee832d4-0175-1000-ec9b-b2673656eef1","parent":{"ref":"EID6ee82fe2-0175-1000-8472-67a9629e8432"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee832d4-0175-1000-1af5-80a979972f7c","parent":{"ref":"EID6ee82fe2-0175-1000-8472-67a9629e8432"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee832d4-0175-1000-c6d6-ea146a2b2dba","parent":{"ref":"EID6ee82fe2-0175-1000-8472-67a9629e8432"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID76de4aff-af7d-423a-a624-e85df7b21a87"},{"ref":"EIDedaa7144-8a37-4217-93de-1d2b71c16313"},{"ref":"EID6ba92b8b-a533-4b54-8abf-0a16bb5739f6"}]},"parent":{"ref":"EID6ee82fe2-0175-1000-ca5a-2bb2aa5ac7cd"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:11:51Z","duration":700,"status":"PASSED"},{"id":"EID6ee832d4-0175-1000-9e87-81a4518db671","attachments":{"attachment":{"ref":"EIDc65d1915-b8e1-4541-bd3d-3d7b204f267a"}},"parent":{"ref":"EID6ee82fe2-0175-1000-ca5a-2bb2aa5ac7cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:11:52Z","duration":1,"status":"PASSED"},{"id":"EID6ee832e7-0175-1000-b820-62e673b5af47","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8355f-0175-1000-055a-bf9a049480e5","parent":{"ref":"EID6ee832e7-0175-1000-b820-62e673b5af47"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee8355f-0175-1000-e02c-85bb7740d4f7","parent":{"ref":"EID6ee832e7-0175-1000-b820-62e673b5af47"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee8355f-0175-1000-8640-7bfac9f6af1f","parent":{"ref":"EID6ee832e7-0175-1000-b820-62e673b5af47"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee8355f-0175-1000-4373-032c9807131b","parent":{"ref":"EID6ee832e7-0175-1000-b820-62e673b5af47"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee8355f-0175-1000-3f07-9546ee6ca7a9","parent":{"ref":"EID6ee832e7-0175-1000-b820-62e673b5af47"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7c06421d-ec82-47f8-b602-25e3d3edb07b"},{"ref":"EIDe4a731f3-5a86-41f6-88ed-727f359f1777"},{"ref":"EID84ba5355-18a5-48cd-8a85-099ed791d424"}]},"parent":{"ref":"EID6ee82fe2-0175-1000-ca5a-2bb2aa5ac7cd"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:11:52Z","duration":539,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:11:51Z","duration":1406,"status":"PASSED"},{"id":"EID6ee83560-0175-1000-486b-aed012cb64ec","testStepResults":{"TestStepResult":[{"id":"EID6ee83560-0175-1000-fc83-1df7bcab2e66","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee83a11-0175-1000-e9a7-4ab6eef08bbf","parent":{"ref":"EID6ee83560-0175-1000-fc83-1df7bcab2e66"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee83a11-0175-1000-e028-fd9f4be458ea","parent":{"ref":"EID6ee83560-0175-1000-fc83-1df7bcab2e66"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee83a11-0175-1000-93ab-073d6a688d76","parent":{"ref":"EID6ee83560-0175-1000-fc83-1df7bcab2e66"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee83a11-0175-1000-ab97-004c1b72f405","parent":{"ref":"EID6ee83560-0175-1000-fc83-1df7bcab2e66"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc821b665-5f85-4055-bd54-06cc9b609155"},{"ref":"EID7e2bf82a-d5e7-4e2b-bc57-b2afb552afee"},{"ref":"EID2b6a301f-90dc-4a98-a48a-31adf584d7db"}]},"parent":{"ref":"EID6ee83560-0175-1000-486b-aed012cb64ec"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:11:53Z","duration":1092,"status":"PASSED"},{"id":"EID6ee83a12-0175-1000-669d-bb00ac792639","attachments":{"attachment":{"ref":"EID82135bfc-f1a7-4e59-99d6-360d4c0a4654"}},"parent":{"ref":"EID6ee83560-0175-1000-486b-aed012cb64ec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:11:54Z","duration":1,"status":"PASSED"},{"id":"EID6ee83a1f-0175-1000-464e-f832455e2ea1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee83c0d-0175-1000-5742-1731c1e92166","parent":{"ref":"EID6ee83a1f-0175-1000-464e-f832455e2ea1"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee83c0d-0175-1000-73e0-d58a9dec9dcd","parent":{"ref":"EID6ee83a1f-0175-1000-464e-f832455e2ea1"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:11:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID781d8bf8-cdbf-4193-b890-bf31edb8382b"},{"ref":"EIDf5a73f71-272c-43a5-bc18-eb4721bd0021"}]},"parent":{"ref":"EID6ee83560-0175-1000-486b-aed012cb64ec"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:11:54Z","duration":487,"status":"PASSED"},{"id":"EID6ee83c0d-0175-1000-d0a9-5c0be5f5cdc5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee83f81-0175-1000-a2c3-d8b95a5aee19","parent":{"ref":"EID6ee83c0d-0175-1000-d0a9-5c0be5f5cdc5"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:11:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee83f81-0175-1000-24be-51a095af0100","parent":{"ref":"EID6ee83c0d-0175-1000-d0a9-5c0be5f5cdc5"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:11:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee83f81-0175-1000-9c8e-42ad753bd623","parent":{"ref":"EID6ee83c0d-0175-1000-d0a9-5c0be5f5cdc5"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:11:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee83f81-0175-1000-7580-88db824b5e51","parent":{"ref":"EID6ee83c0d-0175-1000-d0a9-5c0be5f5cdc5"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:11:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID165a0eb8-554a-4e61-be85-4ecb99a7c4db"},{"ref":"EID1caa98d4-58d1-473d-a221-836ccbb136c4"},{"ref":"EID2f1bb15c-1d03-47e6-9b5a-1e2553905a28"}]},"parent":{"ref":"EID6ee83560-0175-1000-486b-aed012cb64ec"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:11:54Z","duration":641,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2593,"status":"PASSED"},{"id":"EID6ee83f82-0175-1000-b14d-278c714c1e72","testStepResults":{"TestStepResult":{"id":"EID6ee83f82-0175-1000-37c4-28c1c1edd47d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8415f-0175-1000-9fb4-478edcded282","parent":{"ref":"EID6ee83f82-0175-1000-37c4-28c1c1edd47d"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:11:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee8415f-0175-1000-f2ca-cbfb68708700","parent":{"ref":"EID6ee83f82-0175-1000-37c4-28c1c1edd47d"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:11:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee8415f-0175-1000-04f8-1229edb2ef1f","parent":{"ref":"EID6ee83f82-0175-1000-37c4-28c1c1edd47d"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:11:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID752b6618-b0ae-4a15-9e2e-d4369a0b0af7"},{"ref":"EID6cd504f5-21d9-468e-9f21-f1b00695c210"},{"ref":"EID40257754-ae59-470e-adfb-fe679b95bad5"}]},"parent":{"ref":"EID6ee83f82-0175-1000-b14d-278c714c1e72"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:11:55Z","duration":415,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:11:55Z","duration":477,"status":"PASSED"},{"id":"EID6ee8416a-0175-1000-224e-32913a589689","testStepResults":{"TestStepResult":{"id":"EID6ee8416a-0175-1000-f7a2-3770284521f6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee84bae-0175-1000-dadd-cbf666597ca8","parent":{"ref":"EID6ee8416a-0175-1000-f7a2-3770284521f6"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:11:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee84bae-0175-1000-aad3-6bb48bc56e68","parent":{"ref":"EID6ee8416a-0175-1000-f7a2-3770284521f6"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:11:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee84bae-0175-1000-fefc-5d4b0505eec5","parent":{"ref":"EID6ee8416a-0175-1000-f7a2-3770284521f6"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:11:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID49987d12-3f4b-46d7-8a12-2c086bb345d9"},{"ref":"EID4862203e-ad25-44ab-b4a6-6612f9ab63a9"},{"ref":"EID0c47fa8f-26bb-4f67-bfb6-512f5598dfa7"}]},"parent":{"ref":"EID6ee8416a-0175-1000-224e-32913a589689"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:11:56Z","duration":1619,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:11:56Z","duration":2628,"status":"PASSED"},{"id":"EID6ee84bae-0175-1000-896b-41738601cba1","testStepResults":{"TestStepResult":{"id":"EID6ee84bae-0175-1000-f67b-47dea5b77c54","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee84e33-0175-1000-3cb9-3d72ae140fe9","parent":{"ref":"EID6ee84bae-0175-1000-f67b-47dea5b77c54"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee84e33-0175-1000-3565-33f4fa955c46","parent":{"ref":"EID6ee84bae-0175-1000-f67b-47dea5b77c54"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:11:59Z","duration":1,"status":"PASSED"},{"id":"EID6ee84e34-0175-1000-06e8-892432b2bd39","parent":{"ref":"EID6ee84bae-0175-1000-f67b-47dea5b77c54"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee84e34-0175-1000-bca2-23c907361dc2","parent":{"ref":"EID6ee84bae-0175-1000-f67b-47dea5b77c54"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee84e34-0175-1000-e089-e74e1ee98311","parent":{"ref":"EID6ee84bae-0175-1000-f67b-47dea5b77c54"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3222975b-6a32-4cc1-b937-67e41630fb01"},{"ref":"EIDd5471a37-1368-45bf-a073-ee2eea24c412"},{"ref":"EID146c87d7-8154-43f5-bfe6-3c379e2a9bec"}]},"parent":{"ref":"EID6ee84bae-0175-1000-896b-41738601cba1"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:11:58Z","duration":467,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:11:58Z","duration":646,"status":"PASSED"},{"id":"EID6ee84e38-0175-1000-a89b-32d544df3014","testStepResults":{"TestStepResult":{"id":"EID6ee84e38-0175-1000-e8b5-ceec3ef78988","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee84fde-0175-1000-e9c4-8550682075e5","parent":{"ref":"EID6ee84e38-0175-1000-e8b5-ceec3ef78988"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee84fde-0175-1000-1a7a-d055045ed9a4","parent":{"ref":"EID6ee84e38-0175-1000-e8b5-ceec3ef78988"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee84fde-0175-1000-3c58-2bf6b4b957ac","parent":{"ref":"EID6ee84e38-0175-1000-e8b5-ceec3ef78988"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:11:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd220fe72-2cd2-4e91-bbd2-67625aa6f600"},{"ref":"EIDe2a101cc-53f5-4d4e-ad3c-9e3ddabc93d5"},{"ref":"EID0f64e954-b7f0-4742-9aa3-37e54c9f99c1"}]},"parent":{"ref":"EID6ee84e38-0175-1000-a89b-32d544df3014"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:11:59Z","duration":33,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:11:59Z","duration":422,"status":"PASSED"},{"id":"EID6ee84fe7-0175-1000-6eea-a89c5d1176eb","testStepResults":{"TestStepResult":{"id":"EID6ee84fe7-0175-1000-37f5-000da9980964","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee850b4-0175-1000-cb5a-a738eb5dfe3a","parent":{"ref":"EID6ee84fe7-0175-1000-37f5-000da9980964"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee850b4-0175-1000-f980-bba8ce9af77f","parent":{"ref":"EID6ee84fe7-0175-1000-37f5-000da9980964"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee850b4-0175-1000-6d92-49e86406ddd4","parent":{"ref":"EID6ee84fe7-0175-1000-37f5-000da9980964"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0857993e-9de3-476c-ae05-83cda0209301"},{"ref":"EID236e0069-0c9c-44be-8bad-34b0e43c86af"},{"ref":"EID15dc2233-ffba-4ecd-b86e-53a14f18ae97"}]},"parent":{"ref":"EID6ee84fe7-0175-1000-6eea-a89c5d1176eb"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:11:59Z","duration":105,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:11:59Z","duration":205,"status":"PASSED"},{"id":"EID6ee850b4-0175-1000-19dc-d2274bc78f1a","testStepResults":{"TestStepResult":{"id":"EID6ee850b5-0175-1000-2ded-32d15b0c7abd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85145-0175-1000-bef1-ccfedd28d571","parent":{"ref":"EID6ee850b5-0175-1000-2ded-32d15b0c7abd"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85145-0175-1000-8823-dce85763d749","parent":{"ref":"EID6ee850b5-0175-1000-2ded-32d15b0c7abd"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85145-0175-1000-028d-30bd92bb8294","parent":{"ref":"EID6ee850b5-0175-1000-2ded-32d15b0c7abd"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85145-0175-1000-28c0-b29657588eef","parent":{"ref":"EID6ee850b5-0175-1000-2ded-32d15b0c7abd"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID85e84670-15ca-4026-9a9e-1705b0e9d57f"},{"ref":"EIDbafc0d25-3c30-4be6-88b6-8a1b59d67371"},{"ref":"EIDd6c69615-e4a9-4244-b4db-d0055982c6a2"}]},"parent":{"ref":"EID6ee850b4-0175-1000-19dc-d2274bc78f1a"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:12:00Z","duration":51,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:12:00Z","duration":145,"status":"PASSED"},{"id":"EID6ee85146-0175-1000-57ca-2e506ff4935a","testStepResults":{"TestStepResult":{"id":"EID6ee85146-0175-1000-e57d-6a98cbf23b62","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee851c9-0175-1000-347d-a47d75ca8696","parent":{"ref":"EID6ee85146-0175-1000-e57d-6a98cbf23b62"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee851c9-0175-1000-d41e-cf2696a296e2","parent":{"ref":"EID6ee85146-0175-1000-e57d-6a98cbf23b62"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee851c9-0175-1000-04a2-35b66bf8b988","parent":{"ref":"EID6ee85146-0175-1000-e57d-6a98cbf23b62"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee851c9-0175-1000-5423-53597302efce","parent":{"ref":"EID6ee85146-0175-1000-e57d-6a98cbf23b62"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa1a89478-82f6-4a7f-8dd9-2fc0d3abee00"},{"ref":"EIDcfe99cc8-d499-41e9-931b-23537cfd6f5c"},{"ref":"EID67c1d7da-9350-4f36-ba9f-98bc744d51e2"}]},"parent":{"ref":"EID6ee85146-0175-1000-57ca-2e506ff4935a"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:12:00Z","duration":68,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:12:00Z","duration":131,"status":"PASSED"},{"id":"EID6ee851c9-0175-1000-4a49-76120db79796","testStepResults":{"TestStepResult":[{"id":"EID6ee851c9-0175-1000-a5fb-1ac6f3bcc17e","parent":{"ref":"EID6ee851c9-0175-1000-4a49-76120db79796"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee851ca-0175-1000-0163-75923a9b913b","parent":{"ref":"EID6ee851c9-0175-1000-4a49-76120db79796"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:12:00Z","duration":1256,"status":"PASSED"},{"id":"EID6ee851ca-0175-1000-4cc6-576f6f22864f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85281-0175-1000-abfe-2aabd0f80e3f","parent":{"ref":"EID6ee851ca-0175-1000-4cc6-576f6f22864f"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85281-0175-1000-5001-21d9d2bb16fe","parent":{"ref":"EID6ee851ca-0175-1000-4cc6-576f6f22864f"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85281-0175-1000-55b2-8106b342cf28","parent":{"ref":"EID6ee851ca-0175-1000-4cc6-576f6f22864f"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee85281-0175-1000-3f52-2f80d6532b39","parent":{"ref":"EID6ee851ca-0175-1000-4cc6-576f6f22864f"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0e2ac8ec-f5f8-4226-be25-26f963fbeb44"},{"ref":"EID46643897-bc58-4600-a8e3-f4fabd83d07e"},{"ref":"EID7bf7988e-b4d8-4c5c-8fee-5edf1944a8e1"}]},"parent":{"ref":"EID6ee851c9-0175-1000-4a49-76120db79796"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:12:00Z","duration":56,"status":"PASSED"},{"id":"EID6ee85281-0175-1000-ec0d-1081b0c771f0","attachments":{"attachment":{"ref":"EID9c634ab1-f22e-44f3-a0cf-73cee077d0c3"}},"parent":{"ref":"EID6ee851c9-0175-1000-4a49-76120db79796"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:12:00Z","duration":1,"status":"PASSED"},{"id":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8531d-0175-1000-4a1c-c07a12c20df7","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-1d06-b51b6f25e3f7","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-9731-db4c14f31b3b","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-4e51-c9a9b09ff93f","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-307c-5617b32e18c5","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-205d-9b2f474d1d86","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-5ae0-50c7c787a666","parent":{"ref":"EID6ee8528c-0175-1000-fe24-0b6bc44dcf73"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID75b9869f-bd43-4dc4-8560-7d7462c96b6f"},{"ref":"EID2f8f021e-d248-49e6-86e6-a70b86a98a4c"},{"ref":"EID56e46bbd-8050-4013-8505-1c313d4f988a"}]},"parent":{"ref":"EID6ee851c9-0175-1000-4a49-76120db79796"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:12:00Z","duration":49,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:12:00Z","duration":340,"status":"PASSED"},{"id":"EID6ee8531d-0175-1000-0c2b-da6637f46f9c","testStepResults":{"TestStepResult":[{"id":"EID6ee8531e-0175-1000-ca44-12503ddf05a3","parent":{"ref":"EID6ee8531d-0175-1000-0c2b-da6637f46f9c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:12:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee8531e-0175-1000-69be-b6903b828af8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8549f-0175-1000-860b-05361cca35ed","parent":{"ref":"EID6ee8531e-0175-1000-69be-b6903b828af8"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee8549f-0175-1000-75e7-9796c47b2113","parent":{"ref":"EID6ee8531e-0175-1000-69be-b6903b828af8"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee8549f-0175-1000-7ba5-7854c0ab2015","parent":{"ref":"EID6ee8531e-0175-1000-69be-b6903b828af8"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee8549f-0175-1000-2644-d674e9da53f3","parent":{"ref":"EID6ee8531e-0175-1000-69be-b6903b828af8"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID68d6b523-177c-462b-8a57-5c4ec151e5cb"},{"ref":"EIDdfa03490-609f-4cc4-bb14-3aa07fcee2ce"},{"ref":"EID27f6f92b-e51f-4581-aa1a-4fc1cf5fefe4"}]},"parent":{"ref":"EID6ee8531d-0175-1000-0c2b-da6637f46f9c"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:12:00Z","duration":144,"status":"PASSED"},{"id":"EID6ee854a0-0175-1000-d055-27dd072784fe","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee854be-0175-1000-b1ed-457fd9c75081","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee855ce-0175-1000-f5dd-c8af1d55fa67","parent":{"ref":"EID6ee854be-0175-1000-b1ed-457fd9c75081"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee855ce-0175-1000-50ab-d7b32d142edc","parent":{"ref":"EID6ee854be-0175-1000-b1ed-457fd9c75081"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee855ce-0175-1000-735b-0d55608e0ae3","parent":{"ref":"EID6ee854be-0175-1000-b1ed-457fd9c75081"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbefe175b-56d2-421a-8dce-f87bfb2d27ca"},{"ref":"EIDaf3d3f37-3980-4db6-8f7c-91d44682e53f"},{"ref":"EID49fda731-39f8-4960-8b50-6a02466dbe9d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:12:01Z","duration":202,"status":"PASSED"},{"id":"EID6ee855d7-0175-1000-41d6-e366bbe25d59","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8569b-0175-1000-55eb-d400b0f6fc85","parent":{"ref":"EID6ee855d7-0175-1000-41d6-e366bbe25d59"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee8569b-0175-1000-8b86-79aa86964dde","parent":{"ref":"EID6ee855d7-0175-1000-41d6-e366bbe25d59"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee8569b-0175-1000-c572-a93e4987890d","parent":{"ref":"EID6ee855d7-0175-1000-41d6-e366bbe25d59"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID326b9c1b-540e-49a9-b3f5-0247ea48538d"},{"ref":"EID726b6783-47ad-415d-a2f3-90086d0a0c95"},{"ref":"EIDa7697994-4cbc-459d-8d0a-ffdd63a48c36"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:12:01Z","duration":149,"status":"PASSED"},{"id":"EID6ee856a5-0175-1000-c3b4-e829f665257f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85724-0175-1000-d30b-ba563dab79ff","parent":{"ref":"EID6ee856a5-0175-1000-c3b4-e829f665257f"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee85724-0175-1000-23d7-6210fda1725c","parent":{"ref":"EID6ee856a5-0175-1000-c3b4-e829f665257f"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee85724-0175-1000-94c4-d41a39921621","parent":{"ref":"EID6ee856a5-0175-1000-c3b4-e829f665257f"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:12:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0250dbb2-5486-424f-88a5-e1e110362d10"},{"ref":"EIDfe4c70c8-e7ce-4380-89d9-4fe82de4120c"},{"ref":"EID5f8ccaeb-9d31-4423-97cc-a099b03e5f75"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:12:01Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6ee8531d-0175-1000-0c2b-da6637f46f9c"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:12:01Z","duration":645,"status":"PASSED"},{"id":"EID6ee85725-0175-1000-91b8-17d6fe18a605","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee857d9-0175-1000-a6c2-d29d66a4a393","parent":{"ref":"EID6ee85725-0175-1000-91b8-17d6fe18a605"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee857d9-0175-1000-9c15-2cfcd0dd9330","parent":{"ref":"EID6ee85725-0175-1000-91b8-17d6fe18a605"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee857d9-0175-1000-0401-5f845202c9fb","parent":{"ref":"EID6ee85725-0175-1000-91b8-17d6fe18a605"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee857d9-0175-1000-e563-9ee2ee1a2726","parent":{"ref":"EID6ee85725-0175-1000-91b8-17d6fe18a605"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55d9282b-c725-4634-9608-6a4961c56a1a"},{"ref":"EID225d5edc-956a-4181-a24e-7ffacb0793e8"},{"ref":"EID8624890e-1b40-4271-8b81-edfc45fcf179"}]},"parent":{"ref":"EID6ee8531d-0175-1000-0c2b-da6637f46f9c"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:12:01Z","duration":72,"status":"PASSED"}]},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:12:00Z","duration":1212,"status":"PASSED"},{"id":"EID6ee857da-0175-1000-fe5f-576393e4460b","testStepResults":{"TestStepResult":{"id":"EID6ee857e1-0175-1000-a60b-47a48f0624fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85a5f-0175-1000-9f2f-b6f8f18e68fc","parent":{"ref":"EID6ee857e1-0175-1000-a60b-47a48f0624fc"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee85a5f-0175-1000-b3e6-9e1f260f93fc","parent":{"ref":"EID6ee857e1-0175-1000-a60b-47a48f0624fc"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee85a5f-0175-1000-5bbf-5d29cb2a925d","parent":{"ref":"EID6ee857e1-0175-1000-a60b-47a48f0624fc"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee85a5f-0175-1000-debb-97d34f75c5ba","parent":{"ref":"EID6ee857e1-0175-1000-a60b-47a48f0624fc"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:12:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa692fcef-1c3d-435d-a689-7ff7741dfff5"},{"ref":"EIDf885d382-f17b-4a10-b6ec-9d40b93ad157"},{"ref":"EID5c95007b-eff6-4b84-9a4f-1e0c7f81ebc8"}]},"parent":{"ref":"EID6ee857da-0175-1000-fe5f-576393e4460b"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:12:02Z","duration":565,"status":"PASSED"}},"parent":{"ref":"EID6ee8203c-0175-1000-5a6e-cd4315febb88"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:12:02Z","duration":645,"status":"PASSED"}]},"parent":{"ref":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:11:47Z","duration":14883,"status":"PASSED"},{"id":"EID6ee85a5f-0175-1000-c13c-998e3118764a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee85a60-0175-1000-bf46-450eaa462964","testStepResults":{"TestStepResult":[{"id":"EID6ee85a60-0175-1000-a7aa-9f31136212de","parent":{"ref":"EID6ee85a60-0175-1000-bf46-450eaa462964"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:12:02Z","duration":1377,"status":"PASSED"},{"id":"EID6ee85a67-0175-1000-f90e-8b4f7202805e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85c17-0175-1000-c152-df968c7508e5","parent":{"ref":"EID6ee85a67-0175-1000-f90e-8b4f7202805e"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85c17-0175-1000-6ef4-a1df359d480e","parent":{"ref":"EID6ee85a67-0175-1000-f90e-8b4f7202805e"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85c17-0175-1000-b2c2-91ff8a4c4bd6","parent":{"ref":"EID6ee85a67-0175-1000-f90e-8b4f7202805e"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc7389c6a-a3df-4946-8dbd-3c07e45032e6"},{"ref":"EID4d2d7bbe-65e6-4646-bebd-17f83ae34521"},{"ref":"EIDa4c209dd-5c33-4aee-90f8-23e700779336"}]},"parent":{"ref":"EID6ee85a60-0175-1000-bf46-450eaa462964"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:12:02Z","duration":319,"status":"PASSED"},{"id":"EID6ee85c17-0175-1000-8af6-34c465f26cf3","attachments":{"attachment":{"ref":"EID79627cb9-d2f1-48a7-bba4-27ef7c1528cc"}},"parent":{"ref":"EID6ee85a60-0175-1000-bf46-450eaa462964"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:12:02Z","duration":457,"status":"PASSED"},{"id":"EID6ee85c2a-0175-1000-9b82-eaed2c705cff","testStepResults":{"TestStepResult":[{"id":"EID6ee85c2a-0175-1000-2568-51dba9af9afc","parent":{"ref":"EID6ee85c2a-0175-1000-9b82-eaed2c705cff"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":1377,"status":"PASSED"},{"id":"EID6ee85c32-0175-1000-6d9e-c7e270e38602","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85cd8-0175-1000-dd00-84438000bf17","parent":{"ref":"EID6ee85c32-0175-1000-6d9e-c7e270e38602"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85cd8-0175-1000-f9f0-d36e5172c67f","parent":{"ref":"EID6ee85c32-0175-1000-6d9e-c7e270e38602"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85cd8-0175-1000-81c9-c1f9238a8e07","parent":{"ref":"EID6ee85c32-0175-1000-6d9e-c7e270e38602"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85cd8-0175-1000-cd61-6568453b6912","parent":{"ref":"EID6ee85c32-0175-1000-6d9e-c7e270e38602"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1dfa521f-573c-4baf-b30a-d01aebfa45aa"},{"ref":"EIDdc4bd8e8-7071-4c7a-ab84-24852bdc5340"},{"ref":"EIDab3359b8-80f7-4018-a731-986bbdc5fc20"}]},"parent":{"ref":"EID6ee85c2a-0175-1000-9b82-eaed2c705cff"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:12:03Z","duration":90,"status":"PASSED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:12:03Z","duration":174,"status":"PASSED"},{"id":"EID6ee85cd8-0175-1000-27c8-0fc14d86247a","testStepResults":{"TestStepResult":[{"id":"EID6ee85cd8-0175-1000-ffeb-a37a72c07380","parent":{"ref":"EID6ee85cd8-0175-1000-27c8-0fc14d86247a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":1377,"status":"PASSED"},{"id":"EID6ee85cd8-0175-1000-44d7-ff4b3a6e145a","parent":{"ref":"EID6ee85cd8-0175-1000-27c8-0fc14d86247a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":28,"status":"PASSED"},{"id":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee85dc0-0175-1000-0685-6b9487de7363","parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dc0-0175-1000-24ff-a4787bfefecf","parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dc0-0175-1000-9267-178d634ebef5","parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dc0-0175-1000-6d6a-6fea8a45f267","parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dc0-0175-1000-cc43-12fb5465a92a","parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dc0-0175-1000-5e55-bb4f5dead270","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"FAILED"},{"id":"EID6ee85dc0-0175-1000-531a-099d5114232b","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee85cf4-0175-1000-cdb5-a5e36cea662c"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID2917ad72-9c29-4053-a15a-3cc0f18a43e9"},{"ref":"EIDa0c78de7-b816-4509-bf50-675f264316d3"},{"ref":"EIDf82b7ffe-85a3-4049-ae3d-2ad6d8c0e9bf"}]},"parent":{"ref":"EID6ee85cd8-0175-1000-27c8-0fc14d86247a"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:12:03Z","duration":92,"status":"FAILED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:12:03Z","duration":240,"status":"FAILED"},{"id":"EID6ee85dc8-0175-1000-371a-f9dad5fb9151","testStepResults":{"TestStepResult":[{"id":"EID6ee85dc8-0175-1000-d775-e092eea638bf","parent":{"ref":"EID6ee85dc8-0175-1000-371a-f9dad5fb9151"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":1377,"status":"PASSED"},{"id":"EID6ee85dd1-0175-1000-8cf1-d4ed1a665a19","parent":{"ref":"EID6ee85dc8-0175-1000-371a-f9dad5fb9151"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:12:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8610c-0175-1000-e397-7e51bdd0af6a","parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee8610c-0175-1000-f5fc-16e23392a922","parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee8610c-0175-1000-a7a2-62c38f4d05b5","parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee8610c-0175-1000-9dce-bf533e571a5c","parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee8610c-0175-1000-e800-00b298934ca7","parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee8610c-0175-1000-69c4-f8cfc5e483e9","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee85dd1-0175-1000-8c3a-45fd6ecd9124"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:12:04Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfd404ca4-8059-4045-b294-c7da8f88361a"},{"ref":"EID4b8c226d-24f1-4c5c-a0a2-65b5d0abc128"},{"ref":"EIDacd4c54e-6414-41be-9895-963aaf1d914a"}]},"parent":{"ref":"EID6ee85dc8-0175-1000-371a-f9dad5fb9151"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:12:03Z","duration":96,"status":"FAILED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:12:03Z","duration":844,"status":"FAILED"},{"id":"EID6ee86114-0175-1000-5fb2-e74786b41be2","testStepResults":{"TestStepResult":[{"id":"EID6ee8611e-0175-1000-7954-8ae97b28e822","parent":{"ref":"EID6ee86114-0175-1000-5fb2-e74786b41be2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:12:04Z","duration":1377,"status":"PASSED"},{"id":"EID6ee8611e-0175-1000-4dc3-21a6768576ef","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID4ded205c-7f02-44ea-853d-767a9beba369"},{"ref":"EID14336a70-b3d3-40ae-abef-afb27e4f3e06"},{"ref":"EIDb687b314-e946-4e9f-806f-0e047f473709"},{"ref":"EID686d1c0e-83ea-4acf-b798-6e2e2e72ba5d"},{"ref":"EID65490d27-4aba-4e66-8222-e370757346cd"},{"ref":"EID5388a8f3-ac22-4945-aa05-10b4e123bc13"},{"ref":"EIDf5bb7d7b-62a7-4a42-94d5-e92bfe6b1550"},{"ref":"EIDb4625fb6-1d17-4509-a0ca-ba5e277b9dd7"},{"ref":"EID7844e0f3-e2c0-4f78-aa74-755546905f0c"},{"ref":"EID2968add8-afb3-4789-a5d5-8c1b8cc421ae"},{"ref":"EID9c84da6f-69dd-427f-a8c6-ba7c4310a276"},{"ref":"EID4756eb7b-61a2-454c-a8e1-7f72c44dfae8"},{"ref":"EID6e07ccf0-6cbe-4d97-8009-15d9fdfc46a0"},{"ref":"EID1ad6e4f5-ab75-4217-90e1-161aac05ecf5"},{"ref":"EID276ae25a-c5ff-4c75-acf4-abd3c2830040"}]},"parent":{"ref":"EID6ee86114-0175-1000-5fb2-e74786b41be2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:12:04Z","duration":1010,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:12:04Z","duration":1482,"status":"SKIPPED"},{"id":"EID6ee866df-0175-1000-24a2-f227acfa93bd","testStepResults":{"TestStepResult":[{"id":"EID6ee866e7-0175-1000-0fb3-9271fe835c73","parent":{"ref":"EID6ee866df-0175-1000-24a2-f227acfa93bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:12:05Z","duration":1377,"status":"PASSED"},{"id":"EID6ee866e7-0175-1000-0dbb-112e5e4ae21a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee86806-0175-1000-06f3-0394f4cd94a1","parent":{"ref":"EID6ee866e7-0175-1000-0dbb-112e5e4ae21a"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86806-0175-1000-600a-501b60d072dc","parent":{"ref":"EID6ee866e7-0175-1000-0dbb-112e5e4ae21a"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86806-0175-1000-9be7-ee402c8f72f0","parent":{"ref":"EID6ee866e7-0175-1000-0dbb-112e5e4ae21a"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86806-0175-1000-5785-ce3345a6a4bc","parent":{"ref":"EID6ee866e7-0175-1000-0dbb-112e5e4ae21a"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaaec8212-0d44-4604-9e50-361a7647adc2"},{"ref":"EID62d41f5b-1913-4adc-89bb-ac3503123205"},{"ref":"EID806891fb-a2bd-469a-8da8-0cf13420ab80"}]},"parent":{"ref":"EID6ee866df-0175-1000-24a2-f227acfa93bd"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:12:05Z","duration":138,"status":"PASSED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:12:05Z","duration":296,"status":"PASSED"},{"id":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d","testStepResults":{"TestStepResult":[{"id":"EID6ee86829-0175-1000-cbbe-89bd2ee96999","parent":{"ref":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:12:06Z","duration":1377,"status":"PASSED"},{"id":"EID6ee86829-0175-1000-8c2e-9b327fa03911","parent":{"ref":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86829-0175-1000-be35-a22e4e31c7d2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee86912-0175-1000-013a-e7e8aec26cf6","parent":{"ref":"EID6ee86829-0175-1000-be35-a22e4e31c7d2"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86912-0175-1000-2cb0-1886c5489cd8","parent":{"ref":"EID6ee86829-0175-1000-be35-a22e4e31c7d2"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86912-0175-1000-0f74-1ccec10cc947","parent":{"ref":"EID6ee86829-0175-1000-be35-a22e4e31c7d2"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee86912-0175-1000-aa5b-b1fa25aa74fe","parent":{"ref":"EID6ee86829-0175-1000-be35-a22e4e31c7d2"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb9b068f6-e286-4462-8657-3927391bb9e7"},{"ref":"EID0be44902-aa16-4b25-b2b9-393f072f2ee5"},{"ref":"EIDdb5031bd-0e0d-4105-a83c-b343d34e569b"}]},"parent":{"ref":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:12:06Z","duration":95,"status":"PASSED"},{"id":"EID6ee86912-0175-1000-a101-a07904efad17","attachments":{"attachment":{"ref":"EID699a22e0-42b2-4e12-87bb-08c11d5ff36c"}},"parent":{"ref":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:12:06Z","duration":1,"status":"PASSED"},{"id":"EID6ee8694a-0175-1000-6b8c-e0d379d08c93","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8695e-0175-1000-c902-b61d85d76133","parent":{"ref":"EID6ee8694a-0175-1000-6b8c-e0d379d08c93"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee8695e-0175-1000-89f7-d79675e04e32","parent":{"ref":"EID6ee8694a-0175-1000-6b8c-e0d379d08c93"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee8695e-0175-1000-7736-bf594e96309a","parent":{"ref":"EID6ee8694a-0175-1000-6b8c-e0d379d08c93"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID96e2bb3e-1d52-4dc8-bab6-a9e06e23d286"},{"ref":"EID2f563619-d52b-4e9f-9167-4999e80329ff"}]},"parent":{"ref":"EID6ee86807-0175-1000-0da2-3f2f81b57f0d"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:12:06Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee85a5f-0175-1000-c13c-998e3118764a"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:12:06Z","duration":343,"status":"PASSED"}]},"parent":{"ref":"EIDdcbde145-24a2-4238-a4b0-1aacef650d00"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:12:02Z","duration":3840,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID4073bd8e-1e25-49b0-b6f8-b3066164bcc5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf76f7d67-c1db-45a6-b924-2b58595a6cba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID740db037-9f42-4636-8cf1-85334d0c1373","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID740db037-9f42-4636-8cf1-85334d0c1373"}},{"type":"GetParameter","id":"EID2f1bb15c-1d03-47e6-9b5a-1e2553905a28","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID610ec90b-c5c3-4ccd-8e75-74f8739e0eaa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID610ec90b-c5c3-4ccd-8e75-74f8739e0eaa"}},{"type":"ServiceResponse","id":"EIDbd14947f-4663-4eb6-8c84-1e9378c50ba9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDbd14947f-4663-4eb6-8c84-1e9378c50ba9"}},{"type":"ServiceEndpoint","id":"EID5d1ccb71-1055-4f6a-9dc5-4cb94b26fbed","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID76de4aff-af7d-423a-a624-e85df7b21a87","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EIDf5a73f71-272c-43a5-bc18-eb4721bd0021","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"Message","id":"EID4ded205c-7f02-44ea-853d-767a9beba369","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID4ded205c-7f02-44ea-853d-767a9beba369"}},{"type":"Message","id":"EID170577cb-cd7a-4aa1-b3fc-61027e23a3cf","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID170577cb-cd7a-4aa1-b3fc-61027e23a3cf"}},{"type":"Message","id":"EID9c634ab1-f22e-44f3-a0cf-73cee077d0c3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID9c634ab1-f22e-44f3-a0cf-73cee077d0c3"}},{"type":"ServiceEndpoint","id":"EID585f7872-393b-4e69-90f2-aac02619ebce","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3516927d-273a-4056-85f3-6253eb30974f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"LogFile","id":"EID824f1129-77ba-4f42-82e0-cc746bc6d324","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID824f1129-77ba-4f42-82e0-cc746bc6d324"}},{"type":"Message","id":"EID809584d4-1966-4d51-91b9-21fb7afb3071","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID809584d4-1966-4d51-91b9-21fb7afb3071"}},{"type":"Message","id":"EID699a22e0-42b2-4e12-87bb-08c11d5ff36c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID699a22e0-42b2-4e12-87bb-08c11d5ff36c"}},{"type":"Message","id":"EIDcbffae8c-37ca-4d89-9767-d11515dd8a35","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDcbffae8c-37ca-4d89-9767-d11515dd8a35"}},{"type":"Message","id":"EID1ad6e4f5-ab75-4217-90e1-161aac05ecf5","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID1ad6e4f5-ab75-4217-90e1-161aac05ecf5"}},{"type":"ServiceEndpoint","id":"EIDec9cfe6b-6831-482e-8e42-befb3e4d7b14","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID425c1e7c-fa3d-4aaf-bd91-9593676f5123","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID629c5e0f-6eca-4d91-8a00-dc41dcf8562c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID629c5e0f-6eca-4d91-8a00-dc41dcf8562c"}},{"type":"GetParameter","id":"EIDe34559db-9886-43c9-ad59-c6747a20a360","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa30a9734-ce2a-45c9-8bd2-1637c563a98c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa30a9734-ce2a-45c9-8bd2-1637c563a98c"}},{"type":"ServiceEndpoint","id":"EIDa692fcef-1c3d-435d-a689-7ff7741dfff5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID225d5edc-956a-4181-a24e-7ffacb0793e8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID225d5edc-956a-4181-a24e-7ffacb0793e8"}},{"type":"GetParameter","id":"EIDdb5031bd-0e0d-4105-a83c-b343d34e569b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID49fda731-39f8-4960-8b50-6a02466dbe9d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID6e07ccf0-6cbe-4d97-8009-15d9fdfc46a0","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID6e07ccf0-6cbe-4d97-8009-15d9fdfc46a0"}},{"type":"Message","id":"EID65490d27-4aba-4e66-8222-e370757346cd","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID65490d27-4aba-4e66-8222-e370757346cd"}},{"type":"ServiceResponse","id":"EID27c9f7db-0801-4167-a7a6-e8c5b0f09fe2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID27c9f7db-0801-4167-a7a6-e8c5b0f09fe2"}},{"type":"ServiceResponse","id":"EIDcfe99cc8-d499-41e9-931b-23537cfd6f5c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDcfe99cc8-d499-41e9-931b-23537cfd6f5c"}},{"type":"Message","id":"EID73aae37e-b91c-43cb-aee2-75308c16a83c","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID73aae37e-b91c-43cb-aee2-75308c16a83c"}},{"type":"Message","id":"EIDf5bb7d7b-62a7-4a42-94d5-e92bfe6b1550","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDf5bb7d7b-62a7-4a42-94d5-e92bfe6b1550"}},{"type":"ServiceEndpoint","id":"EID7c06421d-ec82-47f8-b602-25e3d3edb07b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID0be44902-aa16-4b25-b2b9-393f072f2ee5","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID0be44902-aa16-4b25-b2b9-393f072f2ee5"}},{"type":"GetParameter","id":"EID02101ddf-9821-4dd6-b694-5a9dc90fed79","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDfe1418c6-106c-45e9-be82-a8d449e74046","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfde1e08e-40c6-4f7f-8138-4a9e2b49d21a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1caa98d4-58d1-473d-a221-836ccbb136c4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID1caa98d4-58d1-473d-a221-836ccbb136c4"}},{"type":"ServiceEndpoint","id":"EIDa1a89478-82f6-4a7f-8dd9-2fc0d3abee00","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDa68d3e48-3358-4f7e-93c6-8315f7075b57","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa68d3e48-3358-4f7e-93c6-8315f7075b57"}},{"type":"Message","id":"EID6e6c057d-919a-4d56-a16f-e9392e55dc23","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID6e6c057d-919a-4d56-a16f-e9392e55dc23"}},{"type":"GetParameter","id":"EID7586dcb2-26f9-4fe0-91ee-11a93c6461fb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf1cee728-296a-4a15-99e2-00cc05ea5786","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDf1cee728-296a-4a15-99e2-00cc05ea5786"}},{"type":"ServiceResponse","id":"EIDbafc0d25-3c30-4be6-88b6-8a1b59d67371","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDbafc0d25-3c30-4be6-88b6-8a1b59d67371"}},{"type":"ServiceResponse","id":"EID63afb4c9-36db-4bdf-9499-f07ff3dc7115","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID63afb4c9-36db-4bdf-9499-f07ff3dc7115"}},{"type":"ServiceEndpoint","id":"EID752b6618-b0ae-4a15-9e2e-d4369a0b0af7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID0f64e954-b7f0-4742-9aa3-37e54c9f99c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID6c472892-8963-4e03-a39e-f0f8402be182","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID6c472892-8963-4e03-a39e-f0f8402be182"}},{"type":"ServiceResponse","id":"EIDc206cc66-4c07-4c80-9821-04b5ae6e9e7c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDc206cc66-4c07-4c80-9821-04b5ae6e9e7c"}},{"type":"ServiceResponse","id":"EIDe2a101cc-53f5-4d4e-ad3c-9e3ddabc93d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDe2a101cc-53f5-4d4e-ad3c-9e3ddabc93d5"}},{"type":"ServiceEndpoint","id":"EID085e57ce-6414-4c75-9911-8e06cc78a9ca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID369a4923-bf04-48df-b1c3-ff43c5a5ea35","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID15dc2233-ffba-4ecd-b86e-53a14f18ae97","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EIDa4c209dd-5c33-4aee-90f8-23e700779336","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID36ee8dc0-d40a-43ee-9e19-73e4b127b5e0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID36ee8dc0-d40a-43ee-9e19-73e4b127b5e0"}},{"type":"ServiceEndpoint","id":"EID44c81619-ac1e-472a-a0d1-8cc05c5afea9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDdff8f54f-930c-417b-95d7-340724559442","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDedaa7144-8a37-4217-93de-1d2b71c16313","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDedaa7144-8a37-4217-93de-1d2b71c16313"}},{"type":"ServiceResponse","id":"EID4b8c226d-24f1-4c5c-a0a2-65b5d0abc128","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID4b8c226d-24f1-4c5c-a0a2-65b5d0abc128"}},{"type":"ServiceEndpoint","id":"EID781d8bf8-cdbf-4193-b890-bf31edb8382b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EID8b7190c8-63b7-46ce-962f-a4f6bf1dc8b7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDffabd87f-2a8b-46b2-86ce-c2f4c35c7e0f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5f8ccaeb-9d31-4423-97cc-a099b03e5f75","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID85e84670-15ca-4026-9a9e-1705b0e9d57f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID8624890e-1b40-4271-8b81-edfc45fcf179","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID7e704bcc-0704-4bc4-8dae-bf4fba9ed1a8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID7e704bcc-0704-4bc4-8dae-bf4fba9ed1a8"}},{"type":"Message","id":"EID58d4c233-e506-4841-ae3d-9db2874f1099","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID58d4c233-e506-4841-ae3d-9db2874f1099"}},{"type":"ServiceResponse","id":"EIDcceaeee7-334f-4258-8e03-ddc9ae6142cb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDcceaeee7-334f-4258-8e03-ddc9ae6142cb"}},{"type":"Message","id":"EIDc70324d2-349a-455a-bc31-c12c68a7280e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDc70324d2-349a-455a-bc31-c12c68a7280e"}},{"type":"GetParameter","id":"EIDa7697994-4cbc-459d-8d0a-ffdd63a48c36","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID64c2c860-d8fb-4096-8398-783cf909b0cb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID64c2c860-d8fb-4096-8398-783cf909b0cb"}},{"type":"Message","id":"EID19450866-35ce-4734-97e5-63c9a0cec521","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID19450866-35ce-4734-97e5-63c9a0cec521"}},{"type":"GetParameter","id":"EID6ba92b8b-a533-4b54-8abf-0a16bb5739f6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID4756eb7b-61a2-454c-a8e1-7f72c44dfae8","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID4756eb7b-61a2-454c-a8e1-7f72c44dfae8"}},{"type":"ServiceEndpoint","id":"EID3a4bbe32-0820-4abb-bfaf-248ebf6f79bd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf82b7ffe-85a3-4049-ae3d-2ad6d8c0e9bf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID0d893b4f-bf94-441a-a335-4f5785cd65b3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID0d893b4f-bf94-441a-a335-4f5785cd65b3"}},{"type":"ServiceResponse","id":"EIDe7854a84-26f6-49de-922b-7dbffca2e76b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDe7854a84-26f6-49de-922b-7dbffca2e76b"}},{"type":"GetParameter","id":"EIDa78b6c85-edda-4152-a143-4be63a642146","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID064f78c4-6c5b-4ebd-83e1-0fb920c38dfb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0f3702cb-940b-48e5-b456-cfab7762bb89","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID9c84da6f-69dd-427f-a8c6-ba7c4310a276","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID9c84da6f-69dd-427f-a8c6-ba7c4310a276"}},{"type":"Message","id":"EIDda2ea897-4d23-4cae-995b-46f7907f05c1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDda2ea897-4d23-4cae-995b-46f7907f05c1"}},{"type":"ServiceEndpoint","id":"EIDf501519a-7364-4661-81e6-da573899a76a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID00542328-663e-4bff-be2d-dc26441163d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID00542328-663e-4bff-be2d-dc26441163d5"}},{"type":"ServiceEndpoint","id":"EIDdd282a97-63d3-4185-9350-8758db237aa6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID4862203e-ad25-44ab-b4a6-6612f9ab63a9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID4862203e-ad25-44ab-b4a6-6612f9ab63a9"}},{"type":"ServiceEndpoint","id":"EIDd220fe72-2cd2-4e91-bbd2-67625aa6f600","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EIDe300bb4c-4a0f-4042-a95e-9a9815d826af","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID06d340e8-35ce-41eb-8a03-0b46e2bfbf5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6cd504f5-21d9-468e-9f21-f1b00695c210","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID6cd504f5-21d9-468e-9f21-f1b00695c210"}},{"type":"ServiceEndpoint","id":"EID326b9c1b-540e-49a9-b3f5-0247ea48538d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EIDbefe175b-56d2-421a-8dce-f87bfb2d27ca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDf39cee14-769e-425b-a323-ecfb44c7e599","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDf39cee14-769e-425b-a323-ecfb44c7e599"}},{"type":"ServiceEndpoint","id":"EID3222975b-6a32-4cc1-b937-67e41630fb01","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDdcaeffb5-6fc1-47dd-a120-591440460d1b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDdcaeffb5-6fc1-47dd-a120-591440460d1b"}},{"type":"Message","id":"EID8559d7aa-b739-417b-b5a1-e50eff6ec4f4","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID8559d7aa-b739-417b-b5a1-e50eff6ec4f4"}},{"type":"Message","id":"EID272a7e41-62d1-42eb-aae8-3f3abbe2f5be","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID272a7e41-62d1-42eb-aae8-3f3abbe2f5be"}},{"type":"ServiceResponse","id":"EIDbde5aaab-b61a-4933-9fab-9c9b971e4030","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDbde5aaab-b61a-4933-9fab-9c9b971e4030"}},{"type":"GetParameter","id":"EID7434c90a-c6d5-4cd4-844f-36c06aa0e2ac","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID0e2ac8ec-f5f8-4226-be25-26f963fbeb44","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID0eb6332b-d129-465f-a8e7-d35d3f2ae4ec","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID0eb6332b-d129-465f-a8e7-d35d3f2ae4ec"}},{"type":"GetParameter","id":"EID40257754-ae59-470e-adfb-fe679b95bad5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID241248dc-20da-42aa-a9fc-2fc25919cf05","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID241248dc-20da-42aa-a9fc-2fc25919cf05"}},{"type":"GetParameter","id":"EIDab3359b8-80f7-4018-a731-986bbdc5fc20","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID5388a8f3-ac22-4945-aa05-10b4e123bc13","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID5388a8f3-ac22-4945-aa05-10b4e123bc13"}},{"type":"Message","id":"EID5ef4a0c9-1163-4d59-a4f0-df93652231c0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID5ef4a0c9-1163-4d59-a4f0-df93652231c0"}},{"type":"Message","id":"EID820260de-2639-4570-9cc1-bb28622f70e0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID820260de-2639-4570-9cc1-bb28622f70e0"}},{"type":"ServiceEndpoint","id":"EID7099504f-c137-4a96-a1b5-cbef005562e9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID52f45201-90fe-4172-9038-d83256984c0d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID165a0eb8-554a-4e61-be85-4ecb99a7c4db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDb9b068f6-e286-4462-8657-3927391bb9e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDfe4c70c8-e7ce-4380-89d9-4fe82de4120c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDfe4c70c8-e7ce-4380-89d9-4fe82de4120c"}},{"type":"Message","id":"EIDa1ef1ade-29d5-4b07-a62f-e7e7280e40f0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa1ef1ade-29d5-4b07-a62f-e7e7280e40f0"}},{"type":"Message","id":"EID82135bfc-f1a7-4e59-99d6-360d4c0a4654","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID82135bfc-f1a7-4e59-99d6-360d4c0a4654"}},{"type":"Message","id":"EID14336a70-b3d3-40ae-abef-afb27e4f3e06","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID14336a70-b3d3-40ae-abef-afb27e4f3e06"}},{"type":"Message","id":"EID74601f84-38da-4780-ae38-78644d50cc25","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID74601f84-38da-4780-ae38-78644d50cc25"}},{"type":"GetParameter","id":"EIDba20db68-6991-480c-9c2a-19ad97a91ef3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDb4625fb6-1d17-4509-a0ca-ba5e277b9dd7","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDb4625fb6-1d17-4509-a0ca-ba5e277b9dd7"}},{"type":"GetParameter","id":"EID44b53fb3-f9ac-4593-89c5-3a5ff8a95f25","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb1a6b770-2fa9-4212-afd3-d88873c7fca4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa6880bb3-76d8-4fd8-9829-b55e2a494d94","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa599fa1f-e534-4313-8832-8c89a2a6eb84","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDe9386005-1ed2-4b00-84a0-99bd57505dac","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDe9386005-1ed2-4b00-84a0-99bd57505dac"}},{"type":"GetParameter","id":"EID30649aff-8931-4fdd-8657-491fa1f83ba4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID75b9869f-bd43-4dc4-8560-7d7462c96b6f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDc821b665-5f85-4055-bd54-06cc9b609155","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDfd404ca4-8059-4045-b294-c7da8f88361a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID4d2d7bbe-65e6-4646-bebd-17f83ae34521","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID4d2d7bbe-65e6-4646-bebd-17f83ae34521"}},{"type":"ServiceEndpoint","id":"EIDb77b309c-fe6c-449d-863f-f27f7dcdc9eb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID080802d1-9dc4-4520-867d-8c4976fa569b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf885d382-f17b-4a10-b6ec-9d40b93ad157","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDf885d382-f17b-4a10-b6ec-9d40b93ad157"}},{"type":"GetParameter","id":"EID489528d2-8e75-4071-80ba-43f071689015","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID70345573-a74b-4786-85b7-fe21dcf316ef","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID79627cb9-d2f1-48a7-bba4-27ef7c1528cc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID79627cb9-d2f1-48a7-bba4-27ef7c1528cc"}},{"type":"ServiceEndpoint","id":"EIDaaec8212-0d44-4604-9e50-361a7647adc2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID46643897-bc58-4600-a8e3-f4fabd83d07e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID46643897-bc58-4600-a8e3-f4fabd83d07e"}},{"type":"GetParameter","id":"EID5c95007b-eff6-4b84-9a4f-1e0c7f81ebc8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDc7389c6a-a3df-4946-8dbd-3c07e45032e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd9bd561c-8dc8-466e-89b4-56d03e79ad39","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDd9bd561c-8dc8-466e-89b4-56d03e79ad39"}},{"type":"Message","id":"EID3a5572d2-62d6-40ad-9ce6-524cf0e27d0d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID3a5572d2-62d6-40ad-9ce6-524cf0e27d0d"}},{"type":"ServiceResponse","id":"EIDd5471a37-1368-45bf-a073-ee2eea24c412","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDd5471a37-1368-45bf-a073-ee2eea24c412"}},{"type":"GetParameter","id":"EID56e46bbd-8050-4013-8505-1c313d4f988a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDf6a1e5a2-964c-4353-844d-6c4481f778f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EIDd6c69615-e4a9-4244-b4db-d0055982c6a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID7ef2880c-85d4-4769-870c-680f751928a8","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID7ef2880c-85d4-4769-870c-680f751928a8"}},{"type":"ServiceEndpoint","id":"EID1dfa521f-573c-4baf-b30a-d01aebfa45aa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID10dcbd6a-d0e9-4865-afe2-7cbfeea7962a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID10dcbd6a-d0e9-4865-afe2-7cbfeea7962a"}},{"type":"Message","id":"EIDd2493a63-0260-4667-a73d-eb311fe73c72","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDd2493a63-0260-4667-a73d-eb311fe73c72"}},{"type":"ServiceResponse","id":"EIDdfa03490-609f-4cc4-bb14-3aa07fcee2ce","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDdfa03490-609f-4cc4-bb14-3aa07fcee2ce"}},{"type":"ServiceEndpoint","id":"EID68d6b523-177c-462b-8a57-5c4ec151e5cb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID3b88e572-5c05-4f36-9dbd-afae2187094e","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID3b88e572-5c05-4f36-9dbd-afae2187094e"}},{"type":"GetParameter","id":"EIDe4b935f1-63c0-4dce-9036-ad3c5b50f0a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf3f625ed-1986-4d49-ac47-7ab4b519fdaf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDf3f625ed-1986-4d49-ac47-7ab4b519fdaf"}},{"type":"GetParameter","id":"EID2f563619-d52b-4e9f-9167-4999e80329ff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDa1604987-5421-409f-898e-0653b288b544","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa1604987-5421-409f-898e-0653b288b544"}},{"type":"ServiceResponse","id":"EID726b6783-47ad-415d-a2f3-90086d0a0c95","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID726b6783-47ad-415d-a2f3-90086d0a0c95"}},{"type":"Message","id":"EID2968add8-afb3-4789-a5d5-8c1b8cc421ae","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID2968add8-afb3-4789-a5d5-8c1b8cc421ae"}},{"type":"ServiceEndpoint","id":"EID0857993e-9de3-476c-ae05-83cda0209301","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID2836b92b-5763-4bf6-851b-d2b73b284108","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID2836b92b-5763-4bf6-851b-d2b73b284108"}},{"type":"Message","id":"EID97842568-aa5a-4652-a5dd-af6e8d506a9d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID97842568-aa5a-4652-a5dd-af6e8d506a9d"}},{"type":"ServiceEndpoint","id":"EID2125e472-25b6-41ec-996a-00250d1e6b24","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID27f6f92b-e51f-4581-aa1a-4fc1cf5fefe4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EIDc852ed47-9abe-4e5c-bb01-ff8200cae94f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDc852ed47-9abe-4e5c-bb01-ff8200cae94f"}},{"type":"GetParameter","id":"EIDc1669833-821a-4563-a83e-c35b8d16fa75","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe4a731f3-5a86-41f6-88ed-727f359f1777","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDe4a731f3-5a86-41f6-88ed-727f359f1777"}},{"type":"ServiceResponse","id":"EIDaf3d3f37-3980-4db6-8f7c-91d44682e53f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDaf3d3f37-3980-4db6-8f7c-91d44682e53f"}},{"type":"ServiceResponse","id":"EID235f2346-f1ae-456f-8609-bccbcb579067","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID235f2346-f1ae-456f-8609-bccbcb579067"}},{"type":"ServiceResponse","id":"EID62d41f5b-1913-4adc-89bb-ac3503123205","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID62d41f5b-1913-4adc-89bb-ac3503123205"}},{"type":"ServiceEndpoint","id":"EID55d9282b-c725-4634-9608-6a4961c56a1a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDdc4bd8e8-7071-4c7a-ab84-24852bdc5340","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDdc4bd8e8-7071-4c7a-ab84-24852bdc5340"}},{"type":"GetParameter","id":"EID806891fb-a2bd-469a-8da8-0cf13420ab80","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID88763b7d-0182-40c7-a48b-f1e25603fcf1","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID88763b7d-0182-40c7-a48b-f1e25603fcf1"}},{"type":"ServiceResponse","id":"EIDa986f632-d36f-46eb-ad18-b0142ab27ca9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa986f632-d36f-46eb-ad18-b0142ab27ca9"}},{"type":"Message","id":"EID7844e0f3-e2c0-4f78-aa74-755546905f0c","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID7844e0f3-e2c0-4f78-aa74-755546905f0c"}},{"type":"Message","id":"EID686d1c0e-83ea-4acf-b798-6e2e2e72ba5d","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID686d1c0e-83ea-4acf-b798-6e2e2e72ba5d"}},{"type":"GetParameter","id":"EID84ba5355-18a5-48cd-8a85-099ed791d424","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDb7520fea-0334-49e9-b73f-646b3c2ef426","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID49987d12-3f4b-46d7-8a12-2c086bb345d9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID7bf7988e-b4d8-4c5c-8fee-5edf1944a8e1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDa65af3fa-39fc-4fd1-988c-3d1381628e7f","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa65af3fa-39fc-4fd1-988c-3d1381628e7f"}},{"type":"Message","id":"EIDc65d1915-b8e1-4541-bd3d-3d7b204f267a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDc65d1915-b8e1-4541-bd3d-3d7b204f267a"}},{"type":"GetParameter","id":"EIDacd4c54e-6414-41be-9895-963aaf1d914a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID0c47fa8f-26bb-4f67-bfb6-512f5598dfa7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDf3d7e48d-f308-4193-b68a-9c9ec3fc2159","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID146c87d7-8154-43f5-bfe6-3c379e2a9bec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID0250dbb2-5486-424f-88a5-e1e110362d10","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID236e0069-0c9c-44be-8bad-34b0e43c86af","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID236e0069-0c9c-44be-8bad-34b0e43c86af"}},{"type":"Message","id":"EIDb687b314-e946-4e9f-806f-0e047f473709","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDb687b314-e946-4e9f-806f-0e047f473709"}},{"type":"ServiceResponse","id":"EID8d66da0b-f3bd-4fe0-908c-8d3e4671f24f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID8d66da0b-f3bd-4fe0-908c-8d3e4671f24f"}},{"type":"GetParameter","id":"EID67c1d7da-9350-4f36-ba9f-98bc744d51e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID2f8f021e-d248-49e6-86e6-a70b86a98a4c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID2f8f021e-d248-49e6-86e6-a70b86a98a4c"}},{"type":"ServiceEndpoint","id":"EID2917ad72-9c29-4053-a15a-3cc0f18a43e9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID77ee999d-4d2c-419b-b871-1f984b85fd04","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID77ee999d-4d2c-419b-b871-1f984b85fd04"}},{"type":"ServiceEndpoint","id":"EID969e67d1-041b-4641-8291-4ba014389733","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID276ae25a-c5ff-4c75-acf4-abd3c2830040","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID276ae25a-c5ff-4c75-acf4-abd3c2830040"}},{"type":"ServiceEndpoint","id":"EID96e2bb3e-1d52-4dc8-bab6-a9e06e23d286","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDa0c78de7-b816-4509-bf50-675f264316d3","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EIDa0c78de7-b816-4509-bf50-675f264316d3"}},{"type":"ServiceResponse","id":"EID7e2bf82a-d5e7-4e2b-bc57-b2afb552afee","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdcbde145-24a2-4238-a4b0-1aacef650d00/Attachments/EID7e2bf82a-d5e7-4e2b-bc57-b2afb552afee"}},{"type":"GetParameter","id":"EID2b6a301f-90dc-4a98-a48a-31adf584d7db","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:11:10Z","duration":55707,"status":"FAILED"}}}}}
11:12:43.574 [print] EID1985c906-c16d-40f2-99a7-df2592236db1
11:12:43.574 [print] FAILED
11:12:43.574 [print] FAILED
11:12:43.574 [print] Conformance Class Download Service - Pre-defined Atom
11:12:43.574 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/1985c906-c16d-40f2-99a7-df2592236db1.json
11:12:43.574 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/1985c906-c16d-40f2-99a7-df2592236db1.json
11:12:43.575 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID1985c906-c16d-40f2-99a7-df2592236db1/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:12:43.641 [print] [ "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:12:43.641 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:05.402 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:10:05.402 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:10:28.010 response time in milliseconds: 21839.04
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:27 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:10:11 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/135a7821-b419-4298-9947-6dc09e98011a.json","testRuns":{"TestRun":{"id":"EID135a7821-b419-4298-9947-6dc09e98011a","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:09.708Z","testTasks":{"TestTask":{"id":"EID4e12286b-3bea-4416-ab30-21165565c987","parent":{"ref":"EID135a7821-b419-4298-9947-6dc09e98011a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID6cb4b02f-a0a3-492a-b50c-93fa85eea17a"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID6cb4b02f-a0a3-492a-b50c-93fa85eea17a","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:10:05.855Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:08.884Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:10:28.013 [print] EID135a7821-b419-4298-9947-6dc09e98011a
11:10:28.014 [print] UNDEFINED
11:10:28.014 [print] Conformance Class Download Service - Pre-defined Atom
11:10:28.014 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/135a7821-b419-4298-9947-6dc09e98011a.json
11:10:28.014 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/log
11:10:28.014 [print] statuspath TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a
11:10:28.014 [print] progresspath TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
11:10:28.015 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:28.561 response time in milliseconds: 545.67
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:10:28 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"133","max":"134","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:28.561 [print] {
"val": "133",
"max": "134",
"log": [
"28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)",
"28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:10:09 - Preparing 1 Test Task:",
"28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)",
"28.10.2020 11:10:09 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:10:09 - with parameters: ",
"28.10.2020 11:10:09 - etf.testcases = *",
"28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:10:09 - Setting state to CREATED",
"28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z",
"28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:10:13 - Project Properties: ",
"28.10.2020 11:10:13 - etf.testcases - * ",
"28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:10:13 - username - ",
"28.10.2020 11:10:13 - authUser - ",
"28.10.2020 11:10:13 - authMethod - basic ",
"28.10.2020 11:10:13 - TestRunTask initialized",
"28.10.2020 11:10:24 ERROR Assertion failed with error 'TR.incorrectFeedSelfReference'",
"28.10.2020 11:10:27 ERROR Assertion failed with error 'TR.missingLinkToMetadataRecordForDownloadService'"
]
}
11:10:28.562 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:29.077 response time in milliseconds: 515.15
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:10:29 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"152","max":"153","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:29.078 retry condition not satisfied: response.val == response.max
11:10:29.078 sleeping before retry #1
11:10:34.079 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:34.588 response time in milliseconds: 508.87
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:10:34 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:34.589 retry condition not satisfied: response.val == response.max
11:10:34.589 sleeping before retry #2
11:10:39.590 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:40.116 response time in milliseconds: 525.15
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:10:40 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:40.116 retry condition not satisfied: response.val == response.max
11:10:40.116 sleeping before retry #3
11:10:45.117 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:45.649 response time in milliseconds: 530.73
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:10:45 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:45.653 retry condition not satisfied: response.val == response.max
11:10:45.653 sleeping before retry #4
11:10:50.654 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:51.189 response time in milliseconds: 534.53
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:10:51 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:51.197 retry condition not satisfied: response.val == response.max
11:10:51.197 sleeping before retry #5
11:10:56.198 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:56.716 response time in milliseconds: 517.15
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:10:56 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:56.716 retry condition not satisfied: response.val == response.max
11:10:56.716 sleeping before retry #6
11:11:01.717 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:02.248 response time in milliseconds: 528.00
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:11:02 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:11:02.248 retry condition not satisfied: response.val == response.max
11:11:02.248 sleeping before retry #7
11:11:07.249 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:07.767 response time in milliseconds: 517.33
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:11:07 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:07.768 retry condition not satisfied: response.val == response.max
11:11:07.768 sleeping before retry #8
11:11:12.768 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:13.293 response time in milliseconds: 523.63
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:11:13 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:13.293 retry condition not satisfied: response.val == response.max
11:11:13.293 sleeping before retry #9
11:11:18.294 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:18.812 response time in milliseconds: 518.07
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:11:18 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:18.813 retry condition not satisfied: response.val == response.max
11:11:18.813 sleeping before retry #10
11:11:23.814 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:24.338 response time in milliseconds: 523.76
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:11:24 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:24.338 retry condition not satisfied: response.val == response.max
11:11:24.338 sleeping before retry #11
11:11:29.339 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:29.849 response time in milliseconds: 509.81
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:11:29 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:29.850 retry condition not satisfied: response.val == response.max
11:11:29.850 sleeping before retry #12
11:11:34.850 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:35.358 response time in milliseconds: 507.44
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:11:35 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:35.358 retry condition not satisfied: response.val == response.max
11:11:35.358 sleeping before retry #13
11:11:40.359 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:40.866 response time in milliseconds: 505.05
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:11:40 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:40.867 retry condition not satisfied: response.val == response.max
11:11:40.867 sleeping before retry #14
11:11:45.867 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:46.391 response time in milliseconds: 519.82
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:11:46 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:46.391 retry condition not satisfied: response.val == response.max
11:11:46.391 sleeping before retry #15
11:11:51.392 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:51.904 response time in milliseconds: 511.58
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:11:51 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:51.905 retry condition not satisfied: response.val == response.max
11:11:51.905 sleeping before retry #16
11:11:56.906 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:57.523 response time in milliseconds: 616.80
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:11:57 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:11:57.537 retry condition not satisfied: response.val == response.max
11:11:57.537 sleeping before retry #17
11:12:02.538 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:03.056 response time in milliseconds: 509.80
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:12:02 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:10:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:09 UTC 2020)","28.10.2020 11:10:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:09 - Preparing 1 Test Task:","28.10.2020 11:10:09 - TestTask 1 (4e12286b-3bea-4416-ab30-21165565c987)","28.10.2020 11:10:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:09 - with parameters: ","28.10.2020 11:10:09 - etf.testcases = *","28.10.2020 11:10:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:09 - Setting state to CREATED","28.10.2020 11:10:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.135a7821-b419-4298-9947-6dc09e98011a at 2020-10-28T11:10:13Z","28.10.2020 11:10:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:13 - Project Properties: ","28.10.2020 11:10:13 - etf.testcases - * ","28.10.2020 11:10:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:13 - username - ","28.10.2020 11:10:13 - authUser - ","28.10.2020 11:10:13 - authMethod - basic ","28.10.2020 11:10:13 - TestRunTask initialized","28.10.2020 11:10:24 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:10:27 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:01 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:11:04 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:11:59 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:12:03.057 retry condition not satisfied: response.val == response.max
11:12:03.057 sleeping before retry #18
11:12:08.058 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:10.845 response time in milliseconds: 2787.05
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:12:10 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:12:10.846 retry condition satisfied
11:12:10.846 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:12:10.846 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID135a7821-b419-4298-9947-6dc09e98011a
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:12.949 response time in milliseconds: 2102.41
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Cache-Control: public, max-age=120
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:12:12 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Last-Modified: Wed, 28 Oct 2020 11:12:10 GMT
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":0,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/.json"}}
11:12:12.954 [print]
11:12:12.954 [print]
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:39.964 [print] testing url:https://geodata.nationaalgeoregister.nl/noordzeevaarwegmarkeringenrd/wfs?request=GetCapabilities&service=WFS
11:15:39.964 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/noordzeevaarwegmarkeringenrd/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:40.360 response time in milliseconds: 395.95 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:40 GMT 1 < X-Cnection: [close, close]
11:15:40.364 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/noordzeevaarwegmarkeringenrd/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:40.775 response time in milliseconds: 410.80 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:40 GMT 1 < X-Cnection: [close, close]
11:15:40.776 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:47.477 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities"}}}
11:16:47.478 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 300
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities"}}}
11:16:48.662 response time in milliseconds: 1183.85
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:48 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883808592","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:48.662 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:14.441 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:06:14.443 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 320
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:06:15.868 response time in milliseconds: 1424.21
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:15 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883175794","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:06:15.869 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:13:22.258 [print] testing url:https://geodata.nationaalgeoregister.nl/restwarmte/wfs?request=GetCapabilities
11:13:22.259 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/restwarmte/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:22.665 response time in milliseconds: 405.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:21 GMT 1 < X-Cnection: [close, close]
11:13:22.671 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/restwarmte/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:23.091 response time in milliseconds: 418.80 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:22 GMT 1 < X-Cnection: [close, close]
11:13:23.091 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:25.877 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:14:25.878 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:14:27.968 response time in milliseconds: 1984.40
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:27 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883667799","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:27.968 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:18.525 [print] testing url:https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities
11:15:18.527 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:18.938 response time in milliseconds: 410.74 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:18 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:15:18.948 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:19.368 response time in milliseconds: 419.69 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:19 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:15:19.368 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:04:41.507 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml
11:04:41.511 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:42.631 response time in milliseconds: 1104.97 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 7165 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:42 GMT 1 < Etag: "a477efe52b464353930e4767fc4d3506-1" 1 < Last-Modified: Tue, 12 Nov 2019 10:10:42 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232A6FAE4FF4 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:41.519 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:42.627 response time in milliseconds: 1096.27 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 7165 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:42 GMT 1 < Etag: "a477efe52b464353930e4767fc4d3506-1" 1 < Last-Modified: Tue, 12 Nov 2019 10:10:42 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232A6FAB6EFF 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:42.628 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:17.974 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities"}}}
11:15:17.976 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 305
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities"}}}
11:15:18.975 response time in milliseconds: 998.54
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:18 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883718912","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsoorten/v2/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:18.976 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:53.313 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/su-vector/wfs?&request=GetCapabilities&service=WFS"}}}
11:04:53.314 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 297
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/su-vector/wfs?&request=GetCapabilities&service=WFS"}}}
11:04:54.958 response time in milliseconds: 1536.75
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:54 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883094726","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:04:54.959 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:41.493 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities"}}}
11:04:41.503 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 307
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities"}}}
11:04:42.594 response time in milliseconds: 1088.57
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:42 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883082511","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:04:42.596 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:04:42.630 [print] testing url:https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities
11:04:42.656 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:43.103 response time in milliseconds: 447.32 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:04:43 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:04:42.655 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebieden/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:43.079 response time in milliseconds: 423.12 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:04:43 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:04:43.081 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:09.966 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/cbsprovincies/wfs?request=GetCapabilities"}}}
11:06:09.967 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 280
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/cbsprovincies/wfs?request=GetCapabilities"}}}
11:06:12.601 response time in milliseconds: 2528.29
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:12 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883172412","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:06:12.602 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:45.568 [print] testing url:https://geodata.nationaalgeoregister.nl/schelpdierenpercelen/wfs?request=GetCapabilities
11:14:45.569 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/schelpdierenpercelen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:45.977 response time in milliseconds: 407.94 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:45 GMT 1 < X-Cnection: [close, close]
11:14:45.980 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/schelpdierenpercelen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:46.383 response time in milliseconds: 403.48 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:46 GMT 1 < X-Cnection: [close, close]
11:14:46.384 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:10:20.871 [print] testing url:https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegennacht/v1/wfs?service=WFS&request=GetCapabilities
11:10:20.872 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegennacht/v1/wfs?service=WFS&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:21.289 response time in milliseconds: 416.76 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:21 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:10:21.295 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegennacht/v1/wfs?service=WFS&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:21.693 response time in milliseconds: 398.17 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:21 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:10:21.694 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:16:38.681 [print] testing url:https://geodata.nationaalgeoregister.nl/wijkenbuurten2017/wfs?request=GetCapabilities
11:16:38.689 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2017/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:39.113 response time in milliseconds: 423.60 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:38 GMT 1 < X-Cnection: [close, close]
11:16:39.121 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2017/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:39.537 response time in milliseconds: 415.98 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:38 GMT 1 < X-Cnection: [close, close]
11:16:39.541 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:10:13.178 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:10:13.179 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:14.505 response time in milliseconds: 1325.44 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:14 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422377B082A949 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:10:14.524 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:15.204 response time in milliseconds: 679.83 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:15 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422377E02E8F8B 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:10:15.205 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:11:03.066 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:11:03.066 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 320
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:11:04.351 response time in milliseconds: 1283.31
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:11:04 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883464287","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:11:04.351 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:06.761 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}}}
11:13:06.761 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}}}
11:13:37.108 java.net.SocketTimeoutException: Read timed out, http call failed after 30347 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:13:37.108 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:43.515 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/ad/wfs?request=GetCapabilities&service=WFS
11:16:43.516 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ad/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:43.908 response time in milliseconds: 392.13 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:43 GMT 1 < ETag: "18f53-5af58ad4e72e9-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:43.752 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ad/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:44.153 response time in milliseconds: 400.35 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:44 GMT 1 < ETag: "18f53-5af58a64c5e67-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:44.157 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:04:37.662 [print] testing url:https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml
11:04:37.670 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:38.104 response time in milliseconds: 433.79 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 2779 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:04:38 GMT 1 < Etag: "468f384d0392b84cca8695000403950f-1" 1 < Last-Modified: Mon, 16 Mar 2020 07:06:39 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232968AD1D0F 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:38.131 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:38.562 response time in milliseconds: 427.22 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 2779 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:04:38 GMT 1 < Etag: "468f384d0392b84cca8695000403950f-1" 1 < Last-Modified: Mon, 16 Mar 2020 07:06:39 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422329836D95F0 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:43.551 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml
11:04:43.556 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:44.009 response time in milliseconds: 452.64 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4277 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:04:43 GMT 1 < Etag: "5c262b5c1b0f1bdc5a11f94b82d3a6c1-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:12:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232AC5821AEA 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:43.565 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:44.213 response time in milliseconds: 648.09 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4277 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:04:44 GMT 1 < Etag: "5c262b5c1b0f1bdc5a11f94b82d3a6c1-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:12:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232ACF0CF9CC 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:56.681 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:04:56.684 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:05:01.086 response time in milliseconds: 3647.53
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:05:00 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:04:58 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37.json","testRuns":{"TestRun":{"id":"EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:58.195Z","testTasks":{"TestTask":{"id":"EID62a30ff6-df95-427c-a998-473438bdc236","parent":{"ref":"EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID12fb3123-2860-4b82-b2cf-5695af61ac78"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID12fb3123-2860-4b82-b2cf-5695af61ac78","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:57.133Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:57.644Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:05:01.108 [print] EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37
11:05:01.108 [print] UNDEFINED
11:05:01.109 [print] Conformance Class Download Service - Pre-defined Atom
11:05:01.112 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37.json
11:05:01.114 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/log
11:05:01.115 [print] statuspath TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37
11:05:01.115 [print] progresspath TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
11:05:01.117 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:01.705 response time in milliseconds: 584.40
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:05:01 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:04:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:58 UTC 2020)","28.10.2020 11:04:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:58 - Preparing 1 Test Task:","28.10.2020 11:04:58 - TestTask 1 (62a30ff6-df95-427c-a998-473438bdc236)","28.10.2020 11:04:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:58 - with parameters: ","28.10.2020 11:04:58 - etf.testcases = *","28.10.2020 11:04:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:58 - Setting state to CREATED","28.10.2020 11:04:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:58 - Starting TestRun.f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37 at 2020-10-28T11:05:00Z","28.10.2020 11:05:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:05:00 - Project Properties: ","28.10.2020 11:05:00 - etf.testcases - * ","28.10.2020 11:05:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:05:00 - username - ","28.10.2020 11:05:00 - authUser - ","28.10.2020 11:05:00 - authMethod - basic ","28.10.2020 11:05:00 - TestRunTask initialized"]}
11:05:01.705 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:04:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:58 UTC 2020)",
"28.10.2020 11:04:58 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:04:58 - Preparing 1 Test Task:",
"28.10.2020 11:04:58 - TestTask 1 (62a30ff6-df95-427c-a998-473438bdc236)",
"28.10.2020 11:04:58 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:04:58 - with parameters: ",
"28.10.2020 11:04:58 - etf.testcases = *",
"28.10.2020 11:04:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:04:58 - Setting state to CREATED",
"28.10.2020 11:04:58 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:04:58 - Starting TestRun.f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37 at 2020-10-28T11:05:00Z",
"28.10.2020 11:05:00 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:05:00 - Project Properties: ",
"28.10.2020 11:05:00 - etf.testcases - * ",
"28.10.2020 11:05:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:05:00 - username - ",
"28.10.2020 11:05:00 - authUser - ",
"28.10.2020 11:05:00 - authMethod - basic ",
"28.10.2020 11:05:00 - TestRunTask initialized"
]
}
11:05:01.707 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:02.232 response time in milliseconds: 520.59
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:05:02 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:04:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:58 UTC 2020)","28.10.2020 11:04:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:58 - Preparing 1 Test Task:","28.10.2020 11:04:58 - TestTask 1 (62a30ff6-df95-427c-a998-473438bdc236)","28.10.2020 11:04:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:58 - with parameters: ","28.10.2020 11:04:58 - etf.testcases = *","28.10.2020 11:04:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:58 - Setting state to CREATED","28.10.2020 11:04:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:58 - Starting TestRun.f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37 at 2020-10-28T11:05:00Z","28.10.2020 11:05:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:05:00 - Project Properties: ","28.10.2020 11:05:00 - etf.testcases - * ","28.10.2020 11:05:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:05:00 - username - ","28.10.2020 11:05:00 - authUser - ","28.10.2020 11:05:00 - authMethod - basic ","28.10.2020 11:05:00 - TestRunTask initialized"]}
11:05:02.233 retry condition not satisfied: response.val == response.max
11:05:02.233 sleeping before retry #1
11:05:07.234 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:07.762 response time in milliseconds: 526.55
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:05:07 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"73","max":"74","log":["28.10.2020 11:04:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:58 UTC 2020)","28.10.2020 11:04:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:58 - Preparing 1 Test Task:","28.10.2020 11:04:58 - TestTask 1 (62a30ff6-df95-427c-a998-473438bdc236)","28.10.2020 11:04:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:58 - with parameters: ","28.10.2020 11:04:58 - etf.testcases = *","28.10.2020 11:04:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:58 - Setting state to CREATED","28.10.2020 11:04:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:58 - Starting TestRun.f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37 at 2020-10-28T11:05:00Z","28.10.2020 11:05:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:05:00 - Project Properties: ","28.10.2020 11:05:00 - etf.testcases - * ","28.10.2020 11:05:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:05:00 - username - ","28.10.2020 11:05:00 - authUser - ","28.10.2020 11:05:00 - authMethod - basic ","28.10.2020 11:05:00 - TestRunTask initialized","28.10.2020 11:05:04 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:05:04 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:05:05 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:05:07.764 retry condition not satisfied: response.val == response.max
11:05:07.765 sleeping before retry #2
11:05:12.766 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:13.288 response time in milliseconds: 520.77
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:05:13 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:04:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:58 UTC 2020)","28.10.2020 11:04:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:58 - Preparing 1 Test Task:","28.10.2020 11:04:58 - TestTask 1 (62a30ff6-df95-427c-a998-473438bdc236)","28.10.2020 11:04:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:58 - with parameters: ","28.10.2020 11:04:58 - etf.testcases = *","28.10.2020 11:04:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:58 - Setting state to CREATED","28.10.2020 11:04:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:58 - Starting TestRun.f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37 at 2020-10-28T11:05:00Z","28.10.2020 11:05:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:05:00 - Project Properties: ","28.10.2020 11:05:00 - etf.testcases - * ","28.10.2020 11:05:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:05:00 - username - ","28.10.2020 11:05:00 - authUser - ","28.10.2020 11:05:00 - authMethod - basic ","28.10.2020 11:05:00 - TestRunTask initialized","28.10.2020 11:05:04 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:05:04 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:05:05 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:05:07 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:08 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:05:08 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:05:08 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:05:08 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:05:09 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:09 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:05:10 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:11 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:05:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:05:11 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:05:13.289 retry condition not satisfied: response.val == response.max
11:05:13.291 sleeping before retry #3
11:05:18.293 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:20.313 response time in milliseconds: 2018.99
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:05:20 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:05:20.313 retry condition satisfied
11:05:20.313 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:05:20.315 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:23.800 response time in milliseconds: 2505.13
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:05:22 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:05:15 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37.json","testRuns":{"TestRun":{"id":"EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:58.195Z","testTasks":{"TestTask":{"id":"EID62a30ff6-df95-427c-a998-473438bdc236","parent":{"ref":"EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID12fb3123-2860-4b82-b2cf-5695af61ac78"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDcb1ff33f-d153-4c51-87be-90692114c163"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID12fb3123-2860-4b82-b2cf-5695af61ac78","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:57.133Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:57.644Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDcb1ff33f-d153-4c51-87be-90692114c163","testObject":{"ref":"EID12fb3123-2860-4b82-b2cf-5695af61ac78"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee1e80d-0175-1000-9f8e-12aa0b25a2e3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1e80d-0175-1000-9e47-bb4f3d788f75","testStepResults":{"TestStepResult":[{"id":"EID6ee1e80e-0175-1000-10dc-7e68f7c56d3a","parent":{"ref":"EID6ee1e80d-0175-1000-9e47-bb4f3d788f75"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:05:00Z","duration":15,"status":"PASSED"},{"id":"EID6ee1e81e-0175-1000-8096-1c63096b0e9a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e8df-0175-1000-8fe1-5efc6778c58d","parent":{"ref":"EID6ee1e81e-0175-1000-8096-1c63096b0e9a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e8df-0175-1000-524e-a701916f4170","parent":{"ref":"EID6ee1e81e-0175-1000-8096-1c63096b0e9a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e8df-0175-1000-d761-67bba3220d8c","parent":{"ref":"EID6ee1e81e-0175-1000-8096-1c63096b0e9a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e8df-0175-1000-6667-e047c2a18ee7","parent":{"ref":"EID6ee1e81e-0175-1000-8096-1c63096b0e9a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID47e2c346-2b71-44f8-9441-b447935ad439"},{"ref":"EID86ce4358-667c-4464-94a5-b231f4234657"},{"ref":"EIDba67e00e-4121-4b08-bca6-7e1ce3a1b8d8"}]},"parent":{"ref":"EID6ee1e80d-0175-1000-9e47-bb4f3d788f75"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:05:00Z","duration":66,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e80d-0175-1000-9f8e-12aa0b25a2e3"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:05:00Z","duration":210,"status":"PASSED"},{"id":"EID6ee1e8e0-0175-1000-28ff-d07654fa6451","testStepResults":{"TestStepResult":{"id":"EID6ee1e8e0-0175-1000-2f41-35e7ffb049d5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e9a0-0175-1000-5335-1f816ea3a8ea","parent":{"ref":"EID6ee1e8e0-0175-1000-2f41-35e7ffb049d5"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e9a0-0175-1000-2c40-a862f3d7e11d","parent":{"ref":"EID6ee1e8e0-0175-1000-2f41-35e7ffb049d5"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e9a0-0175-1000-b320-0111e9f9a114","parent":{"ref":"EID6ee1e8e0-0175-1000-2f41-35e7ffb049d5"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfae967a9-0e74-49e0-95f8-b4a405763a9b"},{"ref":"EID1dba24c6-0a74-4d0b-a79d-3bd3be59ba1e"},{"ref":"EIDa98a1b4c-909c-4692-9205-74ee5ff619e3"}]},"parent":{"ref":"EID6ee1e8e0-0175-1000-28ff-d07654fa6451"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:05:00Z","duration":52,"status":"PASSED"}},"parent":{"ref":"EID6ee1e80d-0175-1000-9f8e-12aa0b25a2e3"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:05:00Z","duration":192,"status":"PASSED"}]},"parent":{"ref":"EIDcb1ff33f-d153-4c51-87be-90692114c163"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:05:00Z","duration":404,"status":"PASSED"},{"id":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1e9a1-0175-1000-e1bb-bfcdfa084849","testStepResults":{"TestStepResult":[{"id":"EID6ee1e9a1-0175-1000-05cf-ffd344c54508","parent":{"ref":"EID6ee1e9a1-0175-1000-e1bb-bfcdfa084849"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:05:00Z","duration":52,"status":"PASSED"},{"id":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ea87-0175-1000-3ea4-4d138ae16c64","parent":{"ref":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ea87-0175-1000-ec90-33cc6eacf223","parent":{"ref":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ea87-0175-1000-c4eb-faebe6be1d95","parent":{"ref":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ea87-0175-1000-06bc-f544109002f5","parent":{"ref":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ea87-0175-1000-3156-729ec064b48a","parent":{"ref":"EID6ee1e9a1-0175-1000-f0ad-32a023698afd"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID83c6eec7-d79f-40fa-9fae-8dc6b0d082ca"},{"ref":"EID1c2c0e03-b506-4252-b9a8-8a39707942a4"},{"ref":"EID5d785d74-36e3-4cfd-a809-aac701258cb7"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-e1bb-bfcdfa084849"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:05:00Z","duration":79,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:05:00Z","duration":230,"status":"PASSED"},{"id":"EID6ee1ea87-0175-1000-201d-c63a12f656f5","testStepResults":{"TestStepResult":[{"id":"EID6ee1ea87-0175-1000-ae1d-a9b2d15fb157","attachments":{"attachment":[{"ref":"EID5e4d2fd3-c956-45dc-8e55-bae6879293f7"},{"ref":"EID20b77cdb-6add-42d6-9361-9a8fc5dc9f84"}]},"parent":{"ref":"EID6ee1ea87-0175-1000-201d-c63a12f656f5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:05:00Z","duration":269,"status":"PASSED"},{"id":"EID6ee1ebf2-0175-1000-1723-1df59afcb02e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ed8d-0175-1000-980a-dae70ad8b013","parent":{"ref":"EID6ee1ebf2-0175-1000-1723-1df59afcb02e"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed8d-0175-1000-ed6c-ffe7bc728dbf","parent":{"ref":"EID6ee1ebf2-0175-1000-1723-1df59afcb02e"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed8d-0175-1000-2659-5a6393c37b03","parent":{"ref":"EID6ee1ebf2-0175-1000-1723-1df59afcb02e"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed8d-0175-1000-a39e-0cff85ba0499","parent":{"ref":"EID6ee1ebf2-0175-1000-1723-1df59afcb02e"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5f362336-386c-46ca-9f9e-b6b2bbb879d8"},{"ref":"EID56c3c40d-f151-4e7a-b2e4-fce3a5f1b480"},{"ref":"EID41d660bb-d11d-48fe-8957-80dd5f31cfe9"}]},"parent":{"ref":"EID6ee1ea87-0175-1000-201d-c63a12f656f5"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:05:01Z","duration":126,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:05:00Z","duration":775,"status":"PASSED"},{"id":"EID6ee1ed8e-0175-1000-6275-f9327fa59af7","testStepResults":{"TestStepResult":[{"id":"EID6ee1ed8e-0175-1000-2c3d-d63d38c5e087","attachments":{"attachment":[{"ref":"EID95ee2b4e-3508-49c7-9e25-da9133a9d33f"},{"ref":"EID8bed56c6-6e96-4bed-933e-696f6839671b"}]},"parent":{"ref":"EID6ee1ed8e-0175-1000-6275-f9327fa59af7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":178,"status":"PASSED"},{"id":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ef7c-0175-1000-86d5-4483eaea516e","parent":{"ref":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ef7c-0175-1000-d2bd-68b76536ec12","parent":{"ref":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ef7c-0175-1000-7bc9-29b1f5b4a8d6","parent":{"ref":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ef7c-0175-1000-64ec-706faddd72a7","parent":{"ref":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ef7c-0175-1000-6d24-4ef47342eba8","parent":{"ref":"EID6ee1ee64-0175-1000-a58c-abed4d9c09f4"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2d83ca05-5631-4b6b-a430-f2782bae50ee"},{"ref":"EID10bd1179-fd5a-43da-bf15-d17f3217cb3d"},{"ref":"EIDf7be79cf-4697-4216-a8ba-8e6019248cb3"}]},"parent":{"ref":"EID6ee1ed8e-0175-1000-6275-f9327fa59af7"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:05:01Z","duration":45,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:05:01Z","duration":494,"status":"PASSED"},{"id":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5","testStepResults":{"TestStepResult":[{"id":"EID6ee1ef7c-0175-1000-b1c3-945528dc3c39","attachments":{"attachment":[{"ref":"EIDf084bdd7-66c9-4e17-ad37-983c13709098"},{"ref":"EIDf01c7543-9efa-4828-8133-1043d474abc0"}]},"parent":{"ref":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":159,"status":"PASSED"},{"id":"EID6ee1f09f-0175-1000-732c-5fc526d34f40","parent":{"ref":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f09f-0175-1000-3c6b-f597bf176086","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f1d8-0175-1000-03bd-7f190bb525d3","parent":{"ref":"EID6ee1f09f-0175-1000-3c6b-f597bf176086"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f1d8-0175-1000-407b-884777ece8c1","parent":{"ref":"EID6ee1f09f-0175-1000-3c6b-f597bf176086"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f1d8-0175-1000-340a-99f4e1c65004","parent":{"ref":"EID6ee1f09f-0175-1000-3c6b-f597bf176086"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f1d8-0175-1000-c763-c70afce6ba0c","parent":{"ref":"EID6ee1f09f-0175-1000-3c6b-f597bf176086"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6552ad9e-8bb1-4ea5-95ea-14104de91e41"},{"ref":"EID34404964-b553-4b0e-95c8-c9498d0bf6f4"},{"ref":"EID3f887b19-ec83-421c-8d4b-e45ffe2eac27"}]},"parent":{"ref":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:05:02Z","duration":85,"status":"PASSED"},{"id":"EID6ee1f1d8-0175-1000-2c99-12ab28c2af25","attachments":{"attachment":{"ref":"EID1b9e92a1-166d-4b90-a422-d10679f0f7bd"}},"parent":{"ref":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":2,"status":"PASSED"},{"id":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f2e7-0175-1000-d3d8-f9c05e935bdd","parent":{"ref":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f2e7-0175-1000-7e25-edbe759cd380","parent":{"ref":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f2e7-0175-1000-4703-f5e2278ca107","parent":{"ref":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f2e7-0175-1000-20e2-f4043e9cfb19","parent":{"ref":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f2e7-0175-1000-e2ee-371815d640d9","parent":{"ref":"EID6ee1f1e5-0175-1000-fe2c-be3daa770183"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDea081abb-2ea9-4903-bcfa-5b6578de02fd"},{"ref":"EID68c2c118-9cb0-4bfb-820f-7c40d662d20b"},{"ref":"EIDe56a099b-3938-4b0d-a3e1-1fe9751f678e"}]},"parent":{"ref":"EID6ee1ef7c-0175-1000-65b1-772473ea4da5"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:05:02Z","duration":55,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:05:02Z","duration":875,"status":"PASSED"},{"id":"EID6ee1f2e7-0175-1000-8aef-5673eaf9bded","testStepResults":{"TestStepResult":[{"id":"EID6ee1f2e7-0175-1000-5d16-e93b37306849","attachments":{"attachment":[{"ref":"EID04659994-f61a-4aea-a47e-0e89bf14c9ed"},{"ref":"EID322a6d8c-924f-405b-bfc1-9b7f77823f41"}]},"parent":{"ref":"EID6ee1f2e7-0175-1000-8aef-5673eaf9bded"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":125,"status":"PASSED"},{"id":"EID6ee1f38d-0175-1000-9385-faf5d23c9820","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f45a-0175-1000-2028-d9a3e689f4ab","parent":{"ref":"EID6ee1f38d-0175-1000-9385-faf5d23c9820"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f45a-0175-1000-ef4e-26c400d134a3","parent":{"ref":"EID6ee1f38d-0175-1000-9385-faf5d23c9820"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f45a-0175-1000-54f3-4425af02ef9e","parent":{"ref":"EID6ee1f38d-0175-1000-9385-faf5d23c9820"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f45a-0175-1000-01e9-1685326125b8","parent":{"ref":"EID6ee1f38d-0175-1000-9385-faf5d23c9820"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDff6e2c4b-0b89-405a-8be6-c43bb5b51cde"},{"ref":"EID3fa79c8c-d544-44a1-a238-f157db2bd91f"},{"ref":"EID8451c208-267f-4549-85c9-fb4fc95d4afb"}]},"parent":{"ref":"EID6ee1f2e7-0175-1000-8aef-5673eaf9bded"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:05:03Z","duration":79,"status":"PASSED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:05:02Z","duration":371,"status":"PASSED"},{"id":"EID6ee1f45a-0175-1000-74ed-fb3d92406529","testStepResults":{"TestStepResult":[{"id":"EID6ee1f45a-0175-1000-c338-839a8e1421b5","attachments":{"attachment":[{"ref":"EID6ebf7e3d-f366-4a99-addc-6f5bc5599d8b"},{"ref":"EID532c742f-265a-4b85-805d-d952e5fbb081"}]},"parent":{"ref":"EID6ee1f45a-0175-1000-74ed-fb3d92406529"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:05:03Z","duration":156,"status":"PASSED"},{"id":"EID6ee1f51c-0175-1000-24db-5f895aa4f820","parent":{"ref":"EID6ee1f45a-0175-1000-74ed-fb3d92406529"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f51c-0175-1000-1af7-aab78b10c807","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f63a-0175-1000-484d-da750d53d8cc","parent":{"ref":"EID6ee1f51c-0175-1000-1af7-aab78b10c807"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f63a-0175-1000-acc5-a7b69ed63279","parent":{"ref":"EID6ee1f51c-0175-1000-1af7-aab78b10c807"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f63a-0175-1000-98fd-d03b361a01ca","parent":{"ref":"EID6ee1f51c-0175-1000-1af7-aab78b10c807"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f63a-0175-1000-9159-3aa8a1c6d6b6","parent":{"ref":"EID6ee1f51c-0175-1000-1af7-aab78b10c807"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbbf90dde-9855-4538-881e-d4f2c2b9f215"},{"ref":"EID5905f9ae-0c8c-4fe4-8fe7-03a5cef6726d"},{"ref":"EID226ee917-9398-4159-9d89-71a5e4d4a08a"}]},"parent":{"ref":"EID6ee1f45a-0175-1000-74ed-fb3d92406529"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:05:03Z","duration":36,"status":"PASSED"},{"id":"EID6ee1f63a-0175-1000-9a38-3d0bf2b3df33","attachments":{"attachment":{"ref":"EID37d8bea3-6027-4692-aafe-ee8b8c77107e"}},"parent":{"ref":"EID6ee1f45a-0175-1000-74ed-fb3d92406529"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:05:03Z","duration":1,"status":"PASSED"},{"id":"EID6ee1f647-0175-1000-0483-4a2d24c17c0c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f791-0175-1000-007d-718a01a3c3fd","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee1f647-0175-1000-0483-4a2d24c17c0c"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:05:04Z","duration":10,"status":"FAILED"},{"id":"EID6ee1f79b-0175-1000-5426-b7043d2d4972","parent":{"ref":"EID6ee1f647-0175-1000-0483-4a2d24c17c0c"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f79b-0175-1000-caea-a278fd2fd1a0","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee1f647-0175-1000-0483-4a2d24c17c0c"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID872d9fb9-5b79-4b07-b553-dd366795c499"},{"ref":"EID154f80db-3e0b-4de0-976f-c6b4b0c59c0c"},{"ref":"EID74040e3e-4c3c-4286-809c-cda868fb57b1"}]},"parent":{"ref":"EID6ee1f45a-0175-1000-74ed-fb3d92406529"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:05:03Z","duration":257,"status":"FAILED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:05:03Z","duration":833,"status":"FAILED"},{"id":"EID6ee1f79b-0175-1000-dfa1-54e2cfaa2fcc","testStepResults":{"TestStepResult":[{"id":"EID6ee1f79b-0175-1000-7e80-3fb58b6435fc","attachments":{"attachment":[{"ref":"EID5daaa41c-997c-4c9b-b860-1d75a1a6cbee"},{"ref":"EID18facfac-22db-45bd-9d0d-d45fab65f7b5"}]},"parent":{"ref":"EID6ee1f79b-0175-1000-dfa1-54e2cfaa2fcc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:05:04Z","duration":164,"status":"PASSED"},{"id":"EID6ee1f863-0175-1000-528b-1c8adce7346c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f930-0175-1000-8e02-46670260e379","parent":{"ref":"EID6ee1f863-0175-1000-528b-1c8adce7346c"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f930-0175-1000-666d-eb174c345fdc","parent":{"ref":"EID6ee1f863-0175-1000-528b-1c8adce7346c"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f930-0175-1000-cb4f-02728b08276f","parent":{"ref":"EID6ee1f863-0175-1000-528b-1c8adce7346c"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f930-0175-1000-de69-6293ac7e54da","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee1f863-0175-1000-528b-1c8adce7346c"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID099969fb-87a6-4b5d-8f8d-93f73facbfb1"},{"ref":"EIDe729bd69-369c-4b93-be12-9afcdf24201e"},{"ref":"EID5c082ff0-24d3-4afe-8724-da0ab14118ab"}]},"parent":{"ref":"EID6ee1f79b-0175-1000-dfa1-54e2cfaa2fcc"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:05:04Z","duration":73,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:05:04Z","duration":405,"status":"PASSED_MANUAL"},{"id":"EID6ee1f930-0175-1000-4bdb-f3338d95c2c8","testStepResults":{"TestStepResult":{"id":"EID6ee1f930-0175-1000-72db-bfd632bdd3a3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f9de-0175-1000-e8cf-c76b71fc68e4","parent":{"ref":"EID6ee1f930-0175-1000-72db-bfd632bdd3a3"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f9de-0175-1000-6b61-b9892cc5ad74","parent":{"ref":"EID6ee1f930-0175-1000-72db-bfd632bdd3a3"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f9de-0175-1000-1f2b-a473e361c8bc","parent":{"ref":"EID6ee1f930-0175-1000-72db-bfd632bdd3a3"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f9de-0175-1000-700c-bc8644fdec4d","parent":{"ref":"EID6ee1f930-0175-1000-72db-bfd632bdd3a3"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7cd4a121-c21b-438b-b656-31e7bfc01d28"},{"ref":"EID6d9c9c23-63c0-451b-91de-faec41de595b"},{"ref":"EID981a29f8-1a77-400c-80c6-3ab53656819e"}]},"parent":{"ref":"EID6ee1f930-0175-1000-4bdb-f3338d95c2c8"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:05:04Z","duration":62,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:05:04Z","duration":174,"status":"PASSED"},{"id":"EID6ee1f9df-0175-1000-ace5-2cb9a0ef8449","testStepResults":{"TestStepResult":{"id":"EID6ee1f9df-0175-1000-f8d0-1967674332f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1fabf-0175-1000-aff5-f96be8b1ba26","parent":{"ref":"EID6ee1f9df-0175-1000-f8d0-1967674332f7"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fabf-0175-1000-d91a-f75c350d9948","parent":{"ref":"EID6ee1f9df-0175-1000-f8d0-1967674332f7"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fabf-0175-1000-0b7c-7b7009a20574","parent":{"ref":"EID6ee1f9df-0175-1000-f8d0-1967674332f7"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fabf-0175-1000-ee9e-203f9f7288a6","parent":{"ref":"EID6ee1f9df-0175-1000-f8d0-1967674332f7"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID811d97bc-391e-440e-b301-5a18614f0597"},{"ref":"EID47ebe71a-ccc9-49a2-9969-b5ad1092f035"},{"ref":"EID53a7c74a-b44b-42ef-a651-0eaf1aa5b28b"}]},"parent":{"ref":"EID6ee1f9df-0175-1000-ace5-2cb9a0ef8449"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:05:04Z","duration":114,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:05:04Z","duration":225,"status":"PASSED"},{"id":"EID6ee1fac0-0175-1000-6855-7797228817fd","testStepResults":{"TestStepResult":{"id":"EID6ee1fac0-0175-1000-8299-f9e714c95cc9","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID136a323d-3fa4-4a49-b929-5135781bdae8"},{"ref":"EIDce423365-6582-4c76-ab01-431a5b6b54e1"},{"ref":"EIDb6f0505d-66e6-4fae-93fb-26e247557e4b"},{"ref":"EID39e258d3-d683-4965-9185-9dd50d176e20"},{"ref":"EIDe3c95754-2986-4492-8a3f-dabf0b658cc5"},{"ref":"EID3766c8cd-5f39-49ad-9da9-0ca2be40c4e7"},{"ref":"EID6514624e-e338-428c-985d-dcf9c1b5bca3"},{"ref":"EID3592f796-63a4-4a83-946f-f8497d74d220"},{"ref":"EIDdb32f552-4236-42e1-b0a7-fbe895e693cb"}]},"parent":{"ref":"EID6ee1fac0-0175-1000-6855-7797228817fd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:05:04Z","duration":774,"status":"SKIPPED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:05:04Z","duration":928,"status":"SKIPPED"},{"id":"EID6ee1fe60-0175-1000-b954-92136247529b","testStepResults":{"TestStepResult":{"id":"EID6ee1fe60-0175-1000-9602-40b95df2ccc4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ff22-0175-1000-e2b5-9d24c5c2ffda","parent":{"ref":"EID6ee1fe60-0175-1000-9602-40b95df2ccc4"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ff22-0175-1000-0f8a-5782b8bf6045","parent":{"ref":"EID6ee1fe60-0175-1000-9602-40b95df2ccc4"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ff22-0175-1000-17c7-9f19b5f914dc","parent":{"ref":"EID6ee1fe60-0175-1000-9602-40b95df2ccc4"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ff22-0175-1000-a086-408c61f1751b","parent":{"ref":"EID6ee1fe60-0175-1000-9602-40b95df2ccc4"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID32245599-981d-413f-bdae-46254bba52dc"},{"ref":"EIDc04a4b5c-217e-4872-b06b-89daa9bdb092"},{"ref":"EID0ceb63f9-1933-40fd-943e-bb1cdb364474"}]},"parent":{"ref":"EID6ee1fe60-0175-1000-b954-92136247529b"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:05:05Z","duration":69,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:05:05Z","duration":194,"status":"PASSED"},{"id":"EID6ee1ff22-0175-1000-fc6d-c376988d9c7d","testStepResults":{"TestStepResult":{"id":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20073-0175-1000-5921-ab734bff30b6","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-60ef-07077d643b78","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-aae5-d1a5395f2646","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-4ac8-59981f43fc61","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-744d-f4fc95ee4e8e","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-72df-bb8ba0e41a2c","parent":{"ref":"EID6ee1ff23-0175-1000-8fb9-93e6ce1b98f8"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID93d524dd-6f32-4914-929e-2603a225a262"},{"ref":"EID233989d3-7293-4788-b41b-3d37f0599d7b"},{"ref":"EID5e22fcbb-4e03-492f-be7d-ef08f11963bd"}]},"parent":{"ref":"EID6ee1ff22-0175-1000-fc6d-c376988d9c7d"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:05:06Z","duration":68,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:05:06Z","duration":337,"status":"PASSED"},{"id":"EID6ee20073-0175-1000-8cae-bef839a973bc","testStepResults":{"TestStepResult":{"id":"EID6ee20073-0175-1000-2851-00728716c4c4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee201c0-0175-1000-cde5-190f12def32c","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-8f52-340f643b588d","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-3338-e5705c991a0a","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-fae8-64275efcc5a7","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-73e6-0eeedc3f283b","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-353e-b39b28f8a773","parent":{"ref":"EID6ee20073-0175-1000-2851-00728716c4c4"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:05:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4762487-1715-4ca6-b042-9c22ff6630e6"},{"ref":"EID6cbc6df1-028e-44e5-847b-74eefce4d1ac"},{"ref":"EID93f2f400-3ec5-4d1b-9fc0-1b544c392ffb"}]},"parent":{"ref":"EID6ee20073-0175-1000-8cae-bef839a973bc"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:05:06Z","duration":61,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:05:06Z","duration":333,"status":"PASSED"},{"id":"EID6ee201c0-0175-1000-4d12-243f34891d7d","testStepResults":{"TestStepResult":{"id":"EID6ee201c0-0175-1000-30f3-0ab7c841d055","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20302-0175-1000-68a3-f25bdf00b4cc","parent":{"ref":"EID6ee201c0-0175-1000-30f3-0ab7c841d055"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20302-0175-1000-9f0c-f8cc8c994dbb","parent":{"ref":"EID6ee201c0-0175-1000-30f3-0ab7c841d055"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20302-0175-1000-2bd5-d24b4c0c3207","parent":{"ref":"EID6ee201c0-0175-1000-30f3-0ab7c841d055"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20302-0175-1000-1388-9afe0d65285e","parent":{"ref":"EID6ee201c0-0175-1000-30f3-0ab7c841d055"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe222dffa-eb6d-4d78-b417-bae5ed1e229f"},{"ref":"EID3fa18dc8-24d5-484d-941f-3d1fc4d11797"},{"ref":"EIDf785e132-3ba3-4ce7-98e3-38f0b17ac7f8"}]},"parent":{"ref":"EID6ee201c0-0175-1000-4d12-243f34891d7d"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:05:06Z","duration":92,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:05:06Z","duration":324,"status":"PASSED"},{"id":"EID6ee20304-0175-1000-c0b2-9e049a25e5d3","testStepResults":{"TestStepResult":[{"id":"EID6ee20304-0175-1000-36a8-9c57401c64c7","attachments":{"attachment":[{"ref":"EID987c9d43-47af-4638-a2c3-da433a119196"},{"ref":"EID96f0367e-7fb0-4293-8cd8-15d373e26fb4"},{"ref":"EID32ded535-26fd-4979-8022-30b3bb8e6432"},{"ref":"EIDed08693e-a990-402e-a2f6-4d88bf41a6bf"}]},"parent":{"ref":"EID6ee20304-0175-1000-c0b2-9e049a25e5d3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:05:07Z","duration":336,"status":"PASSED"},{"id":"EID6ee204bf-0175-1000-9c38-80b001ad8bbf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee205b0-0175-1000-c8df-a3247c540815","parent":{"ref":"EID6ee204bf-0175-1000-9c38-80b001ad8bbf"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee205b0-0175-1000-46dc-160f99eee6a9","parent":{"ref":"EID6ee204bf-0175-1000-9c38-80b001ad8bbf"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee205b0-0175-1000-5b52-bf7e831124fc","parent":{"ref":"EID6ee204bf-0175-1000-9c38-80b001ad8bbf"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee205b0-0175-1000-a9d9-8d3c3fcb3f5f","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee204bf-0175-1000-9c38-80b001ad8bbf"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3e3afb6c-fce0-49b7-b21c-77d1316219a9"},{"ref":"EID571577b4-82ba-4dc8-8fa7-9f80d38a8c9a"},{"ref":"EIDb3f89487-b6c2-4199-8353-3cba750bc6ea"}]},"parent":{"ref":"EID6ee20304-0175-1000-c0b2-9e049a25e5d3"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:05:07Z","duration":104,"status":"FAILED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:05:07Z","duration":684,"status":"FAILED"},{"id":"EID6ee205b1-0175-1000-c4fb-af2886c03511","testStepResults":{"TestStepResult":{"id":"EID6ee205b1-0175-1000-f068-c293cd29a988","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20648-0175-1000-d58b-0a9d70724244","parent":{"ref":"EID6ee205b1-0175-1000-f068-c293cd29a988"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20648-0175-1000-b3c4-84f2442c32c5","parent":{"ref":"EID6ee205b1-0175-1000-f068-c293cd29a988"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20648-0175-1000-3097-af61aa04a4ac","parent":{"ref":"EID6ee205b1-0175-1000-f068-c293cd29a988"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20648-0175-1000-ab44-7a1f40666012","parent":{"ref":"EID6ee205b1-0175-1000-f068-c293cd29a988"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5c411084-9689-4ea2-84f1-b813794f1365"},{"ref":"EID0e2065be-8a6c-4566-b9fc-8f8451644762"},{"ref":"EID46d872f0-ecdd-447e-ba1f-2f6266217493"}]},"parent":{"ref":"EID6ee205b1-0175-1000-c4fb-af2886c03511"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:05:07Z","duration":34,"status":"PASSED"}},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:05:07Z","duration":151,"status":"PASSED"},{"id":"EID6ee20648-0175-1000-c6a9-fba003e0588a","testStepResults":{"TestStepResult":[{"id":"EID6ee20649-0175-1000-29cc-5686bd339d72","parent":{"ref":"EID6ee20648-0175-1000-c6a9-fba003e0588a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20649-0175-1000-1386-aef59c4a3087","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2076a-0175-1000-f6ca-5c2fc11283cb","parent":{"ref":"EID6ee20649-0175-1000-1386-aef59c4a3087"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2076a-0175-1000-3b06-848a3e0d6840","parent":{"ref":"EID6ee20649-0175-1000-1386-aef59c4a3087"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2076a-0175-1000-662a-54e79cd4190e","parent":{"ref":"EID6ee20649-0175-1000-1386-aef59c4a3087"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2076a-0175-1000-bd04-da6080de5b04","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee20649-0175-1000-1386-aef59c4a3087"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID476d0da6-957a-4374-8ef3-4d90d9acd60c"},{"ref":"EID50398624-be8d-49aa-bca2-be6224e041fe"},{"ref":"EIDeb290289-e14e-42df-a266-182387075c6b"}]},"parent":{"ref":"EID6ee20648-0175-1000-c6a9-fba003e0588a"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:05:07Z","duration":79,"status":"FAILED"}]},"parent":{"ref":"EID6ee1e9a1-0175-1000-a064-64762daf6e0d"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:05:07Z","duration":290,"status":"FAILED"}]},"parent":{"ref":"EIDcb1ff33f-d153-4c51-87be-90692114c163"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:05:00Z","duration":7625,"status":"FAILED"},{"id":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db","testStepResults":{"TestStepResult":[{"id":"EID6ee2076b-0175-1000-5a0b-09b223a441e2","parent":{"ref":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2076b-0175-1000-f9b2-d5f171ee23ca","parent":{"ref":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:05:08Z","duration":34,"status":"PASSED"},{"id":"EID6ee2076b-0175-1000-6b54-59af1701834c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20873-0175-1000-be8d-517b006fc756","parent":{"ref":"EID6ee2076b-0175-1000-6b54-59af1701834c"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20873-0175-1000-2ef2-d7b8d0b6e75c","parent":{"ref":"EID6ee2076b-0175-1000-6b54-59af1701834c"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20873-0175-1000-2435-644b8216ec45","parent":{"ref":"EID6ee2076b-0175-1000-6b54-59af1701834c"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcedea490-b8a0-4fcd-b152-93ab6d8ca159"},{"ref":"EID8169f841-e9a6-48f0-9c32-f6b1e098dec7"},{"ref":"EID3b099922-9ecf-42b4-bc70-a39892f7cd0f"}]},"parent":{"ref":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:05:08Z","duration":75,"status":"PASSED"},{"id":"EID6ee20873-0175-1000-0a0d-2f626ee8e611","attachments":{"attachment":{"ref":"EID637a72ad-ed02-4dce-9b3a-d227e6a56d13"}},"parent":{"ref":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20885-0175-1000-af16-b06886fe4eab","parent":{"ref":"EID6ee2076b-0175-1000-c6c0-f9ef176b62db"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:05:08Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:05:08Z","duration":335,"status":"PASSED"},{"id":"EID6ee208ba-0175-1000-9224-6d821518cc8f","testStepResults":{"TestStepResult":[{"id":"EID6ee208ba-0175-1000-02b3-5ce8747f6c24","parent":{"ref":"EID6ee208ba-0175-1000-9224-6d821518cc8f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:05:08Z","duration":52,"status":"PASSED"},{"id":"EID6ee208ba-0175-1000-d721-092602acc4fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20923-0175-1000-aed6-4a0c58cca85d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee208ba-0175-1000-d721-092602acc4fd"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:05:08Z","duration":13,"status":"FAILED"},{"id":"EID6ee20930-0175-1000-1a73-07c7e415f8b0","parent":{"ref":"EID6ee208ba-0175-1000-d721-092602acc4fd"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20930-0175-1000-b0ab-f291ce6ab5d9","parent":{"ref":"EID6ee208ba-0175-1000-d721-092602acc4fd"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20930-0175-1000-4a93-b0bff7343088","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee208ba-0175-1000-d721-092602acc4fd"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"FAILED"},{"id":"EID6ee20930-0175-1000-0777-8e4a42d146f2","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee208ba-0175-1000-d721-092602acc4fd"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID27beb37f-b71b-47dc-a782-fd03b3280ee2"},{"ref":"EID92fa2798-889c-43ea-b4f6-8e7acf4e971e"},{"ref":"EID9f2d58a8-d8ba-4452-b18d-e82bca352d88"}]},"parent":{"ref":"EID6ee208ba-0175-1000-9224-6d821518cc8f"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:05:08Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:05:08Z","duration":119,"status":"FAILED"},{"id":"EID6ee20931-0175-1000-1c2a-83fa7ba8979a","testStepResults":{"TestStepResult":{"id":"EID6ee20931-0175-1000-89df-49e791774b1c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20986-0175-1000-7ffe-67e88ebf840f","parent":{"ref":"EID6ee20931-0175-1000-89df-49e791774b1c"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20986-0175-1000-7d23-a81afe0f3c71","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20931-0175-1000-89df-49e791774b1c"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:05:08Z","duration":12,"status":"FAILED"},{"id":"EID6ee20992-0175-1000-49f7-42bb0ab36a4b","parent":{"ref":"EID6ee20931-0175-1000-89df-49e791774b1c"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1034655f-7f2d-466c-a79f-5355070f1d02"},{"ref":"EIDc7fa2ac9-9011-4f31-97c8-0a3fd3ecbb9a"},{"ref":"EIDf1d35738-ed37-4f90-b4de-f552a83c79fc"}]},"parent":{"ref":"EID6ee20931-0175-1000-1c2a-83fa7ba8979a"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:05:08Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:05:08Z","duration":97,"status":"FAILED"},{"id":"EID6ee20993-0175-1000-2843-5fdee1fc4169","testStepResults":{"TestStepResult":{"id":"EID6ee20993-0175-1000-6103-72cdb8895e51","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20a18-0175-1000-2b4e-4c0e925126e8","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee20993-0175-1000-6103-72cdb8895e51"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:05:08Z","duration":1,"status":"FAILED"},{"id":"EID6ee20a19-0175-1000-b4f7-da622ce9c765","parent":{"ref":"EID6ee20993-0175-1000-6103-72cdb8895e51"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20a19-0175-1000-0c3f-403d1936767d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20993-0175-1000-6103-72cdb8895e51"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:05:08Z","duration":11,"status":"FAILED"},{"id":"EID6ee20a24-0175-1000-65b8-728df95e29f2","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee20993-0175-1000-6103-72cdb8895e51"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDdeb4269a-f60e-4977-be50-c00ebb966a80"},{"ref":"EIDfca936ba-8ee8-491e-a9c5-016a93aa7a5a"},{"ref":"EIDa3bc0bf7-7348-41e1-935f-5e33e59aa432"}]},"parent":{"ref":"EID6ee20993-0175-1000-2843-5fdee1fc4169"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:05:08Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:05:08Z","duration":145,"status":"FAILED"},{"id":"EID6ee20a24-0175-1000-87dd-d6c4d7a52ce8","testStepResults":{"TestStepResult":{"id":"EID6ee20a24-0175-1000-1962-99778e872bae","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20a83-0175-1000-73a6-8c1f4737d4dd","parent":{"ref":"EID6ee20a24-0175-1000-1962-99778e872bae"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20a83-0175-1000-0511-8fbfbf6c35fb","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20a24-0175-1000-1962-99778e872bae"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:05:08Z","duration":12,"status":"FAILED"},{"id":"EID6ee20a8f-0175-1000-9ec8-bb7527ac0a07","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee20a24-0175-1000-1962-99778e872bae"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID486bd3b9-2861-43c9-9005-91c3b2bf7298"},{"ref":"EIDc9c37262-0af9-4e8b-8233-cada860022a2"},{"ref":"EID453f863a-8a7a-4345-9fb1-dfceba30a469"}]},"parent":{"ref":"EID6ee20a24-0175-1000-87dd-d6c4d7a52ce8"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:05:08Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:05:08Z","duration":107,"status":"FAILED"},{"id":"EID6ee20a8f-0175-1000-e868-d93c6c385a90","testStepResults":{"TestStepResult":{"id":"EID6ee20a8f-0175-1000-392f-5074f4caa84f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20ae5-0175-1000-6697-74ea79ce5e58","parent":{"ref":"EID6ee20a8f-0175-1000-392f-5074f4caa84f"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20ae5-0175-1000-0182-4266a00d2b5d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20a8f-0175-1000-392f-5074f4caa84f"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:05:09Z","duration":11,"status":"FAILED"},{"id":"EID6ee20af0-0175-1000-2b42-20220dd80e99","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee20a8f-0175-1000-392f-5074f4caa84f"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID46eeea6c-c0f5-499f-9d47-043f6cb64eaf"},{"ref":"EID40dc6011-2a2f-411b-b108-cdb9a574d1b8"},{"ref":"EIDe9989602-fefd-48f9-8bd4-0a0eb9c296cf"}]},"parent":{"ref":"EID6ee20a8f-0175-1000-e868-d93c6c385a90"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:05:09Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:05:09Z","duration":97,"status":"FAILED"},{"id":"EID6ee20af1-0175-1000-535c-2c8109bb025e","testStepResults":{"TestStepResult":{"id":"EID6ee20af1-0175-1000-05f2-190a9a934459","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20b68-0175-1000-36d0-977a6fa1dc07","parent":{"ref":"EID6ee20af1-0175-1000-05f2-190a9a934459"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20b68-0175-1000-2e89-144ecce139fc","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20af1-0175-1000-05f2-190a9a934459"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:05:09Z","duration":12,"status":"FAILED"},{"id":"EID6ee20b74-0175-1000-af14-c85c18382eda","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee20af1-0175-1000-05f2-190a9a934459"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"},{"id":"EID6ee20b74-0175-1000-c012-5a1200431731","parent":{"ref":"EID6ee20af1-0175-1000-05f2-190a9a934459"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20b74-0175-1000-b0e6-289d882981a8","parent":{"ref":"EID6ee20af1-0175-1000-05f2-190a9a934459"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID33a203ee-913f-4f87-9eb5-26ffeb9a0b1f"},{"ref":"EIDc284696a-7ccb-433b-aa02-31badf2e1b5b"},{"ref":"EIDcdc27728-7502-4ecd-a7b1-c8ce4744604a"}]},"parent":{"ref":"EID6ee20af1-0175-1000-535c-2c8109bb025e"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:05:09Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:05:09Z","duration":131,"status":"FAILED"},{"id":"EID6ee20b75-0175-1000-e054-3e1eb1b8d70f","testStepResults":{"TestStepResult":{"id":"EID6ee20b75-0175-1000-af66-9b70f2403856","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20bd0-0175-1000-3104-67642225ec7a","parent":{"ref":"EID6ee20b75-0175-1000-af66-9b70f2403856"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20bd0-0175-1000-70d8-5459b698e8e3","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20b75-0175-1000-af66-9b70f2403856"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:05:09Z","duration":11,"status":"FAILED"},{"id":"EID6ee20bdb-0175-1000-eeb4-9aa0353148cb","parent":{"ref":"EID6ee20b75-0175-1000-af66-9b70f2403856"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3acd684c-550c-49ef-b194-a3daaa31bdb5"},{"ref":"EID3bfcaa20-7815-4961-a254-66cdfc3a17b6"},{"ref":"EID54a07d2d-f946-4b20-aea7-86bf5bdf6364"}]},"parent":{"ref":"EID6ee20b75-0175-1000-e054-3e1eb1b8d70f"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:05:09Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:05:09Z","duration":102,"status":"FAILED"},{"id":"EID6ee20bdb-0175-1000-9128-03005a477ca9","testStepResults":{"TestStepResult":{"id":"EID6ee20bdc-0175-1000-60b4-fc59c0cca8b0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20c5a-0175-1000-87cd-68469456a1e2","parent":{"ref":"EID6ee20bdc-0175-1000-60b4-fc59c0cca8b0"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20c5a-0175-1000-ff83-fe143de94b4f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20bdc-0175-1000-60b4-fc59c0cca8b0"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:05:09Z","duration":24,"status":"FAILED"},{"id":"EID6ee20c73-0175-1000-4e77-a89bd48e516d","parent":{"ref":"EID6ee20bdc-0175-1000-60b4-fc59c0cca8b0"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf5a273c4-e4a5-437e-96ee-2d4034d9f75c"},{"ref":"EID222589c0-c7a4-430f-a6b9-68c5ba5c85c1"},{"ref":"EID6d993672-0cd1-4cb3-95f0-76dad84a0b86"}]},"parent":{"ref":"EID6ee20bdb-0175-1000-9128-03005a477ca9"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:05:09Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:05:09Z","duration":152,"status":"FAILED"},{"id":"EID6ee20c73-0175-1000-7c33-6abfca9e77b1","testStepResults":{"TestStepResult":{"id":"EID6ee20c73-0175-1000-977b-ef91fbf66cd2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20d06-0175-1000-cdad-46730368745e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20c73-0175-1000-977b-ef91fbf66cd2"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:05:09Z","duration":11,"status":"FAILED"},{"id":"EID6ee20d11-0175-1000-6352-38ae1ad6b883","parent":{"ref":"EID6ee20c73-0175-1000-977b-ef91fbf66cd2"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20d11-0175-1000-c03a-75579a6cd543","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee20c73-0175-1000-977b-ef91fbf66cd2"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"},{"id":"EID6ee20d12-0175-1000-4cd5-517dac45b664","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee20c73-0175-1000-977b-ef91fbf66cd2"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfd57f304-67aa-4e4c-8965-fe0912d7af52"},{"ref":"EIDb46fc374-be30-45db-9baf-43c82a2dc635"},{"ref":"EIDf0ee1025-4d30-4aef-b803-01b8fb1f51e9"}]},"parent":{"ref":"EID6ee20c73-0175-1000-7c33-6abfca9e77b1"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:05:09Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:05:09Z","duration":159,"status":"FAILED"},{"id":"EID6ee20d12-0175-1000-9358-5de61b1b43dc","testStepResults":{"TestStepResult":{"id":"EID6ee20d12-0175-1000-01b8-68f0786c248d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20d71-0175-1000-c909-fa54b450258e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20d12-0175-1000-01b8-68f0786c248d"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:05:09Z","duration":11,"status":"FAILED"},{"id":"EID6ee20d7c-0175-1000-90f5-bfdf8cbb244e","parent":{"ref":"EID6ee20d12-0175-1000-01b8-68f0786c248d"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20d7c-0175-1000-eba4-0d4c9590c454","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee20d12-0175-1000-01b8-68f0786c248d"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"FAILED"},{"id":"EID6ee20d7c-0175-1000-d91f-4ef260af4d73","parent":{"ref":"EID6ee20d12-0175-1000-01b8-68f0786c248d"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDebacd5b2-526a-4efb-b366-fb8c8890b2b5"},{"ref":"EID1884dc8d-81fc-4924-aac5-2e2247bc27a5"},{"ref":"EID6fa7ceba-8fee-4b2f-9a29-54a9d44bb34b"}]},"parent":{"ref":"EID6ee20d12-0175-1000-9358-5de61b1b43dc"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:05:09Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:05:09Z","duration":106,"status":"FAILED"},{"id":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e","testStepResults":{"TestStepResult":[{"id":"EID6ee20d7c-0175-1000-d5b3-75a0969b31c8","parent":{"ref":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20d7c-0175-1000-41d7-9eb9bc9bbb75","parent":{"ref":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:05:09Z","duration":131,"status":"PASSED"},{"id":"EID6ee20d7d-0175-1000-9225-0697e69814df","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20f0b-0175-1000-d57b-2496e8913be2","parent":{"ref":"EID6ee20d7d-0175-1000-9225-0697e69814df"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20f0b-0175-1000-7467-453fbe63dc10","parent":{"ref":"EID6ee20d7d-0175-1000-9225-0697e69814df"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20f0b-0175-1000-f736-4ff3b5396a90","parent":{"ref":"EID6ee20d7d-0175-1000-9225-0697e69814df"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20f0b-0175-1000-84c3-a89957df7ac1","parent":{"ref":"EID6ee20d7d-0175-1000-9225-0697e69814df"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID87237730-61bb-4e94-8e15-7676d46fd97f"},{"ref":"EIDa9e3aa91-ce21-4d9f-871e-773f78beaac9"},{"ref":"EIDc1bd1618-7634-4f96-bcc9-f885c2495c55"}]},"parent":{"ref":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:05:09Z","duration":100,"status":"PASSED"},{"id":"EID6ee20f0b-0175-1000-ecd0-6e08a32390b0","attachments":{"attachment":{"ref":"EID693fc3ac-2151-4831-ad56-7219d2d3fae9"}},"parent":{"ref":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:05:10Z","duration":4,"status":"PASSED"},{"id":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20fbe-0175-1000-a3de-94f5025fdf1c","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fbe-0175-1000-fc7c-910222c3a1cb","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:05:10Z","duration":11,"status":"FAILED"},{"id":"EID6ee20fc9-0175-1000-2f5e-7f3b758916bf","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fc9-0175-1000-42f5-f8ef630e0110","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fc9-0175-1000-3a5f-2a6ca815d333","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fc9-0175-1000-9335-f5b25997e3f5","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fc9-0175-1000-2b08-2d25a4a15bab","parent":{"ref":"EID6ee20f2a-0175-1000-8ec8-774d59515ee6"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe010b323-837a-4312-b7b7-d9e312c45762"},{"ref":"EID20438d9f-a3c3-4f6f-b1f7-d1ba0f5ad9ba"},{"ref":"EID7914be53-5ec3-42e3-a79f-8c12ea796dd8"}]},"parent":{"ref":"EID6ee20d7c-0175-1000-32db-6ddfab4edd9e"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:05:10Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:05:09Z","duration":589,"status":"FAILED"},{"id":"EID6ee20fca-0175-1000-4d06-da5eb7def0d8","testStepResults":{"TestStepResult":[{"id":"EID6ee20fca-0175-1000-60eb-f83c78761e12","parent":{"ref":"EID6ee20fca-0175-1000-4d06-da5eb7def0d8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20fca-0175-1000-c8c4-ccda9b92f6fa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee210ed-0175-1000-3fa0-773659a23874","parent":{"ref":"EID6ee20fca-0175-1000-c8c4-ccda9b92f6fa"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee210ed-0175-1000-61bc-1d6acfe03089","parent":{"ref":"EID6ee20fca-0175-1000-c8c4-ccda9b92f6fa"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee210ed-0175-1000-065c-c3fae680b49d","parent":{"ref":"EID6ee20fca-0175-1000-c8c4-ccda9b92f6fa"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee210ed-0175-1000-025d-0386e68d20da","parent":{"ref":"EID6ee20fca-0175-1000-c8c4-ccda9b92f6fa"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb2ff38d3-9343-4d11-ac16-de73fc94dae3"},{"ref":"EIDfb688a22-87d1-48f6-b890-8670b2d4276d"},{"ref":"EIDb41eb495-fae0-4caa-81bc-6d48f5c52b42"}]},"parent":{"ref":"EID6ee20fca-0175-1000-4d06-da5eb7def0d8"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:05:10Z","duration":144,"status":"PASSED"},{"id":"EID6ee210ed-0175-1000-3611-e1cbc72859ff","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee21101-0175-1000-6232-fd321886736c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee211e3-0175-1000-3484-25b8e845da8d","parent":{"ref":"EID6ee21101-0175-1000-6232-fd321886736c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee211e3-0175-1000-c962-8c77975e4dcf","parent":{"ref":"EID6ee21101-0175-1000-6232-fd321886736c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee211e3-0175-1000-0167-077895da7e8d","parent":{"ref":"EID6ee21101-0175-1000-6232-fd321886736c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDadf93fc9-ebfd-4da4-a0a7-c06265d5bddd"},{"ref":"EID949ca88d-6794-4e9a-82c8-841fe26bcd2f"},{"ref":"EIDf0403790-390a-429b-ac9a-5269b3060885"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:10Z","duration":146,"status":"PASSED"},{"id":"EID6ee211ed-0175-1000-c9bd-f765a6aa5671","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21313-0175-1000-5634-0778372f6002","parent":{"ref":"EID6ee211ed-0175-1000-c9bd-f765a6aa5671"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee21313-0175-1000-5426-72bec5b51957","parent":{"ref":"EID6ee211ed-0175-1000-c9bd-f765a6aa5671"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee21313-0175-1000-7230-cf7549717191","parent":{"ref":"EID6ee211ed-0175-1000-c9bd-f765a6aa5671"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdbf7bf65-cec3-46cc-8d40-d46057bd339b"},{"ref":"EID75a56caa-b0b7-48ee-87df-6c3738889060"},{"ref":"EID4cc15129-02fe-4e87-a59c-2c3130e64cc7"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:10Z","duration":152,"status":"PASSED"},{"id":"EID6ee21314-0175-1000-c8dd-214cda1180d6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21389-0175-1000-2304-a7d5f19ba3fa","parent":{"ref":"EID6ee21314-0175-1000-c8dd-214cda1180d6"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee21389-0175-1000-d90f-8e3326d009fb","parent":{"ref":"EID6ee21314-0175-1000-c8dd-214cda1180d6"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee21389-0175-1000-068d-cc1f8538c68f","parent":{"ref":"EID6ee21314-0175-1000-c8dd-214cda1180d6"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID33b0d99d-fe3f-4dd4-9d4b-142e2e0197bc"},{"ref":"EID75491de7-74b7-4381-9f57-3670b2a760a1"},{"ref":"EID47537213-7359-4a96-9608-206a8d371745"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:11Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6ee20fca-0175-1000-4d06-da5eb7def0d8"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":668,"status":"PASSED"},{"id":"EID6ee2138a-0175-1000-a72d-d3f3c82192f5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee213df-0175-1000-145f-b37394db39d8","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee2138a-0175-1000-a72d-d3f3c82192f5"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:05:11Z","duration":13,"status":"FAILED"},{"id":"EID6ee213ec-0175-1000-8a62-0410d9a07c56","parent":{"ref":"EID6ee2138a-0175-1000-a72d-d3f3c82192f5"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee213ec-0175-1000-c226-a0be6fa05994","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee2138a-0175-1000-a72d-d3f3c82192f5"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"FAILED"},{"id":"EID6ee213ec-0175-1000-b18d-8e6f8eb6c7f2","parent":{"ref":"EID6ee2138a-0175-1000-a72d-d3f3c82192f5"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5f74d882-c13f-459f-9ce6-4a78cabb36ce"},{"ref":"EID7daf535b-6cfa-4a0d-bf8c-f1a13a5b8735"},{"ref":"EID068789b1-0db5-4ab6-a868-17d452a55124"}]},"parent":{"ref":"EID6ee20fca-0175-1000-4d06-da5eb7def0d8"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:05:11Z","duration":27,"status":"FAILED"}]},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":1058,"status":"FAILED"},{"id":"EID6ee213ec-0175-1000-2389-9f25b8e31f6f","testStepResults":{"TestStepResult":{"id":"EID6ee213ec-0175-1000-fe51-8ca83cdd4d77","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21455-0175-1000-343b-91d1898a655e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee213ec-0175-1000-fe51-8ca83cdd4d77"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:05:11Z","duration":12,"status":"FAILED"},{"id":"EID6ee21461-0175-1000-5358-1a67d70c78d8","parent":{"ref":"EID6ee213ec-0175-1000-fe51-8ca83cdd4d77"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee21461-0175-1000-412e-34c254b3562f","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee213ec-0175-1000-fe51-8ca83cdd4d77"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"FAILED"},{"id":"EID6ee21461-0175-1000-d5c2-d5cf36846608","parent":{"ref":"EID6ee213ec-0175-1000-fe51-8ca83cdd4d77"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9aaa7091-d759-42e6-a069-7ca9370ee6cc"},{"ref":"EIDec9ff7e5-219e-4b91-8152-380a1003cb49"},{"ref":"EID5a9a618f-e4e0-44b9-9b94-1ff9d75747ab"}]},"parent":{"ref":"EID6ee213ec-0175-1000-2389-9f25b8e31f6f"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:05:11Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6ee2076b-0175-1000-4741-7bbe68bc6e9a"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:05:11Z","duration":117,"status":"FAILED"}]},"parent":{"ref":"EIDcb1ff33f-d153-4c51-87be-90692114c163"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:05:08Z","duration":3318,"status":"FAILED"},{"id":"EID6ee21461-0175-1000-3f68-0745cc5a78ee","testCaseResults":{"TestCaseResult":[{"id":"EID6ee21462-0175-1000-6190-90fb14147505","testStepResults":{"TestStepResult":{"id":"EID6ee21462-0175-1000-2a29-e9b03cff8e8a","parent":{"ref":"EID6ee21462-0175-1000-6190-90fb14147505"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee21462-0175-1000-52b4-08e072799a17","testStepResults":{"TestStepResult":{"id":"EID6ee21462-0175-1000-ffe4-624ac6f725b9","parent":{"ref":"EID6ee21462-0175-1000-52b4-08e072799a17"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee21462-0175-1000-45de-b55a161aee59","testStepResults":{"TestStepResult":{"id":"EID6ee21462-0175-1000-d907-bd8ad9e70918","parent":{"ref":"EID6ee21462-0175-1000-45de-b55a161aee59"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:05:11Z","duration":11,"status":"SKIPPED"},{"id":"EID6ee2146d-0175-1000-38a0-0683a4e04478","testStepResults":{"TestStepResult":{"id":"EID6ee2146d-0175-1000-5cb9-7d853f18eb95","parent":{"ref":"EID6ee2146d-0175-1000-38a0-0683a4e04478"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee2146d-0175-1000-d9aa-a34a1256c5ba","testStepResults":{"TestStepResult":{"id":"EID6ee2146d-0175-1000-e92c-cca09420f710","parent":{"ref":"EID6ee2146d-0175-1000-d9aa-a34a1256c5ba"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee2146d-0175-1000-1d16-7d3c3d13db42","testStepResults":{"TestStepResult":{"id":"EID6ee2146d-0175-1000-7702-e78cff0c2140","parent":{"ref":"EID6ee2146d-0175-1000-1d16-7d3c3d13db42"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee2146e-0175-1000-8e8f-cda4ca86e791","testStepResults":{"TestStepResult":{"id":"EID6ee2146e-0175-1000-1bf3-b273ea246ad3","parent":{"ref":"EID6ee2146e-0175-1000-8e8f-cda4ca86e791"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":450,"status":"SKIPPED"}},"parent":{"ref":"EID6ee21461-0175-1000-3f68-0745cc5a78ee"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EIDcb1ff33f-d153-4c51-87be-90692114c163"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:05:11Z","duration":13,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"ServiceEndpoint","id":"EID9aaa7091-d759-42e6-a069-7ca9370ee6cc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDc1bd1618-7634-4f96-bcc9-f885c2495c55","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID47ebe71a-ccc9-49a2-9969-b5ad1092f035","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID47ebe71a-ccc9-49a2-9969-b5ad1092f035"}},{"type":"Error","id":"EID31660415-a0f8-4603-832d-e3fe3206c1fd","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID31660415-a0f8-4603-832d-e3fe3206c1fd"}},{"type":"ServiceResponse","id":"EID3bfcaa20-7815-4961-a254-66cdfc3a17b6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID3bfcaa20-7815-4961-a254-66cdfc3a17b6"}},{"type":"Message","id":"EID693fc3ac-2151-4831-ad56-7219d2d3fae9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID693fc3ac-2151-4831-ad56-7219d2d3fae9"}},{"type":"Message","id":"EID04659994-f61a-4aea-a47e-0e89bf14c9ed","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID04659994-f61a-4aea-a47e-0e89bf14c9ed"}},{"type":"ServiceEndpoint","id":"EIDdbf7bf65-cec3-46cc-8d40-d46057bd339b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID93f2f400-3ec5-4d1b-9fc0-1b544c392ffb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID87237730-61bb-4e94-8e15-7676d46fd97f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbbf90dde-9855-4538-881e-d4f2c2b9f215","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDba67e00e-4121-4b08-bca6-7e1ce3a1b8d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID3fa18dc8-24d5-484d-941f-3d1fc4d11797","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID3fa18dc8-24d5-484d-941f-3d1fc4d11797"}},{"type":"ServiceEndpoint","id":"EID46eeea6c-c0f5-499f-9d47-043f6cb64eaf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID74040e3e-4c3c-4286-809c-cda868fb57b1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID6d9c9c23-63c0-451b-91de-faec41de595b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID6d9c9c23-63c0-451b-91de-faec41de595b"}},{"type":"GetParameter","id":"EID5e22fcbb-4e03-492f-be7d-ef08f11963bd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID47537213-7359-4a96-9608-206a8d371745","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID37d8bea3-6027-4692-aafe-ee8b8c77107e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID37d8bea3-6027-4692-aafe-ee8b8c77107e"}},{"type":"ServiceEndpoint","id":"EID83c6eec7-d79f-40fa-9fae-8dc6b0d082ca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe729bd69-369c-4b93-be12-9afcdf24201e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDe729bd69-369c-4b93-be12-9afcdf24201e"}},{"type":"ServiceEndpoint","id":"EID32245599-981d-413f-bdae-46254bba52dc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0ceb63f9-1933-40fd-943e-bb1cdb364474","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID571577b4-82ba-4dc8-8fa7-9f80d38a8c9a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID571577b4-82ba-4dc8-8fa7-9f80d38a8c9a"}},{"type":"Error","id":"EIDffc07ef5-9842-467c-b155-2a0b42536d7a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDffc07ef5-9842-467c-b155-2a0b42536d7a"}},{"type":"GetParameter","id":"EIDeb290289-e14e-42df-a266-182387075c6b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2d83ca05-5631-4b6b-a430-f2782bae50ee","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID6514624e-e338-428c-985d-dcf9c1b5bca3","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID6514624e-e338-428c-985d-dcf9c1b5bca3"}},{"type":"Message","id":"EIDf084bdd7-66c9-4e17-ad37-983c13709098","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDf084bdd7-66c9-4e17-ad37-983c13709098"}},{"type":"ServiceEndpoint","id":"EIDf5a273c4-e4a5-437e-96ee-2d4034d9f75c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDea081abb-2ea9-4903-bcfa-5b6578de02fd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID5c411084-9689-4ea2-84f1-b813794f1365","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7cd4a121-c21b-438b-b656-31e7bfc01d28","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDe3c95754-2986-4492-8a3f-dabf0b658cc5","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDe3c95754-2986-4492-8a3f-dabf0b658cc5"}},{"type":"GetParameter","id":"EIDe9989602-fefd-48f9-8bd4-0a0eb9c296cf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID6ebf7e3d-f366-4a99-addc-6f5bc5599d8b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID6ebf7e3d-f366-4a99-addc-6f5bc5599d8b"}},{"type":"GetParameter","id":"EID453f863a-8a7a-4345-9fb1-dfceba30a469","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID949ca88d-6794-4e9a-82c8-841fe26bcd2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID949ca88d-6794-4e9a-82c8-841fe26bcd2f"}},{"type":"Message","id":"EID95ee2b4e-3508-49c7-9e25-da9133a9d33f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID95ee2b4e-3508-49c7-9e25-da9133a9d33f"}},{"type":"ServiceResponse","id":"EID3fa79c8c-d544-44a1-a238-f157db2bd91f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID3fa79c8c-d544-44a1-a238-f157db2bd91f"}},{"type":"Message","id":"EID39e258d3-d683-4965-9185-9dd50d176e20","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID39e258d3-d683-4965-9185-9dd50d176e20"}},{"type":"ServiceEndpoint","id":"EIDadf93fc9-ebfd-4da4-a0a7-c06265d5bddd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID233989d3-7293-4788-b41b-3d37f0599d7b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID233989d3-7293-4788-b41b-3d37f0599d7b"}},{"type":"GetParameter","id":"EID8451c208-267f-4549-85c9-fb4fc95d4afb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfb688a22-87d1-48f6-b890-8670b2d4276d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDfb688a22-87d1-48f6-b890-8670b2d4276d"}},{"type":"ServiceEndpoint","id":"EID5f362336-386c-46ca-9f9e-b6b2bbb879d8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDf01c7543-9efa-4828-8133-1043d474abc0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDf01c7543-9efa-4828-8133-1043d474abc0"}},{"type":"Error","id":"EID0c4880c1-623b-4fd1-afc6-40905223a19f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID0c4880c1-623b-4fd1-afc6-40905223a19f"}},{"type":"GetParameter","id":"EID46d872f0-ecdd-447e-ba1f-2f6266217493","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa3bc0bf7-7348-41e1-935f-5e33e59aa432","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDce423365-6582-4c76-ab01-431a5b6b54e1","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDce423365-6582-4c76-ab01-431a5b6b54e1"}},{"type":"Error","id":"EIDd82ef0a0-7ece-4b70-9fae-70da3d2c5e06","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDd82ef0a0-7ece-4b70-9fae-70da3d2c5e06"}},{"type":"ServiceEndpoint","id":"EIDfd57f304-67aa-4e4c-8965-fe0912d7af52","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID068789b1-0db5-4ab6-a868-17d452a55124","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID6552ad9e-8bb1-4ea5-95ea-14104de91e41","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5a9a618f-e4e0-44b9-9b94-1ff9d75747ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID5c082ff0-24d3-4afe-8724-da0ab14118ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID222589c0-c7a4-430f-a6b9-68c5ba5c85c1","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID222589c0-c7a4-430f-a6b9-68c5ba5c85c1"}},{"type":"ServiceEndpoint","id":"EIDe010b323-837a-4312-b7b7-d9e312c45762","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf0403790-390a-429b-ac9a-5269b3060885","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID4cc15129-02fe-4e87-a59c-2c3130e64cc7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID5e4d2fd3-c956-45dc-8e55-bae6879293f7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID5e4d2fd3-c956-45dc-8e55-bae6879293f7"}},{"type":"GetParameter","id":"EID981a29f8-1a77-400c-80c6-3ab53656819e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID75491de7-74b7-4381-9f57-3670b2a760a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID75491de7-74b7-4381-9f57-3670b2a760a1"}},{"type":"ServiceResponse","id":"EID6cbc6df1-028e-44e5-847b-74eefce4d1ac","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID6cbc6df1-028e-44e5-847b-74eefce4d1ac"}},{"type":"ServiceEndpoint","id":"EID33b0d99d-fe3f-4dd4-9d4b-142e2e0197bc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EIDed08693e-a990-402e-a2f6-4d88bf41a6bf","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDed08693e-a990-402e-a2f6-4d88bf41a6bf"}},{"type":"Message","id":"EID136a323d-3fa4-4a49-b929-5135781bdae8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID136a323d-3fa4-4a49-b929-5135781bdae8"}},{"type":"GetParameter","id":"EIDb3f89487-b6c2-4199-8353-3cba750bc6ea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDe222dffa-eb6d-4d78-b417-bae5ed1e229f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3e3afb6c-fce0-49b7-b21c-77d1316219a9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID8bed56c6-6e96-4bed-933e-696f6839671b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID8bed56c6-6e96-4bed-933e-696f6839671b"}},{"type":"ServiceEndpoint","id":"EIDebacd5b2-526a-4efb-b366-fb8c8890b2b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf7be79cf-4697-4216-a8ba-8e6019248cb3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID68c2c118-9cb0-4bfb-820f-7c40d662d20b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID68c2c118-9cb0-4bfb-820f-7c40d662d20b"}},{"type":"ServiceResponse","id":"EID5905f9ae-0c8c-4fe4-8fe7-03a5cef6726d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID5905f9ae-0c8c-4fe4-8fe7-03a5cef6726d"}},{"type":"Message","id":"EID1b9e92a1-166d-4b90-a422-d10679f0f7bd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID1b9e92a1-166d-4b90-a422-d10679f0f7bd"}},{"type":"Error","id":"EIDd6ac0711-42d9-4a7f-ace8-7b961c5144bc","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDd6ac0711-42d9-4a7f-ace8-7b961c5144bc"}},{"type":"ServiceResponse","id":"EID40dc6011-2a2f-411b-b108-cdb9a574d1b8","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID40dc6011-2a2f-411b-b108-cdb9a574d1b8"}},{"type":"ServiceResponse","id":"EID154f80db-3e0b-4de0-976f-c6b4b0c59c0c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID154f80db-3e0b-4de0-976f-c6b4b0c59c0c"}},{"type":"ServiceEndpoint","id":"EID476d0da6-957a-4374-8ef3-4d90d9acd60c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID34404964-b553-4b0e-95c8-c9498d0bf6f4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID34404964-b553-4b0e-95c8-c9498d0bf6f4"}},{"type":"GetParameter","id":"EID41d660bb-d11d-48fe-8957-80dd5f31cfe9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID5daaa41c-997c-4c9b-b860-1d75a1a6cbee","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID5daaa41c-997c-4c9b-b860-1d75a1a6cbee"}},{"type":"ServiceResponse","id":"EID0e2065be-8a6c-4566-b9fc-8f8451644762","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID0e2065be-8a6c-4566-b9fc-8f8451644762"}},{"type":"Error","id":"EID44198b6d-51ab-4653-ba63-49d346912496","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID44198b6d-51ab-4653-ba63-49d346912496"}},{"type":"GetParameter","id":"EIDf0ee1025-4d30-4aef-b803-01b8fb1f51e9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID33a203ee-913f-4f87-9eb5-26ffeb9a0b1f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID56c3c40d-f151-4e7a-b2e4-fce3a5f1b480","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID56c3c40d-f151-4e7a-b2e4-fce3a5f1b480"}},{"type":"Message","id":"EID3592f796-63a4-4a83-946f-f8497d74d220","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID3592f796-63a4-4a83-946f-f8497d74d220"}},{"type":"Error","id":"EID332cc37a-8a20-4983-b86e-d7e32560542c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID332cc37a-8a20-4983-b86e-d7e32560542c"}},{"type":"GetParameter","id":"EID226ee917-9398-4159-9d89-71a5e4d4a08a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID20b77cdb-6add-42d6-9361-9a8fc5dc9f84","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID20b77cdb-6add-42d6-9361-9a8fc5dc9f84"}},{"type":"ServiceEndpoint","id":"EID099969fb-87a6-4b5d-8f8d-93f73facbfb1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc284696a-7ccb-433b-aa02-31badf2e1b5b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDc284696a-7ccb-433b-aa02-31badf2e1b5b"}},{"type":"ServiceResponse","id":"EID1884dc8d-81fc-4924-aac5-2e2247bc27a5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID1884dc8d-81fc-4924-aac5-2e2247bc27a5"}},{"type":"GetParameter","id":"EIDcdc27728-7502-4ecd-a7b1-c8ce4744604a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID02711bf5-814d-4f10-8868-1b3cebcf85c6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID02711bf5-814d-4f10-8868-1b3cebcf85c6"}},{"type":"GetParameter","id":"EID6d993672-0cd1-4cb3-95f0-76dad84a0b86","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDa98a1b4c-909c-4692-9205-74ee5ff619e3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe56a099b-3938-4b0d-a3e1-1fe9751f678e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EIDb6f0505d-66e6-4fae-93fb-26e247557e4b","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDb6f0505d-66e6-4fae-93fb-26e247557e4b"}},{"type":"ServiceResponse","id":"EIDc04a4b5c-217e-4872-b06b-89daa9bdb092","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDc04a4b5c-217e-4872-b06b-89daa9bdb092"}},{"type":"GetParameter","id":"EID54a07d2d-f946-4b20-aea7-86bf5bdf6364","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID5d785d74-36e3-4cfd-a809-aac701258cb7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc7fa2ac9-9011-4f31-97c8-0a3fd3ecbb9a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDc7fa2ac9-9011-4f31-97c8-0a3fd3ecbb9a"}},{"type":"Message","id":"EIDdb32f552-4236-42e1-b0a7-fbe895e693cb","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDdb32f552-4236-42e1-b0a7-fbe895e693cb"}},{"type":"GetParameter","id":"EID3b099922-9ecf-42b4-bc70-a39892f7cd0f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID3766c8cd-5f39-49ad-9da9-0ca2be40c4e7","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID3766c8cd-5f39-49ad-9da9-0ca2be40c4e7"}},{"type":"GetParameter","id":"EIDf1d35738-ed37-4f90-b4de-f552a83c79fc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID322a6d8c-924f-405b-bfc1-9b7f77823f41","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID322a6d8c-924f-405b-bfc1-9b7f77823f41"}},{"type":"ServiceResponse","id":"EID50398624-be8d-49aa-bca2-be6224e041fe","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID50398624-be8d-49aa-bca2-be6224e041fe"}},{"type":"Error","id":"EIDba3a9af2-2d60-438f-ab6e-1f6ae84577d6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDba3a9af2-2d60-438f-ab6e-1f6ae84577d6"}},{"type":"Error","id":"EID53b7c708-0f61-4e71-98bb-229432697911","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID53b7c708-0f61-4e71-98bb-229432697911"}},{"type":"Message","id":"EID637a72ad-ed02-4dce-9b3a-d227e6a56d13","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID637a72ad-ed02-4dce-9b3a-d227e6a56d13"}},{"type":"ServiceResponse","id":"EID92fa2798-889c-43ea-b4f6-8e7acf4e971e","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID92fa2798-889c-43ea-b4f6-8e7acf4e971e"}},{"type":"ServiceEndpoint","id":"EID93d524dd-6f32-4914-929e-2603a225a262","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID7daf535b-6cfa-4a0d-bf8c-f1a13a5b8735","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID7daf535b-6cfa-4a0d-bf8c-f1a13a5b8735"}},{"type":"Message","id":"EID32ded535-26fd-4979-8022-30b3bb8e6432","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID32ded535-26fd-4979-8022-30b3bb8e6432"}},{"type":"Error","id":"EID8819c9d2-0337-4920-b8bc-804ed070608f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID8819c9d2-0337-4920-b8bc-804ed070608f"}},{"type":"GetParameter","id":"EID7914be53-5ec3-42e3-a79f-8c12ea796dd8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDff6e2c4b-0b89-405a-8be6-c43bb5b51cde","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"LogFile","id":"EID98c5a7d8-1c5e-40fd-9289-35168c77c5de","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID98c5a7d8-1c5e-40fd-9289-35168c77c5de"}},{"type":"Message","id":"EID987c9d43-47af-4638-a2c3-da433a119196","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID987c9d43-47af-4638-a2c3-da433a119196"}},{"type":"Message","id":"EID532c742f-265a-4b85-805d-d952e5fbb081","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID532c742f-265a-4b85-805d-d952e5fbb081"}},{"type":"Message","id":"EID18facfac-22db-45bd-9d0d-d45fab65f7b5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID18facfac-22db-45bd-9d0d-d45fab65f7b5"}},{"type":"Message","id":"EID96f0367e-7fb0-4293-8cd8-15d373e26fb4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID96f0367e-7fb0-4293-8cd8-15d373e26fb4"}},{"type":"ServiceEndpoint","id":"EID3acd684c-550c-49ef-b194-a3daaa31bdb5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID1dba24c6-0a74-4d0b-a79d-3bd3be59ba1e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID1dba24c6-0a74-4d0b-a79d-3bd3be59ba1e"}},{"type":"GetParameter","id":"EID3f887b19-ec83-421c-8d4b-e45ffe2eac27","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID872d9fb9-5b79-4b07-b553-dd366795c499","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDfca936ba-8ee8-491e-a9c5-016a93aa7a5a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDfca936ba-8ee8-491e-a9c5-016a93aa7a5a"}},{"type":"ServiceResponse","id":"EID1c2c0e03-b506-4252-b9a8-8a39707942a4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID1c2c0e03-b506-4252-b9a8-8a39707942a4"}},{"type":"GetParameter","id":"EIDf785e132-3ba3-4ce7-98e3-38f0b17ac7f8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDfae967a9-0e74-49e0-95f8-b4a405763a9b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5f74d882-c13f-459f-9ce6-4a78cabb36ce","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDec9ff7e5-219e-4b91-8152-380a1003cb49","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDec9ff7e5-219e-4b91-8152-380a1003cb49"}},{"type":"Error","id":"EIDe76cfc3f-63fc-45cd-a8c4-321d2117fa07","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDe76cfc3f-63fc-45cd-a8c4-321d2117fa07"}},{"type":"ServiceResponse","id":"EIDb46fc374-be30-45db-9baf-43c82a2dc635","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDb46fc374-be30-45db-9baf-43c82a2dc635"}},{"type":"Error","id":"EID66371256-b380-4d22-bbbc-b36080015539","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID66371256-b380-4d22-bbbc-b36080015539"}},{"type":"ServiceEndpoint","id":"EIDb2ff38d3-9343-4d11-ac16-de73fc94dae3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EID1034655f-7f2d-466c-a79f-5355070f1d02","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID20438d9f-a3c3-4f6f-b1f7-d1ba0f5ad9ba","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID20438d9f-a3c3-4f6f-b1f7-d1ba0f5ad9ba"}},{"type":"ServiceEndpoint","id":"EID47e2c346-2b71-44f8-9441-b447935ad439","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID10bd1179-fd5a-43da-bf15-d17f3217cb3d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID10bd1179-fd5a-43da-bf15-d17f3217cb3d"}},{"type":"ServiceResponse","id":"EID86ce4358-667c-4464-94a5-b231f4234657","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID86ce4358-667c-4464-94a5-b231f4234657"}},{"type":"ServiceEndpoint","id":"EID486bd3b9-2861-43c9-9005-91c3b2bf7298","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID27beb37f-b71b-47dc-a782-fd03b3280ee2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDa4762487-1715-4ca6-b042-9c22ff6630e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDcedea490-b8a0-4fcd-b152-93ab6d8ca159","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID75a56caa-b0b7-48ee-87df-6c3738889060","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID75a56caa-b0b7-48ee-87df-6c3738889060"}},{"type":"ServiceResponse","id":"EID8169f841-e9a6-48f0-9c32-f6b1e098dec7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID8169f841-e9a6-48f0-9c32-f6b1e098dec7"}},{"type":"ServiceResponse","id":"EIDa9e3aa91-ce21-4d9f-871e-773f78beaac9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDa9e3aa91-ce21-4d9f-871e-773f78beaac9"}},{"type":"ServiceEndpoint","id":"EID811d97bc-391e-440e-b301-5a18614f0597","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID6fa7ceba-8fee-4b2f-9a29-54a9d44bb34b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID1f6415bd-c61b-47c1-a483-e75b9c8b505f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EID1f6415bd-c61b-47c1-a483-e75b9c8b505f"}},{"type":"GetParameter","id":"EID53a7c74a-b44b-42ef-a651-0eaf1aa5b28b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb41eb495-fae0-4caa-81bc-6d48f5c52b42","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDdeb4269a-f60e-4977-be50-c00ebb966a80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9f2d58a8-d8ba-4452-b18d-e82bca352d88","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDc9c37262-0af9-4e8b-8233-cada860022a2","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDcb1ff33f-d153-4c51-87be-90692114c163/Attachments/EIDc9c37262-0af9-4e8b-8233-cada860022a2"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:05:00Z","duration":11440,"status":"FAILED"}}}}}
11:05:23.811 [print] EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37
11:05:23.812 [print] FAILED
11:05:23.812 [print] FAILED
11:05:23.812 [print] Conformance Class Download Service - Pre-defined Atom
11:05:23.812 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37.json
11:05:23.813 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/f8b3e3a5-6aa7-4354-8d77-96db4a6dfc37.json
11:05:23.813 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf8b3e3a5-6aa7-4354-8d77-96db4a6dfc37/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:05:23.882 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:05:23.883 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:08:10.948 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:08:10.948 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:08:16.012 response time in milliseconds: 4309.51
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:08:15 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:08:13 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e.json","testRuns":{"TestRun":{"id":"EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:13.092Z","testTasks":{"TestTask":{"id":"EID082333af-793d-413e-b8e4-84767dfc8fc0","parent":{"ref":"EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdbf1f64f-5cc4-49cd-8fd8-4004cdfcca1f"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdbf1f64f-5cc4-49cd-8fd8-4004cdfcca1f","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:11.391Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:12.705Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:08:16.034 [print] EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e
11:08:16.034 [print] UNDEFINED
11:08:16.035 [print] Conformance Class Download Service - Pre-defined Atom
11:08:16.035 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e.json
11:08:16.035 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/log
11:08:16.047 [print] statuspath TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e
11:08:16.048 [print] progresspath TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
11:08:16.048 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:16.572 response time in milliseconds: 522.72
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:08:16 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"0","max":"240","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING"]}
11:08:16.572 [print] {
"val": "0",
"max": "240",
"log": [
"28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)",
"28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:08:13 - Preparing 1 Test Task:",
"28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)",
"28.10.2020 11:08:13 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:08:13 - with parameters: ",
"28.10.2020 11:08:13 - etf.testcases = *",
"28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:08:13 - Setting state to CREATED",
"28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING"
]
}
11:08:16.573 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:17.086 response time in milliseconds: 512.82
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:08:17 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"0","max":"240","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING"]}
11:08:17.087 retry condition not satisfied: response.val == response.max
11:08:17.087 sleeping before retry #1
11:08:22.088 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:22.612 response time in milliseconds: 522.83
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:08:22 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"34","max":"35","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:17 - Starting TestRun.6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e at 2020-10-28T11:08:19Z","28.10.2020 11:08:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:19 - Project Properties: ","28.10.2020 11:08:19 - etf.testcases - * ","28.10.2020 11:08:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:19 - username - ","28.10.2020 11:08:19 - authUser - ","28.10.2020 11:08:19 - authMethod - basic ","28.10.2020 11:08:19 - TestRunTask initialized"]}
11:08:22.612 retry condition not satisfied: response.val == response.max
11:08:22.612 sleeping before retry #2
11:08:27.613 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:29.879 response time in milliseconds: 2265.46
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:08:29 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"85","max":"86","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:17 - Starting TestRun.6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e at 2020-10-28T11:08:19Z","28.10.2020 11:08:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:19 - Project Properties: ","28.10.2020 11:08:19 - etf.testcases - * ","28.10.2020 11:08:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:19 - username - ","28.10.2020 11:08:19 - authUser - ","28.10.2020 11:08:19 - authMethod - basic ","28.10.2020 11:08:19 - TestRunTask initialized","28.10.2020 11:08:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:08:29.880 retry condition not satisfied: response.val == response.max
11:08:29.880 sleeping before retry #3
11:08:34.881 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:35.389 response time in milliseconds: 507.71
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:08:35 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:17 - Starting TestRun.6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e at 2020-10-28T11:08:19Z","28.10.2020 11:08:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:19 - Project Properties: ","28.10.2020 11:08:19 - etf.testcases - * ","28.10.2020 11:08:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:19 - username - ","28.10.2020 11:08:19 - authUser - ","28.10.2020 11:08:19 - authMethod - basic ","28.10.2020 11:08:19 - TestRunTask initialized","28.10.2020 11:08:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:08:35.390 retry condition not satisfied: response.val == response.max
11:08:35.390 sleeping before retry #4
11:08:40.391 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:42.051 response time in milliseconds: 1552.37
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:08:41 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:17 - Starting TestRun.6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e at 2020-10-28T11:08:19Z","28.10.2020 11:08:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:19 - Project Properties: ","28.10.2020 11:08:19 - etf.testcases - * ","28.10.2020 11:08:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:19 - username - ","28.10.2020 11:08:19 - authUser - ","28.10.2020 11:08:19 - authMethod - basic ","28.10.2020 11:08:19 - TestRunTask initialized","28.10.2020 11:08:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:08:42.051 retry condition not satisfied: response.val == response.max
11:08:42.051 sleeping before retry #5
11:08:47.052 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:47.557 response time in milliseconds: 504.07
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:08:47 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:08:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:13 UTC 2020)","28.10.2020 11:08:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:13 - Preparing 1 Test Task:","28.10.2020 11:08:13 - TestTask 1 (082333af-793d-413e-b8e4-84767dfc8fc0)","28.10.2020 11:08:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:13 - with parameters: ","28.10.2020 11:08:13 - etf.testcases = *","28.10.2020 11:08:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:13 - Setting state to CREATED","28.10.2020 11:08:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:17 - Starting TestRun.6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e at 2020-10-28T11:08:19Z","28.10.2020 11:08:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:19 - Project Properties: ","28.10.2020 11:08:19 - etf.testcases - * ","28.10.2020 11:08:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:19 - username - ","28.10.2020 11:08:19 - authUser - ","28.10.2020 11:08:19 - authMethod - basic ","28.10.2020 11:08:19 - TestRunTask initialized","28.10.2020 11:08:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:08:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:31 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:33 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:33 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:08:47.561 retry condition not satisfied: response.val == response.max
11:08:47.561 sleeping before retry #6
11:08:52.562 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:54.581 response time in milliseconds: 2017.70
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:08:54 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:08:54.581 retry condition satisfied
11:08:54.581 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:08:54.582 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:01.045 response time in milliseconds: 5495.75
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Cache-Control: public, max-age=120
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:09:00 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Last-Modified: Wed, 28 Oct 2020 11:08:54 GMT
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e.json","testRuns":{"TestRun":{"id":"EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:13.092Z","testTasks":{"TestTask":{"id":"EID082333af-793d-413e-b8e4-84767dfc8fc0","parent":{"ref":"EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdbf1f64f-5cc4-49cd-8fd8-4004cdfcca1f"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdbf1f64f-5cc4-49cd-8fd8-4004cdfcca1f","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:11.391Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:12.705Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573","testObject":{"ref":"EIDdbf1f64f-5cc4-49cd-8fd8-4004cdfcca1f"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee4f278-0175-1000-f865-8a29c088e620","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4f278-0175-1000-ab82-cb7878bc8ff7","testStepResults":{"TestStepResult":[{"id":"EID6ee4f27d-0175-1000-16c4-19b2ea307a3f","parent":{"ref":"EID6ee4f278-0175-1000-ab82-cb7878bc8ff7"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:08:19Z","duration":12,"status":"PASSED"},{"id":"EID6ee4f28a-0175-1000-c7a1-68a5c3cfb438","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f335-0175-1000-f2e1-06345df4a9ca","parent":{"ref":"EID6ee4f28a-0175-1000-c7a1-68a5c3cfb438"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f335-0175-1000-9fc6-b291fc2cd35f","parent":{"ref":"EID6ee4f28a-0175-1000-c7a1-68a5c3cfb438"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f335-0175-1000-1b12-c5c02466706f","parent":{"ref":"EID6ee4f28a-0175-1000-c7a1-68a5c3cfb438"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f335-0175-1000-ab3b-4ead87e764fc","parent":{"ref":"EID6ee4f28a-0175-1000-c7a1-68a5c3cfb438"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID736f7a83-2cc0-41e0-abdb-67ca761e15cd"},{"ref":"EID190693d4-53ee-443a-a947-64d53ec43239"},{"ref":"EIDc9164c13-e3e0-4f29-a0c2-c28ac3783945"}]},"parent":{"ref":"EID6ee4f278-0175-1000-ab82-cb7878bc8ff7"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:08:19Z","duration":62,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f278-0175-1000-f865-8a29c088e620"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:08:19Z","duration":189,"status":"PASSED"},{"id":"EID6ee4f336-0175-1000-bc8d-32aaf300ff8f","testStepResults":{"TestStepResult":{"id":"EID6ee4f33e-0175-1000-5dd8-98197433fc77","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f3d6-0175-1000-808f-657120a25c56","parent":{"ref":"EID6ee4f33e-0175-1000-5dd8-98197433fc77"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:08:19Z","duration":1,"status":"PASSED"},{"id":"EID6ee4f3d7-0175-1000-afd9-e621c88de743","parent":{"ref":"EID6ee4f33e-0175-1000-5dd8-98197433fc77"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f3d7-0175-1000-af7a-c8d51ba74b0c","parent":{"ref":"EID6ee4f33e-0175-1000-5dd8-98197433fc77"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf5284abc-e754-4f53-a161-11ccf8f87c3c"},{"ref":"EIDc2ddccc2-2d17-4d25-9ec8-ad286bbf98bd"},{"ref":"EIDc2bcf4fc-6724-4f21-ac0d-6e7889581038"}]},"parent":{"ref":"EID6ee4f336-0175-1000-bc8d-32aaf300ff8f"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:08:19Z","duration":45,"status":"PASSED"}},"parent":{"ref":"EID6ee4f278-0175-1000-f865-8a29c088e620"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:08:19Z","duration":161,"status":"PASSED"}]},"parent":{"ref":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:08:19Z","duration":351,"status":"PASSED"},{"id":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4f3d7-0175-1000-4804-cc4d1c8a1baa","testStepResults":{"TestStepResult":[{"id":"EID6ee4f3d7-0175-1000-1e7d-4319221042ce","parent":{"ref":"EID6ee4f3d7-0175-1000-4804-cc4d1c8a1baa"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:08:19Z","duration":45,"status":"PASSED"},{"id":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f46c-0175-1000-e00b-3bb984458dfe","parent":{"ref":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f46c-0175-1000-a386-6ac0e8d33135","parent":{"ref":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f46c-0175-1000-728e-bb2b1618fc8d","parent":{"ref":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f46c-0175-1000-8d49-790e9d04a33f","parent":{"ref":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f46c-0175-1000-b716-a8284a2d14f2","parent":{"ref":"EID6ee4f3d7-0175-1000-1fe6-d89ce5c92bb0"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa6688671-2d81-4e14-a3af-f77c37ebc02a"},{"ref":"EID57217e3a-16f6-484a-886a-455a0f776f1b"},{"ref":"EIDb2b9fb1b-a176-49c2-93bf-75a075e055aa"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-4804-cc4d1c8a1baa"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:08:19Z","duration":34,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:08:19Z","duration":158,"status":"PASSED"},{"id":"EID6ee4f475-0175-1000-81e9-869d4aa2d354","testStepResults":{"TestStepResult":[{"id":"EID6ee4f475-0175-1000-7ace-11f62ca70928","attachments":{"attachment":[{"ref":"EID417c55ee-0fd8-47b8-a0f4-44a7a7e69993"},{"ref":"EIDe16610b2-c5df-40e2-b216-90e33fbb4c86"}]},"parent":{"ref":"EID6ee4f475-0175-1000-81e9-869d4aa2d354"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:08:19Z","duration":69,"status":"PASSED"},{"id":"EID6ee4f4e0-0175-1000-175a-08dee5768c50","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f609-0175-1000-b8f4-48a5b64e23a1","parent":{"ref":"EID6ee4f4e0-0175-1000-175a-08dee5768c50"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f609-0175-1000-7dfd-0394ca714a79","parent":{"ref":"EID6ee4f4e0-0175-1000-175a-08dee5768c50"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f609-0175-1000-d507-b59a21008f79","parent":{"ref":"EID6ee4f4e0-0175-1000-175a-08dee5768c50"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f609-0175-1000-0a2a-fee296e560d0","parent":{"ref":"EID6ee4f4e0-0175-1000-175a-08dee5768c50"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfd6119c3-16a7-4766-94e8-641b23305d8b"},{"ref":"EIDe0221b76-358f-42cb-9196-021999801d7c"},{"ref":"EID63c18c7f-d16c-4624-a567-02bae9db7a6a"}]},"parent":{"ref":"EID6ee4f475-0175-1000-81e9-869d4aa2d354"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:08:20Z","duration":101,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:08:19Z","duration":414,"status":"PASSED"},{"id":"EID6ee4f617-0175-1000-f0a7-38486eafefef","testStepResults":{"TestStepResult":[{"id":"EID6ee4f617-0175-1000-d4c1-bbc0bf8a9fa9","attachments":{"attachment":[{"ref":"EID7ae95a25-5531-4c31-980e-86dd083b8ff2"},{"ref":"EID0049f189-edf1-49b0-935c-6939072aaf12"}]},"parent":{"ref":"EID6ee4f617-0175-1000-f0a7-38486eafefef"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:08:20Z","duration":147,"status":"PASSED"},{"id":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f86c-0175-1000-d6bf-4a94bf0e507e","parent":{"ref":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f86c-0175-1000-820a-75651e248bb4","parent":{"ref":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f86c-0175-1000-6c25-681d70869aff","parent":{"ref":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f86c-0175-1000-246f-cb88eab5deae","parent":{"ref":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f86c-0175-1000-57bb-44918f0ea76c","parent":{"ref":"EID6ee4f70d-0175-1000-4ea6-0b3e104b7b10"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf9c2caa9-4bb4-4d3d-92fd-7ce66d3afd95"},{"ref":"EID149d9b7b-20fc-4391-8448-0f160b626a12"},{"ref":"EID8ce28935-ab0c-4748-b826-a10c84634ace"}]},"parent":{"ref":"EID6ee4f617-0175-1000-f0a7-38486eafefef"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:08:20Z","duration":238,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:08:20Z","duration":597,"status":"PASSED"},{"id":"EID6ee4f86c-0175-1000-efc8-86186284ef3e","testStepResults":{"TestStepResult":[{"id":"EID6ee4f86c-0175-1000-e202-190a12521227","attachments":{"attachment":[{"ref":"EID43c47a68-115f-47ae-8fe7-117a40fa5045"},{"ref":"EIDcdf194d9-fb84-4073-8724-287dd9124d46"}]},"parent":{"ref":"EID6ee4f86c-0175-1000-efc8-86186284ef3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:08:20Z","duration":116,"status":"PASSED"},{"id":"EID6ee4f913-0175-1000-5405-6f28db5826ca","parent":{"ref":"EID6ee4f86c-0175-1000-efc8-86186284ef3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f913-0175-1000-d413-2f1cbd238484","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fa9c-0175-1000-35f3-2cbfd173d3cd","parent":{"ref":"EID6ee4f913-0175-1000-d413-2f1cbd238484"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa9c-0175-1000-1164-3ecb48a386e4","parent":{"ref":"EID6ee4f913-0175-1000-d413-2f1cbd238484"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa9c-0175-1000-31ef-ab4ff63b1c0f","parent":{"ref":"EID6ee4f913-0175-1000-d413-2f1cbd238484"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa9c-0175-1000-cbd9-469c1139e001","parent":{"ref":"EID6ee4f913-0175-1000-d413-2f1cbd238484"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID757f8fc8-3fac-46e0-9a70-215c51ebc2a4"},{"ref":"EID44d765e1-a3bb-468b-921c-e2a22401deb5"},{"ref":"EIDc974feaa-6437-4315-b268-bc349dd069be"}]},"parent":{"ref":"EID6ee4f86c-0175-1000-efc8-86186284ef3e"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:08:21Z","duration":252,"status":"PASSED"},{"id":"EID6ee4faa5-0175-1000-072d-2c7fafb15e16","attachments":{"attachment":{"ref":"EIDff034499-28fd-4603-9c75-550d5f91a5df"}},"parent":{"ref":"EID6ee4f86c-0175-1000-efc8-86186284ef3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":1,"status":"PASSED"},{"id":"EID6ee4fab1-0175-1000-7a59-42088bf5158a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fb97-0175-1000-3f50-fe313f2bb5dc","parent":{"ref":"EID6ee4fab1-0175-1000-7a59-42088bf5158a"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fb97-0175-1000-3d8d-621a6808e1f2","parent":{"ref":"EID6ee4fab1-0175-1000-7a59-42088bf5158a"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fb97-0175-1000-8698-1dbfae4998c1","parent":{"ref":"EID6ee4fab1-0175-1000-7a59-42088bf5158a"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fb97-0175-1000-7ec8-ac4f825db384","parent":{"ref":"EID6ee4fab1-0175-1000-7a59-42088bf5158a"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fb97-0175-1000-ca8c-4b880746bcc2","parent":{"ref":"EID6ee4fab1-0175-1000-7a59-42088bf5158a"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf1b84b2d-d6a9-4e0b-91ad-0e96b899aa80"},{"ref":"EID7b68aa6b-2907-4ca0-bab5-8bfefe9b2d14"},{"ref":"EID5c033fbd-c12c-4a76-b1ed-558e47c3ed7d"}]},"parent":{"ref":"EID6ee4f86c-0175-1000-efc8-86186284ef3e"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:08:21Z","duration":90,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:08:20Z","duration":811,"status":"PASSED"},{"id":"EID6ee4fb97-0175-1000-bc90-23c475b088ba","testStepResults":{"TestStepResult":[{"id":"EID6ee4fb97-0175-1000-2cf8-52aa6027beeb","attachments":{"attachment":[{"ref":"EIDc28a887c-bc01-4a3f-9d13-144e1363023c"},{"ref":"EIDeaa49509-20b8-4011-9e31-b21933eedce5"}]},"parent":{"ref":"EID6ee4fb97-0175-1000-bc90-23c475b088ba"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":113,"status":"PASSED"},{"id":"EID6ee4fc38-0175-1000-7519-e08ee9e3bdcf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fcc6-0175-1000-3e72-890eb2663d0a","parent":{"ref":"EID6ee4fc38-0175-1000-7519-e08ee9e3bdcf"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fcc6-0175-1000-639b-b96bf6169f93","parent":{"ref":"EID6ee4fc38-0175-1000-7519-e08ee9e3bdcf"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fcc6-0175-1000-23c0-cbae21d856a5","parent":{"ref":"EID6ee4fc38-0175-1000-7519-e08ee9e3bdcf"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fcc6-0175-1000-27a8-639c2c22d77d","parent":{"ref":"EID6ee4fc38-0175-1000-7519-e08ee9e3bdcf"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID17ac865b-dd16-4c43-b393-356d1b704fe3"},{"ref":"EID37961803-f30e-444d-8840-fc1e54e2f020"},{"ref":"EIDf8aead8f-bc6d-46fd-a48d-44fb42ac1f45"}]},"parent":{"ref":"EID6ee4fb97-0175-1000-bc90-23c475b088ba"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:08:21Z","duration":27,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":303,"status":"PASSED"},{"id":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d","testStepResults":{"TestStepResult":[{"id":"EID6ee4fcc6-0175-1000-6864-2d08c67c0506","attachments":{"attachment":[{"ref":"EID14c554f4-f69f-4ea0-99d0-80a701efb793"},{"ref":"EIDeb21b3b4-c277-4bd6-9a09-3538fe42bb10"}]},"parent":{"ref":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:08:22Z","duration":226,"status":"PASSED"},{"id":"EID6ee4fe1b-0175-1000-44f9-3bfddc841b72","parent":{"ref":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fe1b-0175-1000-7648-b4ae145f1834","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fec3-0175-1000-c13d-80bbdd1a8c5a","parent":{"ref":"EID6ee4fe1b-0175-1000-7648-b4ae145f1834"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fec3-0175-1000-d7c1-453499044174","parent":{"ref":"EID6ee4fe1b-0175-1000-7648-b4ae145f1834"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fec3-0175-1000-1b30-1e12646db8cd","parent":{"ref":"EID6ee4fe1b-0175-1000-7648-b4ae145f1834"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fec3-0175-1000-755f-b5e16a5f8aac","parent":{"ref":"EID6ee4fe1b-0175-1000-7648-b4ae145f1834"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID25180a38-06ac-4ff5-8e8e-992bbcb6edbf"},{"ref":"EID50ae7caf-f649-423a-bca6-4d33d57aa4a1"},{"ref":"EID8c488b09-2104-4eee-b231-52c753347733"}]},"parent":{"ref":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:08:22Z","duration":81,"status":"PASSED"},{"id":"EID6ee4fec3-0175-1000-f610-70eef8502cf3","attachments":{"attachment":{"ref":"EID0b7a9946-0376-4fb6-b066-78258e4c34b4"}},"parent":{"ref":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:08:22Z","duration":2,"status":"PASSED"},{"id":"EID6ee4fed0-0175-1000-cc03-f5ad90296d91","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50033-0175-1000-b0ea-d826327c54a1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee4fed0-0175-1000-cc03-f5ad90296d91"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:08:22Z","duration":13,"status":"FAILED"},{"id":"EID6ee50040-0175-1000-944e-a4b565a9fb35","parent":{"ref":"EID6ee4fed0-0175-1000-cc03-f5ad90296d91"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee50040-0175-1000-6417-8670b3f37f10","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee4fed0-0175-1000-cc03-f5ad90296d91"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:08:22Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDef5ab09a-d1a2-4f92-847c-47c5330e296b"},{"ref":"EIDe3f17cf9-a127-4c88-8a05-417ac6e43776"},{"ref":"EIDb8092433-bff2-4348-8375-d48395676819"}]},"parent":{"ref":"EID6ee4fcc6-0175-1000-23c9-7b0a30dac92d"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:08:22Z","duration":299,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:08:22Z","duration":898,"status":"FAILED"},{"id":"EID6ee50049-0175-1000-4159-5fd5155668e3","testStepResults":{"TestStepResult":[{"id":"EID6ee50049-0175-1000-bb45-f0b6df9ce9cf","attachments":{"attachment":[{"ref":"EID94e67ca9-3a6e-45c2-9dd9-84faa6f365ba"},{"ref":"EID0f12c500-34fe-4cde-b89e-a5996829a910"}]},"parent":{"ref":"EID6ee50049-0175-1000-4159-5fd5155668e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:08:22Z","duration":168,"status":"PASSED"},{"id":"EID6ee50128-0175-1000-0b35-a29005fa162e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5024f-0175-1000-3dda-5c9091d606fa","parent":{"ref":"EID6ee50128-0175-1000-0b35-a29005fa162e"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50250-0175-1000-865d-6331ab216047","parent":{"ref":"EID6ee50128-0175-1000-0b35-a29005fa162e"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50250-0175-1000-afb7-530a180472ac","parent":{"ref":"EID6ee50128-0175-1000-0b35-a29005fa162e"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50250-0175-1000-0e4e-cd375f0dd68f","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee50128-0175-1000-0b35-a29005fa162e"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDb1a9af4d-4aa7-4888-a2e4-d2f8016004d5"},{"ref":"EIDeb292933-08a3-400c-8952-5bdd8cdb03e6"},{"ref":"EID1476dbc0-89b3-4e74-b601-e3261a2992f8"}]},"parent":{"ref":"EID6ee50049-0175-1000-4159-5fd5155668e3"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:08:23Z","duration":80,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:08:22Z","duration":519,"status":"PASSED_MANUAL"},{"id":"EID6ee50250-0175-1000-15e4-fba5e74d4bb1","testStepResults":{"TestStepResult":{"id":"EID6ee50250-0175-1000-293e-bdee50e0a46d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee502eb-0175-1000-a124-a3a4b39ce380","parent":{"ref":"EID6ee50250-0175-1000-293e-bdee50e0a46d"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee502eb-0175-1000-0b63-e758cf214460","parent":{"ref":"EID6ee50250-0175-1000-293e-bdee50e0a46d"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee502eb-0175-1000-dc9e-f5887b64f967","parent":{"ref":"EID6ee50250-0175-1000-293e-bdee50e0a46d"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee502eb-0175-1000-2c16-bd574a93d057","parent":{"ref":"EID6ee50250-0175-1000-293e-bdee50e0a46d"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8a42cffd-7dc9-4ae8-9f4a-49cdccc5e3c5"},{"ref":"EID72e392cd-96dc-46c0-b4aa-16b29d62138d"},{"ref":"EID82d458ca-cbc6-40ae-b48a-ba06e8ac0218"}]},"parent":{"ref":"EID6ee50250-0175-1000-15e4-fba5e74d4bb1"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:08:23Z","duration":36,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:08:23Z","duration":155,"status":"PASSED"},{"id":"EID6ee502eb-0175-1000-54bf-a4d44026f508","testStepResults":{"TestStepResult":{"id":"EID6ee502eb-0175-1000-8420-9103e8b38340","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee503a2-0175-1000-d239-92148b42d403","parent":{"ref":"EID6ee502eb-0175-1000-8420-9103e8b38340"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee503a2-0175-1000-3d56-7e5fc55b3fde","parent":{"ref":"EID6ee502eb-0175-1000-8420-9103e8b38340"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee503a2-0175-1000-db5a-ab2490dabef4","parent":{"ref":"EID6ee502eb-0175-1000-8420-9103e8b38340"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee503a2-0175-1000-ee43-102d916f30df","parent":{"ref":"EID6ee502eb-0175-1000-8420-9103e8b38340"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID09a585c5-f65d-40b9-aca3-99cd7b11e416"},{"ref":"EID27080af2-f0cc-44ba-afd7-289e42ada530"},{"ref":"EID44bf5be8-9e98-4c58-9988-ea30e7df1715"}]},"parent":{"ref":"EID6ee502eb-0175-1000-54bf-a4d44026f508"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:08:23Z","duration":78,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:08:23Z","duration":183,"status":"PASSED"},{"id":"EID6ee503a2-0175-1000-9287-0badfb26799f","testStepResults":{"TestStepResult":{"id":"EID6ee503a2-0175-1000-ab6b-be1dddf7d62d","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EIDbd59d13a-72ee-4d91-ba79-c936caf08799"},{"ref":"EIDae46c3df-13cc-455d-98aa-3a8f9387375d"},{"ref":"EID6bc1321e-e947-4c4d-88dc-6017e9e3162c"},{"ref":"EID50f18df1-cd33-47c6-8194-d796aeb5c395"},{"ref":"EID2d77fe2e-8350-4fb9-b41c-7df4541843ca"},{"ref":"EID3c9a83f3-ece9-4ea5-bfac-220f3c810e01"},{"ref":"EID4dc29784-baf2-41e8-a403-45fb115bd754"},{"ref":"EID89e5f910-bc65-484d-b196-2d02f81cdc0d"},{"ref":"EIDf4647dfb-bffe-44ea-8591-fe61e740e766"}]},"parent":{"ref":"EID6ee503a2-0175-1000-9287-0badfb26799f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:08:23Z","duration":611,"status":"SKIPPED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:08:23Z","duration":740,"status":"SKIPPED"},{"id":"EID6ee50686-0175-1000-2027-21ebd691226a","testStepResults":{"TestStepResult":{"id":"EID6ee50686-0175-1000-60ed-a92d79501384","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50756-0175-1000-88cc-dbb71daef50b","parent":{"ref":"EID6ee50686-0175-1000-60ed-a92d79501384"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:08:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee50756-0175-1000-ccff-3a4c040d1444","parent":{"ref":"EID6ee50686-0175-1000-60ed-a92d79501384"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:08:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee50756-0175-1000-4a10-1fc05ac00481","parent":{"ref":"EID6ee50686-0175-1000-60ed-a92d79501384"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:08:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee50756-0175-1000-bc9a-873e96601887","parent":{"ref":"EID6ee50686-0175-1000-60ed-a92d79501384"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:08:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2cdd0b68-057e-444b-89d2-bc0772ed682d"},{"ref":"EID5ae97339-59ea-4efc-8867-b6353ecc0bad"},{"ref":"EID35f51a87-741b-4205-94fb-23f09d99dd8b"}]},"parent":{"ref":"EID6ee50686-0175-1000-2027-21ebd691226a"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:08:24Z","duration":73,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:08:24Z","duration":209,"status":"PASSED"},{"id":"EID6ee50757-0175-1000-09e3-171a46502047","testStepResults":{"TestStepResult":{"id":"EID6ee50757-0175-1000-a16e-a1c7921f7f76","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50842-0175-1000-8123-0afc36d358c7","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50842-0175-1000-6974-3503c2a5a2d8","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50842-0175-1000-0b32-dac54f21d70c","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50842-0175-1000-7f64-1512b78957eb","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50842-0175-1000-a5b8-4e3f48acfbbc","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50842-0175-1000-be14-a4fdf31d2977","parent":{"ref":"EID6ee50757-0175-1000-a16e-a1c7921f7f76"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3c173314-b83e-454b-a803-ed349faf2816"},{"ref":"EID7ce9bfd2-958c-44fe-86c2-77222fd6a15f"},{"ref":"EID1a87dca8-1700-4307-9c17-33a91f82a8e9"}]},"parent":{"ref":"EID6ee50757-0175-1000-09e3-171a46502047"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:08:24Z","duration":118,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:08:24Z","duration":244,"status":"PASSED"},{"id":"EID6ee5084b-0175-1000-ed65-c8275572f944","testStepResults":{"TestStepResult":{"id":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee509a2-0175-1000-cb4e-1cec34555d54","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-9eec-ca17bfd825f9","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-19d8-91b733ca3d8e","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-84b3-cc57d0816e61","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-d547-47ab7a26fb79","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-ecd6-c01c1e9b530a","parent":{"ref":"EID6ee5084b-0175-1000-c1ad-36d57edf9f1f"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID977ebd02-06ec-4454-8a89-5e7b9ee16cc0"},{"ref":"EID87af0410-82d3-45f7-91ea-731d5bd23e71"},{"ref":"EID13c4688d-5974-4047-aa69-0c951766d07d"}]},"parent":{"ref":"EID6ee5084b-0175-1000-ed65-c8275572f944"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:08:25Z","duration":109,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:08:25Z","duration":343,"status":"PASSED"},{"id":"EID6ee509a2-0175-1000-4222-976cab3ed3bb","testStepResults":{"TestStepResult":{"id":"EID6ee509a2-0175-1000-b139-ee07ce4b9d55","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50a4c-0175-1000-6800-20e587feac87","parent":{"ref":"EID6ee509a2-0175-1000-b139-ee07ce4b9d55"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50a4c-0175-1000-e794-843b42963ae5","parent":{"ref":"EID6ee509a2-0175-1000-b139-ee07ce4b9d55"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50a4c-0175-1000-e944-9346c152d754","parent":{"ref":"EID6ee509a2-0175-1000-b139-ee07ce4b9d55"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee50a4c-0175-1000-c33b-c7f8caaab873","parent":{"ref":"EID6ee509a2-0175-1000-b139-ee07ce4b9d55"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:08:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67972189-5964-4d09-8191-d1752c7e1a31"},{"ref":"EID1b946160-7530-40af-83c7-dabb2920b743"},{"ref":"EID69d1566e-0b9e-4e79-96a8-7ef22ebe3e86"}]},"parent":{"ref":"EID6ee509a2-0175-1000-4222-976cab3ed3bb"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:08:25Z","duration":70,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:08:25Z","duration":179,"status":"PASSED"},{"id":"EID6ee50a55-0175-1000-7ceb-714d333ab9cf","testStepResults":{"TestStepResult":[{"id":"EID6ee50a55-0175-1000-bf3d-3d898d0e15de","attachments":{"attachment":[{"ref":"EID35be7f29-96ab-49b5-9596-b9d264a5d81d"},{"ref":"EIDa8e70adf-16da-4b81-aea9-f59a5619954b"},{"ref":"EID40ba1c55-82d4-4d2a-850b-bcbfdf145afd"},{"ref":"EIDcbd7da5f-62f5-4b33-bbe8-5c428badb854"}]},"parent":{"ref":"EID6ee50a55-0175-1000-7ceb-714d333ab9cf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:08:25Z","duration":522,"status":"PASSED"},{"id":"EID6ee50cad-0175-1000-7e50-55c592b99211","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50da7-0175-1000-f618-ea616a854785","parent":{"ref":"EID6ee50cad-0175-1000-7e50-55c592b99211"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50da7-0175-1000-4ca9-7c533892ca14","parent":{"ref":"EID6ee50cad-0175-1000-7e50-55c592b99211"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50da7-0175-1000-2ddb-157f5c15f8d9","parent":{"ref":"EID6ee50cad-0175-1000-7e50-55c592b99211"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50da7-0175-1000-b89b-926dbeb38e63","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee50cad-0175-1000-7e50-55c592b99211"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID03cbf5c1-90af-41cb-abbc-b9286fce0eb6"},{"ref":"EID34cab4b1-e573-4ee4-bb54-9649d004b1c5"},{"ref":"EID0bf3c384-c140-4efb-a1f9-81f1e0c416fd"}]},"parent":{"ref":"EID6ee50a55-0175-1000-7ceb-714d333ab9cf"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:08:26Z","duration":82,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:08:25Z","duration":850,"status":"FAILED"},{"id":"EID6ee50da7-0175-1000-c167-2a1936b8642d","testStepResults":{"TestStepResult":{"id":"EID6ee50da7-0175-1000-ee4b-14ae36129c10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50ef5-0175-1000-18bb-a0784dae53cf","parent":{"ref":"EID6ee50da7-0175-1000-ee4b-14ae36129c10"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50ef5-0175-1000-15cf-bc4899ea79eb","parent":{"ref":"EID6ee50da7-0175-1000-ee4b-14ae36129c10"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50ef5-0175-1000-dc11-111fff20a05c","parent":{"ref":"EID6ee50da7-0175-1000-ee4b-14ae36129c10"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50ef5-0175-1000-ff32-c0db12c190f0","parent":{"ref":"EID6ee50da7-0175-1000-ee4b-14ae36129c10"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa1104bb7-f628-4eae-b571-a642fdc772a6"},{"ref":"EID21b54437-4692-4b50-a8db-1705a28c22cf"},{"ref":"EID2e740fea-c15e-4a41-8e3f-59021a61fd50"}]},"parent":{"ref":"EID6ee50da7-0175-1000-c167-2a1936b8642d"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:08:26Z","duration":30,"status":"PASSED"}},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:08:26Z","duration":334,"status":"PASSED"},{"id":"EID6ee50ef5-0175-1000-e734-d6343ee5c050","testStepResults":{"TestStepResult":[{"id":"EID6ee50ef5-0175-1000-5268-f2648af6d801","parent":{"ref":"EID6ee50ef5-0175-1000-e734-d6343ee5c050"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50f16-0175-1000-4da1-df17f6693cdc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50fdc-0175-1000-e345-ef96eec106d4","parent":{"ref":"EID6ee50f16-0175-1000-4da1-df17f6693cdc"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50fdc-0175-1000-72e0-9a56e7d51ffc","parent":{"ref":"EID6ee50f16-0175-1000-4da1-df17f6693cdc"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50fdc-0175-1000-7575-fc514df9842e","parent":{"ref":"EID6ee50f16-0175-1000-4da1-df17f6693cdc"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50fdc-0175-1000-6fe1-19c75b1bafc8","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee50f16-0175-1000-4da1-df17f6693cdc"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfbca3e7d-f60a-4728-a24c-999720585537"},{"ref":"EID2b3effc3-b0ce-4289-a4bf-d7c192aca461"},{"ref":"EID292d41a3-00b2-41ff-96bc-ef51a8d2d39b"}]},"parent":{"ref":"EID6ee50ef5-0175-1000-e734-d6343ee5c050"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:08:26Z","duration":85,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f3d7-0175-1000-469d-370e5edbfa54"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:08:26Z","duration":231,"status":"FAILED"}]},"parent":{"ref":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:08:19Z","duration":7173,"status":"FAILED"},{"id":"EID6ee50fdc-0175-1000-b160-3c6685eb8351","testCaseResults":{"TestCaseResult":[{"id":"EID6ee50fdd-0175-1000-3390-d4eb76910b09","testStepResults":{"TestStepResult":[{"id":"EID6ee50fdd-0175-1000-90ab-56a45ff304b2","parent":{"ref":"EID6ee50fdd-0175-1000-3390-d4eb76910b09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:08:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee50fdd-0175-1000-251f-ad97d7a97b0f","parent":{"ref":"EID6ee50fdd-0175-1000-3390-d4eb76910b09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:08:26Z","duration":30,"status":"PASSED"},{"id":"EID6ee50fdd-0175-1000-ac3a-c411663eadee","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51b8f-0175-1000-8f7e-1ad9f46a8ec0","parent":{"ref":"EID6ee50fdd-0175-1000-ac3a-c411663eadee"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:08:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee51b8f-0175-1000-a61b-4f767dc2acff","parent":{"ref":"EID6ee50fdd-0175-1000-ac3a-c411663eadee"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:08:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee51b8f-0175-1000-f1d8-9e16806a52f4","parent":{"ref":"EID6ee50fdd-0175-1000-ac3a-c411663eadee"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:08:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5eafd656-aca1-47af-955c-cae65e1ad4ba"},{"ref":"EIDfbd29e30-3390-48d2-8e3e-7c811c841785"},{"ref":"EID7c8fd438-3451-47ec-a4ba-b18ae6f4ee2b"}]},"parent":{"ref":"EID6ee50fdd-0175-1000-3390-d4eb76910b09"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:08:26Z","duration":110,"status":"PASSED"},{"id":"EID6ee51b9a-0175-1000-3c39-89217a9a1aaa","attachments":{"attachment":{"ref":"EID6e3ca10a-c77a-4261-aefa-30245cdc5064"}},"parent":{"ref":"EID6ee50fdd-0175-1000-3390-d4eb76910b09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:08:29Z","duration":1,"status":"PASSED"},{"id":"EID6ee51ba8-0175-1000-0672-e67492193c00","parent":{"ref":"EID6ee50fdd-0175-1000-3390-d4eb76910b09"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:08:29Z","duration":54,"status":"PASSED"}]},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:08:26Z","duration":3073,"status":"PASSED"},{"id":"EID6ee51bde-0175-1000-3d25-32e4f5f7903b","testStepResults":{"TestStepResult":[{"id":"EID6ee51bde-0175-1000-1a87-46797bc89490","parent":{"ref":"EID6ee51bde-0175-1000-3d25-32e4f5f7903b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:08:30Z","duration":45,"status":"PASSED"},{"id":"EID6ee51bde-0175-1000-bad0-e865319ce474","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51c7a-0175-1000-44f5-5ff030a885ba","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51bde-0175-1000-bad0-e865319ce474"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:08:30Z","duration":10,"status":"FAILED"},{"id":"EID6ee51c84-0175-1000-106d-879187dd43c2","parent":{"ref":"EID6ee51bde-0175-1000-bad0-e865319ce474"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51c84-0175-1000-60d5-2a10ee160c4f","parent":{"ref":"EID6ee51bde-0175-1000-bad0-e865319ce474"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51c84-0175-1000-0475-1d70f7ac17b2","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee51bde-0175-1000-bad0-e865319ce474"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:08:30Z","duration":1,"status":"FAILED"},{"id":"EID6ee51c85-0175-1000-0ab1-b5e29e426f73","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee51bde-0175-1000-bad0-e865319ce474"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1e132c8e-1499-4a2b-8661-ffea6271922c"},{"ref":"EID04d981b6-32b7-43b7-a0c8-301684619577"},{"ref":"EIDe38a3057-6246-40da-b612-d6d318003e4b"}]},"parent":{"ref":"EID6ee51bde-0175-1000-3d25-32e4f5f7903b"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:08:30Z","duration":33,"status":"FAILED"}]},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:08:30Z","duration":167,"status":"FAILED"},{"id":"EID6ee51c85-0175-1000-e6f1-5b20ad6e71a2","testStepResults":{"TestStepResult":{"id":"EID6ee51c8d-0175-1000-7d81-54dbb7c30c6f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51d1b-0175-1000-b245-d71bd26becbb","parent":{"ref":"EID6ee51c8d-0175-1000-7d81-54dbb7c30c6f"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51d1b-0175-1000-35a7-05ca07318bc5","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51c8d-0175-1000-7d81-54dbb7c30c6f"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:08:30Z","duration":71,"status":"FAILED"},{"id":"EID6ee51d62-0175-1000-1a86-9ebd79173b1e","parent":{"ref":"EID6ee51c8d-0175-1000-7d81-54dbb7c30c6f"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb2c9f00a-c682-4ecf-a52d-760b2dca0652"},{"ref":"EID33e26957-73c8-434b-a179-0bcecd8a7246"},{"ref":"EIDeb36ab78-d9e6-4c35-89a6-2bbcb9f4724c"}]},"parent":{"ref":"EID6ee51c85-0175-1000-e6f1-5b20ad6e71a2"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:08:30Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:08:30Z","duration":221,"status":"FAILED"},{"id":"EID6ee51d62-0175-1000-fea3-4bf5f1f1d384","testStepResults":{"TestStepResult":{"id":"EID6ee51d62-0175-1000-10e7-dc00ab35d25d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51dd8-0175-1000-31d8-d4860cb44ade","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee51d62-0175-1000-10e7-dc00ab35d25d"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"FAILED"},{"id":"EID6ee51dd8-0175-1000-865b-9390a3716b2c","parent":{"ref":"EID6ee51d62-0175-1000-10e7-dc00ab35d25d"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51dd8-0175-1000-c42b-8e22daa042f7","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51d62-0175-1000-10e7-dc00ab35d25d"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:08:30Z","duration":10,"status":"FAILED"},{"id":"EID6ee51de2-0175-1000-663e-beff3d554857","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee51d62-0175-1000-10e7-dc00ab35d25d"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:08:30Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3f5f3c37-4e2d-4f20-aa88-77f3a144956f"},{"ref":"EIDf292bfab-8f46-462c-b5ff-716314c47836"},{"ref":"EIDe33d5c21-d2ac-4983-8b11-3a66d6d1535d"}]},"parent":{"ref":"EID6ee51d62-0175-1000-fea3-4bf5f1f1d384"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:08:30Z","duration":50,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:08:30Z","duration":129,"status":"FAILED"},{"id":"EID6ee51de3-0175-1000-8387-16dacc7b98ff","testStepResults":{"TestStepResult":{"id":"EID6ee51de3-0175-1000-9847-4750006478f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51e3a-0175-1000-eec3-a4470ee1e582","parent":{"ref":"EID6ee51de3-0175-1000-9847-4750006478f7"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51e3a-0175-1000-dbf8-a3b9ac1589e0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51de3-0175-1000-9847-4750006478f7"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:08:30Z","duration":11,"status":"FAILED"},{"id":"EID6ee51e45-0175-1000-202e-c9efe4eeccfe","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee51de3-0175-1000-9847-4750006478f7"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDec217907-6b15-462d-9ee5-f9ada32e9186"},{"ref":"EIDdab96537-0f85-480e-bd9e-71a622699ccc"},{"ref":"EID1e6e5666-45ff-4969-8dcd-663f31f02c6e"}]},"parent":{"ref":"EID6ee51de3-0175-1000-8387-16dacc7b98ff"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:08:30Z","duration":25,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:08:30Z","duration":98,"status":"FAILED"},{"id":"EID6ee51e45-0175-1000-07fd-20ae56535a5d","testStepResults":{"TestStepResult":{"id":"EID6ee51e45-0175-1000-b76f-c1ed86e445b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51ea2-0175-1000-711e-13177bea081f","parent":{"ref":"EID6ee51e45-0175-1000-b76f-c1ed86e445b5"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51ea2-0175-1000-d0d5-1bd22b8ee6c4","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51e45-0175-1000-b76f-c1ed86e445b5"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:08:30Z","duration":16,"status":"FAILED"},{"id":"EID6ee51eb2-0175-1000-4775-7be47d422671","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee51e45-0175-1000-b76f-c1ed86e445b5"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID6253e902-0290-4507-87f2-70b8cac5b4c6"},{"ref":"EID7690cb8e-8760-4669-955a-8b9e9d95da4a"},{"ref":"EIDb40e3f90-98d1-4597-988b-14dea2cc9053"}]},"parent":{"ref":"EID6ee51e45-0175-1000-07fd-20ae56535a5d"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:08:30Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:08:30Z","duration":109,"status":"FAILED"},{"id":"EID6ee51eb2-0175-1000-5093-f5c4c4b79475","testStepResults":{"TestStepResult":{"id":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee51f71-0175-1000-e65f-23f05c131dd0","parent":{"ref":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51f71-0175-1000-181d-572fbf1d87fa","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:08:30Z","duration":16,"status":"FAILED"},{"id":"EID6ee51f81-0175-1000-a33e-ea1f0c159f77","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"FAILED"},{"id":"EID6ee51f81-0175-1000-4add-1aad9ea51c25","parent":{"ref":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee51f81-0175-1000-1ef8-2b9f8018bfb3","parent":{"ref":"EID6ee51eb2-0175-1000-a917-dfc4093bb4b0"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:08:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5d31377b-5350-4bec-a8c9-d87d0a288e85"},{"ref":"EID6082d557-b219-44d4-aa47-59289e94c542"},{"ref":"EIDcde549ab-07cf-4b10-8ef5-c56fa117fc1b"}]},"parent":{"ref":"EID6ee51eb2-0175-1000-5093-f5c4c4b79475"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:08:30Z","duration":55,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:08:30Z","duration":207,"status":"FAILED"},{"id":"EID6ee51f81-0175-1000-d09f-0f51ad8dfff3","testStepResults":{"TestStepResult":{"id":"EID6ee51f81-0175-1000-75dc-357146a117c9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52000-0175-1000-673b-1787fba75083","parent":{"ref":"EID6ee51f81-0175-1000-75dc-357146a117c9"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52000-0175-1000-b9c8-869930805e92","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee51f81-0175-1000-75dc-357146a117c9"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:08:31Z","duration":11,"status":"FAILED"},{"id":"EID6ee5200b-0175-1000-c756-2c110500f809","parent":{"ref":"EID6ee51f81-0175-1000-75dc-357146a117c9"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc3a19c5b-75d1-4c48-a09e-f393c37701c9"},{"ref":"EID1ef30eda-53cf-42e7-a1c8-98e3eb8e07de"},{"ref":"EIDaa42eb88-311a-40dd-b79c-40cd2f6292ae"}]},"parent":{"ref":"EID6ee51f81-0175-1000-d09f-0f51ad8dfff3"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:08:30Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:08:30Z","duration":138,"status":"FAILED"},{"id":"EID6ee5200c-0175-1000-4bb0-3ad66d57284a","testStepResults":{"TestStepResult":{"id":"EID6ee5200c-0175-1000-0969-814b7421a3c1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52084-0175-1000-5c7e-fb771ad24fa7","parent":{"ref":"EID6ee5200c-0175-1000-0969-814b7421a3c1"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52084-0175-1000-05c0-3cb3bfd1a520","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee5200c-0175-1000-0969-814b7421a3c1"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:08:31Z","duration":68,"status":"FAILED"},{"id":"EID6ee520c8-0175-1000-16bf-9a8aed2d5c2d","parent":{"ref":"EID6ee5200c-0175-1000-0969-814b7421a3c1"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1c0c0387-e96d-4839-b7e5-5a246966e916"},{"ref":"EID0ca237fb-47ec-4590-9d8d-53367b10e261"},{"ref":"EID89d73b2c-6cef-4dfa-89ea-9c51db47c037"}]},"parent":{"ref":"EID6ee5200c-0175-1000-4bb0-3ad66d57284a"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:08:31Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:08:31Z","duration":188,"status":"FAILED"},{"id":"EID6ee520c9-0175-1000-695c-7eafd016324c","testStepResults":{"TestStepResult":{"id":"EID6ee520c9-0175-1000-9c6e-bc3b664479c0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52126-0175-1000-e17c-c48a2fbbb9ce","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee520c9-0175-1000-9c6e-bc3b664479c0"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:08:31Z","duration":11,"status":"FAILED"},{"id":"EID6ee52131-0175-1000-a804-32738215d57a","parent":{"ref":"EID6ee520c9-0175-1000-9c6e-bc3b664479c0"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52131-0175-1000-3386-e6b7ba853d86","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee520c9-0175-1000-9c6e-bc3b664479c0"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"FAILED"},{"id":"EID6ee52131-0175-1000-b343-eec7ad3b73bf","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee520c9-0175-1000-9c6e-bc3b664479c0"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDdcef7c4a-9420-4b7f-af1d-3a9104314c3c"},{"ref":"EIDf8f94c19-e4b7-4cd5-a872-5e78c32482a4"},{"ref":"EIDbbe7ee4e-cae9-42b0-844f-6e6a65487ab5"}]},"parent":{"ref":"EID6ee520c9-0175-1000-695c-7eafd016324c"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:08:31Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:08:31Z","duration":105,"status":"FAILED"},{"id":"EID6ee52132-0175-1000-57ae-3761cf01e8df","testStepResults":{"TestStepResult":{"id":"EID6ee52132-0175-1000-a411-ae9670e3d38d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52199-0175-1000-7dfe-8524dd695642","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee52132-0175-1000-a411-ae9670e3d38d"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:08:31Z","duration":13,"status":"FAILED"},{"id":"EID6ee521a6-0175-1000-2590-c5674160f318","parent":{"ref":"EID6ee52132-0175-1000-a411-ae9670e3d38d"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee521a6-0175-1000-0fce-06137df237cf","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee52132-0175-1000-a411-ae9670e3d38d"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"FAILED"},{"id":"EID6ee521a6-0175-1000-a48b-a99addca8995","parent":{"ref":"EID6ee52132-0175-1000-a411-ae9670e3d38d"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID197f3b4a-2302-4809-8e00-ffe9307d93b0"},{"ref":"EID3fb8efdd-1829-4851-8f49-00af1f40799b"},{"ref":"EID603453ae-aed6-47e1-b562-7ed6707875ce"}]},"parent":{"ref":"EID6ee52132-0175-1000-57ae-3761cf01e8df"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:08:31Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:08:31Z","duration":116,"status":"FAILED"},{"id":"EID6ee521a6-0175-1000-4f34-6efdc01e574a","testStepResults":{"TestStepResult":[{"id":"EID6ee521a6-0175-1000-e7b5-274459a98a56","parent":{"ref":"EID6ee521a6-0175-1000-4f34-6efdc01e574a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee521a7-0175-1000-bb45-baf60cb22153","parent":{"ref":"EID6ee521a6-0175-1000-4f34-6efdc01e574a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:08:31Z","duration":79,"status":"PASSED"},{"id":"EID6ee521a7-0175-1000-190f-5d513a704516","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52267-0175-1000-2eb3-670f1cbd2fda","parent":{"ref":"EID6ee521a7-0175-1000-190f-5d513a704516"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52267-0175-1000-dbe2-e8ed9ae3b796","parent":{"ref":"EID6ee521a7-0175-1000-190f-5d513a704516"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52267-0175-1000-1f5f-2667447c87d0","parent":{"ref":"EID6ee521a7-0175-1000-190f-5d513a704516"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee52267-0175-1000-6c72-e32b6bcfe468","parent":{"ref":"EID6ee521a7-0175-1000-190f-5d513a704516"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:08:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID71929f44-4f2b-4eaf-bcce-e18ed32ea996"},{"ref":"EIDafa8be8b-21c7-41ca-baec-effbf0000d57"},{"ref":"EID427a4a20-3fb6-4cbf-92ea-c2f7a788e17e"}]},"parent":{"ref":"EID6ee521a6-0175-1000-4f34-6efdc01e574a"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:08:31Z","duration":76,"status":"PASSED"},{"id":"EID6ee524e4-0175-1000-1496-5265a8367e22","attachments":{"attachment":{"ref":"EID4b4625ec-97ee-4ab5-b9e6-6ec07fc99b82"}},"parent":{"ref":"EID6ee521a6-0175-1000-4f34-6efdc01e574a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:08:32Z","duration":6,"status":"PASSED"},{"id":"EID6ee524f8-0175-1000-5a40-94db24aa430a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52580-0175-1000-775d-9b471ebb77e2","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee52580-0175-1000-ed7c-04be55629d35","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:08:32Z","duration":10,"status":"FAILED"},{"id":"EID6ee5258b-0175-1000-30a8-bcd73835f9c7","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee5258b-0175-1000-d26c-c3e1edd3ed77","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee5258b-0175-1000-04d2-3b7d7ba7bad7","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee5258b-0175-1000-fc70-9c44ec4c12ff","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee5258b-0175-1000-6e63-6d78c918ae62","parent":{"ref":"EID6ee524f8-0175-1000-5a40-94db24aa430a"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:08:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID96b2bef8-67b1-47fb-8d4f-c9ae8d4bc432"},{"ref":"EID7c7aa7a7-a7c2-4aaf-b91e-712c73b9f4bc"},{"ref":"EID264b6649-41d3-42c3-a66d-9626511660aa"}]},"parent":{"ref":"EID6ee521a6-0175-1000-4f34-6efdc01e574a"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:08:32Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:08:31Z","duration":1010,"status":"FAILED"},{"id":"EID6ee52598-0175-1000-7be4-05bec4ba6eb7","testStepResults":{"TestStepResult":[{"id":"EID6ee52598-0175-1000-947d-547075583932","parent":{"ref":"EID6ee52598-0175-1000-7be4-05bec4ba6eb7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:08:32Z","duration":1,"status":"PASSED"},{"id":"EID6ee525a3-0175-1000-0922-851dd282bd98","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52800-0175-1000-4f37-0b27258005ff","parent":{"ref":"EID6ee525a3-0175-1000-0922-851dd282bd98"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52800-0175-1000-790b-5991b8f2c438","parent":{"ref":"EID6ee525a3-0175-1000-0922-851dd282bd98"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52800-0175-1000-764e-cb8f5f6b2d28","parent":{"ref":"EID6ee525a3-0175-1000-0922-851dd282bd98"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52800-0175-1000-ff59-1c4abf2e9fa7","parent":{"ref":"EID6ee525a3-0175-1000-0922-851dd282bd98"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6b43f235-678a-469f-9dbb-9ff78147ddca"},{"ref":"EID4b99ba86-0070-4996-af33-8a234635258b"},{"ref":"EIDbc272ce1-a6ae-4a4b-96d7-75277c5ce497"}]},"parent":{"ref":"EID6ee52598-0175-1000-7be4-05bec4ba6eb7"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:08:32Z","duration":463,"status":"PASSED"},{"id":"EID6ee52800-0175-1000-b0d6-d100d84ba3a0","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee52811-0175-1000-0a6a-5f3fbdb6436e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5290c-0175-1000-a7ee-82083418e648","parent":{"ref":"EID6ee52811-0175-1000-0a6a-5f3fbdb6436e"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee5290c-0175-1000-bebf-ce94a0392806","parent":{"ref":"EID6ee52811-0175-1000-0a6a-5f3fbdb6436e"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee5290c-0175-1000-0d7e-b612f4cdc43c","parent":{"ref":"EID6ee52811-0175-1000-0a6a-5f3fbdb6436e"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc3d3b47e-54e5-48d4-8e6a-0432648f1e56"},{"ref":"EID65217f7f-5760-4f59-be5a-3192eeb2ca55"},{"ref":"EIDeaf59048-705d-4eeb-a0e6-25457b5d3375"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:33Z","duration":147,"status":"PASSED"},{"id":"EID6ee52917-0175-1000-a7d2-d10689e459e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52974-0175-1000-873b-136137c576a8","parent":{"ref":"EID6ee52917-0175-1000-a7d2-d10689e459e2"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52974-0175-1000-24c4-bab060b6227b","parent":{"ref":"EID6ee52917-0175-1000-a7d2-d10689e459e2"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52974-0175-1000-2456-dc3f729ca5ee","parent":{"ref":"EID6ee52917-0175-1000-a7d2-d10689e459e2"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48e7a0ef-f2b2-4046-b96e-9b6c0ee7e36a"},{"ref":"EIDc78bd75c-0121-4df9-8f58-b92bf3541d4d"},{"ref":"EID74718bdc-6027-4678-ac7d-327bfe900a9a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:33Z","duration":40,"status":"PASSED"},{"id":"EID6ee5297e-0175-1000-463b-5f8330c65696","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee529d5-0175-1000-4c39-24253402ba97","parent":{"ref":"EID6ee5297e-0175-1000-463b-5f8330c65696"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee529d5-0175-1000-8867-b30e6682762a","parent":{"ref":"EID6ee5297e-0175-1000-463b-5f8330c65696"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee529d5-0175-1000-8bb0-c10ae581b9d6","parent":{"ref":"EID6ee5297e-0175-1000-463b-5f8330c65696"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8437711d-b657-4055-856e-bc23106e8d85"},{"ref":"EID159d47f7-1338-4cde-8b95-046f0b114d7c"},{"ref":"EID9f27b7d5-43b9-4b55-be6f-2cebeec9d67d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:33Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee52598-0175-1000-7be4-05bec4ba6eb7"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:08:33Z","duration":470,"status":"PASSED"},{"id":"EID6ee529d6-0175-1000-c6e1-36600d50cf7c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52a34-0175-1000-e757-9ac89eb32526","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee529d6-0175-1000-c6e1-36600d50cf7c"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:08:33Z","duration":11,"status":"FAILED"},{"id":"EID6ee52a3f-0175-1000-d9ba-50f1a6b84d2a","parent":{"ref":"EID6ee529d6-0175-1000-c6e1-36600d50cf7c"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52a3f-0175-1000-5975-52e7a1040db8","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee529d6-0175-1000-c6e1-36600d50cf7c"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"FAILED"},{"id":"EID6ee52a3f-0175-1000-d197-239112504497","parent":{"ref":"EID6ee529d6-0175-1000-c6e1-36600d50cf7c"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID826e6c21-d4d0-44a1-9cf1-6ebf817eda63"},{"ref":"EIDdbd142ff-af31-4478-bed8-61f6af5c857e"},{"ref":"EIDadd8cf66-967b-4b81-bcfc-97dd9aec95d4"}]},"parent":{"ref":"EID6ee52598-0175-1000-7be4-05bec4ba6eb7"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:08:33Z","duration":28,"status":"FAILED"}]},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:08:32Z","duration":1191,"status":"FAILED"},{"id":"EID6ee52a3f-0175-1000-34be-5d14c791d649","testStepResults":{"TestStepResult":{"id":"EID6ee52a3f-0175-1000-3595-44dcaa4241ef","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52a9d-0175-1000-b025-5204da0028b1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee52a3f-0175-1000-3595-44dcaa4241ef"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:08:33Z","duration":12,"status":"FAILED"},{"id":"EID6ee52aa9-0175-1000-8c95-e170723ce8b4","parent":{"ref":"EID6ee52a3f-0175-1000-3595-44dcaa4241ef"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee52aa9-0175-1000-ef08-eaebdceabee4","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee52a3f-0175-1000-3595-44dcaa4241ef"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"FAILED"},{"id":"EID6ee52aa9-0175-1000-ec30-7cfb53868819","parent":{"ref":"EID6ee52a3f-0175-1000-3595-44dcaa4241ef"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7401894e-bc24-4701-b705-922ac5017441"},{"ref":"EID9c588497-ec14-4e35-8ede-7995a4eee281"},{"ref":"EIDe69aedc2-6875-494f-933e-b958679ca17c"}]},"parent":{"ref":"EID6ee52a3f-0175-1000-34be-5d14c791d649"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:08:33Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee50fdc-0175-1000-b160-3c6685eb8351"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:08:33Z","duration":118,"status":"FAILED"}]},"parent":{"ref":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:08:26Z","duration":6873,"status":"FAILED"},{"id":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166","testCaseResults":{"TestCaseResult":[{"id":"EID6ee52ab5-0175-1000-7aae-21ae89b42090","testStepResults":{"TestStepResult":{"id":"EID6ee52ab6-0175-1000-5d4d-06ca1cd798fe","parent":{"ref":"EID6ee52ab5-0175-1000-7aae-21ae89b42090"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:08:33Z","duration":1,"status":"SKIPPED"},{"id":"EID6ee52abe-0175-1000-e87d-a1dc8752aea1","testStepResults":{"TestStepResult":{"id":"EID6ee52abe-0175-1000-9f77-19cf08b367a9","parent":{"ref":"EID6ee52abe-0175-1000-e87d-a1dc8752aea1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:08:33Z","duration":1,"status":"SKIPPED"},{"id":"EID6ee52abf-0175-1000-2977-cfe06059cefd","testStepResults":{"TestStepResult":{"id":"EID6ee52abf-0175-1000-001a-19af83889cd1","parent":{"ref":"EID6ee52abf-0175-1000-2977-cfe06059cefd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee52abf-0175-1000-aa54-d039e61c0fd3","testStepResults":{"TestStepResult":{"id":"EID6ee52abf-0175-1000-aea7-9f9f0630d8be","parent":{"ref":"EID6ee52abf-0175-1000-aa54-d039e61c0fd3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee52abf-0175-1000-4121-e9fbb6da8361","testStepResults":{"TestStepResult":{"id":"EID6ee52abf-0175-1000-5c2d-ffa50ffa934c","parent":{"ref":"EID6ee52abf-0175-1000-4121-e9fbb6da8361"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee52abf-0175-1000-2a99-796b076667cd","testStepResults":{"TestStepResult":{"id":"EID6ee52abf-0175-1000-e165-35e82a0539de","parent":{"ref":"EID6ee52abf-0175-1000-2a99-796b076667cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":608,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:08:33Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee52abf-0175-1000-7034-e8e06894f834","testStepResults":{"TestStepResult":{"id":"EID6ee52aca-0175-1000-7546-e42fe16cb892","parent":{"ref":"EID6ee52abf-0175-1000-7034-e8e06894f834"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:08:33Z","duration":609,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52ab5-0175-1000-dbd0-a1421ecf8166"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:08:33Z","duration":12,"status":"SKIPPED"}]},"parent":{"ref":"EID8a94d51a-deb2-4732-8f5a-45330d3ce573"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:08:33Z","duration":22,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID89d73b2c-6cef-4dfa-89ea-9c51db47c037","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDfbd29e30-3390-48d2-8e3e-7c811c841785","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDfbd29e30-3390-48d2-8e3e-7c811c841785"}},{"type":"Error","id":"EIDfbccdec3-139b-478b-b2cf-582edc01f04c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDfbccdec3-139b-478b-b2cf-582edc01f04c"}},{"type":"Message","id":"EID89e5f910-bc65-484d-b196-2d02f81cdc0d","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID89e5f910-bc65-484d-b196-2d02f81cdc0d"}},{"type":"GetParameter","id":"EID1a87dca8-1700-4307-9c17-33a91f82a8e9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID21b54437-4692-4b50-a8db-1705a28c22cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID21b54437-4692-4b50-a8db-1705a28c22cf"}},{"type":"ServiceEndpoint","id":"EIDb1a9af4d-4aa7-4888-a2e4-d2f8016004d5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID5ae97339-59ea-4efc-8867-b6353ecc0bad","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID5ae97339-59ea-4efc-8867-b6353ecc0bad"}},{"type":"ServiceResponse","id":"EID6082d557-b219-44d4-aa47-59289e94c542","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID6082d557-b219-44d4-aa47-59289e94c542"}},{"type":"ServiceResponse","id":"EID7c7aa7a7-a7c2-4aaf-b91e-712c73b9f4bc","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID7c7aa7a7-a7c2-4aaf-b91e-712c73b9f4bc"}},{"type":"GetParameter","id":"EID7c8fd438-3451-47ec-a4ba-b18ae6f4ee2b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDa1f986bc-ce54-4e0c-9372-99f09f6e190b","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDa1f986bc-ce54-4e0c-9372-99f09f6e190b"}},{"type":"ServiceEndpoint","id":"EID09a585c5-f65d-40b9-aca3-99cd7b11e416","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf8aead8f-bc6d-46fd-a48d-44fb42ac1f45","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID44bf5be8-9e98-4c58-9988-ea30e7df1715","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDcde549ab-07cf-4b10-8ef5-c56fa117fc1b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDae46c3df-13cc-455d-98aa-3a8f9387375d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDae46c3df-13cc-455d-98aa-3a8f9387375d"}},{"type":"ServiceEndpoint","id":"EIDfd6119c3-16a7-4766-94e8-641b23305d8b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDcbd7da5f-62f5-4b33-bbe8-5c428badb854","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDcbd7da5f-62f5-4b33-bbe8-5c428badb854"}},{"type":"ServiceResponse","id":"EID72e392cd-96dc-46c0-b4aa-16b29d62138d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID72e392cd-96dc-46c0-b4aa-16b29d62138d"}},{"type":"ServiceEndpoint","id":"EID977ebd02-06ec-4454-8a89-5e7b9ee16cc0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID6e3ca10a-c77a-4261-aefa-30245cdc5064","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID6e3ca10a-c77a-4261-aefa-30245cdc5064"}},{"type":"GetParameter","id":"EIDaa42eb88-311a-40dd-b79c-40cd2f6292ae","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDef5ab09a-d1a2-4f92-847c-47c5330e296b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDf1b84b2d-d6a9-4e0b-91ad-0e96b899aa80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EID94e67ca9-3a6e-45c2-9dd9-84faa6f365ba","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID94e67ca9-3a6e-45c2-9dd9-84faa6f365ba"}},{"type":"Error","id":"EID8fe95f56-3471-4d2e-a728-1ad7b58a8d98","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID8fe95f56-3471-4d2e-a728-1ad7b58a8d98"}},{"type":"ServiceResponse","id":"EIDafa8be8b-21c7-41ca-baec-effbf0000d57","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDafa8be8b-21c7-41ca-baec-effbf0000d57"}},{"type":"Message","id":"EID2d77fe2e-8350-4fb9-b41c-7df4541843ca","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID2d77fe2e-8350-4fb9-b41c-7df4541843ca"}},{"type":"GetParameter","id":"EID2e740fea-c15e-4a41-8e3f-59021a61fd50","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe69aedc2-6875-494f-933e-b958679ca17c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID736f7a83-2cc0-41e0-abdb-67ca761e15cd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID8c488b09-2104-4eee-b231-52c753347733","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID65217f7f-5760-4f59-be5a-3192eeb2ca55","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID65217f7f-5760-4f59-be5a-3192eeb2ca55"}},{"type":"Message","id":"EIDcdf194d9-fb84-4073-8724-287dd9124d46","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDcdf194d9-fb84-4073-8724-287dd9124d46"}},{"type":"ServiceResponse","id":"EIDe3f17cf9-a127-4c88-8a05-417ac6e43776","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDe3f17cf9-a127-4c88-8a05-417ac6e43776"}},{"type":"GetParameter","id":"EID63c18c7f-d16c-4624-a567-02bae9db7a6a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2b3effc3-b0ce-4289-a4bf-d7c192aca461","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID2b3effc3-b0ce-4289-a4bf-d7c192aca461"}},{"type":"GetParameter","id":"EIDe33d5c21-d2ac-4983-8b11-3a66d6d1535d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDf5284abc-e754-4f53-a161-11ccf8f87c3c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc974feaa-6437-4315-b268-bc349dd069be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDc28a887c-bc01-4a3f-9d13-144e1363023c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDc28a887c-bc01-4a3f-9d13-144e1363023c"}},{"type":"GetParameter","id":"EIDeaf59048-705d-4eeb-a0e6-25457b5d3375","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID3c9a83f3-ece9-4ea5-bfac-220f3c810e01","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID3c9a83f3-ece9-4ea5-bfac-220f3c810e01"}},{"type":"Message","id":"EIDf4647dfb-bffe-44ea-8591-fe61e740e766","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDf4647dfb-bffe-44ea-8591-fe61e740e766"}},{"type":"GetParameter","id":"EID82d458ca-cbc6-40ae-b48a-ba06e8ac0218","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID35be7f29-96ab-49b5-9596-b9d264a5d81d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID35be7f29-96ab-49b5-9596-b9d264a5d81d"}},{"type":"GetParameter","id":"EID8ce28935-ab0c-4748-b826-a10c84634ace","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID34cab4b1-e573-4ee4-bb54-9649d004b1c5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID34cab4b1-e573-4ee4-bb54-9649d004b1c5"}},{"type":"ServiceEndpoint","id":"EID1c0c0387-e96d-4839-b7e5-5a246966e916","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID5d31377b-5350-4bec-a8c9-d87d0a288e85","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9f27b7d5-43b9-4b55-be6f-2cebeec9d67d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Error","id":"EIDe5905fcd-2bef-43d5-9d22-4392ec68571d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDe5905fcd-2bef-43d5-9d22-4392ec68571d"}},{"type":"ServiceEndpoint","id":"EID7401894e-bc24-4701-b705-922ac5017441","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDe16610b2-c5df-40e2-b216-90e33fbb4c86","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDe16610b2-c5df-40e2-b216-90e33fbb4c86"}},{"type":"ServiceResponse","id":"EID149d9b7b-20fc-4391-8448-0f160b626a12","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID149d9b7b-20fc-4391-8448-0f160b626a12"}},{"type":"Message","id":"EID0f12c500-34fe-4cde-b89e-a5996829a910","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID0f12c500-34fe-4cde-b89e-a5996829a910"}},{"type":"GetParameter","id":"EID13c4688d-5974-4047-aa69-0c951766d07d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID9c588497-ec14-4e35-8ede-7995a4eee281","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID9c588497-ec14-4e35-8ede-7995a4eee281"}},{"type":"ServiceEndpoint","id":"EID8437711d-b657-4055-856e-bc23106e8d85","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDdab96537-0f85-480e-bd9e-71a622699ccc","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDdab96537-0f85-480e-bd9e-71a622699ccc"}},{"type":"ServiceResponse","id":"EIDeb292933-08a3-400c-8952-5bdd8cdb03e6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDeb292933-08a3-400c-8952-5bdd8cdb03e6"}},{"type":"ServiceEndpoint","id":"EID6253e902-0290-4507-87f2-70b8cac5b4c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDbc272ce1-a6ae-4a4b-96d7-75277c5ce497","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EID8a42cffd-7dc9-4ae8-9f4a-49cdccc5e3c5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6b43f235-678a-469f-9dbb-9ff78147ddca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDb2c9f00a-c682-4ecf-a52d-760b2dca0652","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDff034499-28fd-4603-9c75-550d5f91a5df","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDff034499-28fd-4603-9c75-550d5f91a5df"}},{"type":"GetParameter","id":"EID603453ae-aed6-47e1-b562-7ed6707875ce","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDc3d3b47e-54e5-48d4-8e6a-0432648f1e56","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EIDdbd142ff-af31-4478-bed8-61f6af5c857e","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDdbd142ff-af31-4478-bed8-61f6af5c857e"}},{"type":"GetParameter","id":"EIDadd8cf66-967b-4b81-bcfc-97dd9aec95d4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID37961803-f30e-444d-8840-fc1e54e2f020","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID37961803-f30e-444d-8840-fc1e54e2f020"}},{"type":"Error","id":"EID1a6e7cbb-b9b7-4f4e-8137-8ea93220293b","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID1a6e7cbb-b9b7-4f4e-8137-8ea93220293b"}},{"type":"LogFile","id":"EIDc49ee161-cf52-479f-bd58-50a4936d3c42","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDc49ee161-cf52-479f-bd58-50a4936d3c42"}},{"type":"Error","id":"EID2c32a2a5-4649-4000-9c2e-732258258d65","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID2c32a2a5-4649-4000-9c2e-732258258d65"}},{"type":"ServiceEndpoint","id":"EIDc3a19c5b-75d1-4c48-a09e-f393c37701c9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID57217e3a-16f6-484a-886a-455a0f776f1b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID57217e3a-16f6-484a-886a-455a0f776f1b"}},{"type":"Error","id":"EID097d0e65-6d2b-4640-8736-0ec6eb88b163","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID097d0e65-6d2b-4640-8736-0ec6eb88b163"}},{"type":"ServiceEndpoint","id":"EIDdcef7c4a-9420-4b7f-af1d-3a9104314c3c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID1476dbc0-89b3-4e74-b601-e3261a2992f8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0ca237fb-47ec-4590-9d8d-53367b10e261","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID0ca237fb-47ec-4590-9d8d-53367b10e261"}},{"type":"ServiceResponse","id":"EID3fb8efdd-1829-4851-8f49-00af1f40799b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID3fb8efdd-1829-4851-8f49-00af1f40799b"}},{"type":"GetParameter","id":"EID292d41a3-00b2-41ff-96bc-ef51a8d2d39b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID50ae7caf-f649-423a-bca6-4d33d57aa4a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID50ae7caf-f649-423a-bca6-4d33d57aa4a1"}},{"type":"GetParameter","id":"EIDeb36ab78-d9e6-4c35-89a6-2bbcb9f4724c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDb2b9fb1b-a176-49c2-93bf-75a075e055aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID4dc29784-baf2-41e8-a403-45fb115bd754","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID4dc29784-baf2-41e8-a403-45fb115bd754"}},{"type":"Error","id":"EIDc72f729e-cfcd-4d8c-8958-53fa39117337","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDc72f729e-cfcd-4d8c-8958-53fa39117337"}},{"type":"GetParameter","id":"EID427a4a20-3fb6-4cbf-92ea-c2f7a788e17e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID03cbf5c1-90af-41cb-abbc-b9286fce0eb6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe0221b76-358f-42cb-9196-021999801d7c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDe0221b76-358f-42cb-9196-021999801d7c"}},{"type":"ServiceResponse","id":"EID1ef30eda-53cf-42e7-a1c8-98e3eb8e07de","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID1ef30eda-53cf-42e7-a1c8-98e3eb8e07de"}},{"type":"GetParameter","id":"EID35f51a87-741b-4205-94fb-23f09d99dd8b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID33e26957-73c8-434b-a179-0bcecd8a7246","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID33e26957-73c8-434b-a179-0bcecd8a7246"}},{"type":"ServiceEndpoint","id":"EIDa6688671-2d81-4e14-a3af-f77c37ebc02a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5c033fbd-c12c-4a76-b1ed-558e47c3ed7d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDe38a3057-6246-40da-b612-d6d318003e4b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDf292bfab-8f46-462c-b5ff-716314c47836","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDf292bfab-8f46-462c-b5ff-716314c47836"}},{"type":"GetParameter","id":"EID264b6649-41d3-42c3-a66d-9626511660aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID40ba1c55-82d4-4d2a-850b-bcbfdf145afd","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID40ba1c55-82d4-4d2a-850b-bcbfdf145afd"}},{"type":"ServiceResponse","id":"EIDf8f94c19-e4b7-4cd5-a872-5e78c32482a4","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDf8f94c19-e4b7-4cd5-a872-5e78c32482a4"}},{"type":"ServiceResponse","id":"EID7b68aa6b-2907-4ca0-bab5-8bfefe9b2d14","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID7b68aa6b-2907-4ca0-bab5-8bfefe9b2d14"}},{"type":"GetParameter","id":"EIDbbe7ee4e-cae9-42b0-844f-6e6a65487ab5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDe17e4f52-adb9-4d35-88dd-e580aa13f4de","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDe17e4f52-adb9-4d35-88dd-e580aa13f4de"}},{"type":"Error","id":"EID3abc2927-220e-43ee-85b9-a5134f5e08eb","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID3abc2927-220e-43ee-85b9-a5134f5e08eb"}},{"type":"ServiceResponse","id":"EID27080af2-f0cc-44ba-afd7-289e42ada530","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID27080af2-f0cc-44ba-afd7-289e42ada530"}},{"type":"ServiceEndpoint","id":"EID1e132c8e-1499-4a2b-8661-ffea6271922c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID0bf3c384-c140-4efb-a1f9-81f1e0c416fd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDa8e70adf-16da-4b81-aea9-f59a5619954b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDa8e70adf-16da-4b81-aea9-f59a5619954b"}},{"type":"ServiceResponse","id":"EID87af0410-82d3-45f7-91ea-731d5bd23e71","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID87af0410-82d3-45f7-91ea-731d5bd23e71"}},{"type":"ServiceEndpoint","id":"EID67972189-5964-4d09-8191-d1752c7e1a31","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID17ac865b-dd16-4c43-b393-356d1b704fe3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID71929f44-4f2b-4eaf-bcce-e18ed32ea996","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID6bc1321e-e947-4c4d-88dc-6017e9e3162c","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID6bc1321e-e947-4c4d-88dc-6017e9e3162c"}},{"type":"ServiceEndpoint","id":"EID3c173314-b83e-454b-a803-ed349faf2816","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDeb21b3b4-c277-4bd6-9a09-3538fe42bb10","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDeb21b3b4-c277-4bd6-9a09-3538fe42bb10"}},{"type":"Message","id":"EID43c47a68-115f-47ae-8fe7-117a40fa5045","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID43c47a68-115f-47ae-8fe7-117a40fa5045"}},{"type":"ServiceEndpoint","id":"EID48e7a0ef-f2b2-4046-b96e-9b6c0ee7e36a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Error","id":"EID012f3900-c11e-41ed-a12a-c77c0d343828","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID012f3900-c11e-41ed-a12a-c77c0d343828"}},{"type":"Message","id":"EID4b4625ec-97ee-4ab5-b9e6-6ec07fc99b82","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID4b4625ec-97ee-4ab5-b9e6-6ec07fc99b82"}},{"type":"Message","id":"EID417c55ee-0fd8-47b8-a0f4-44a7a7e69993","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID417c55ee-0fd8-47b8-a0f4-44a7a7e69993"}},{"type":"GetParameter","id":"EIDb8092433-bff2-4348-8375-d48395676819","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID7690cb8e-8760-4669-955a-8b9e9d95da4a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID7690cb8e-8760-4669-955a-8b9e9d95da4a"}},{"type":"ServiceEndpoint","id":"EID197f3b4a-2302-4809-8e00-ffe9307d93b0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID757f8fc8-3fac-46e0-9a70-215c51ebc2a4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID66b89ebe-30d1-4fc5-b1a5-4e61db80d35c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID66b89ebe-30d1-4fc5-b1a5-4e61db80d35c"}},{"type":"ServiceResponse","id":"EID190693d4-53ee-443a-a947-64d53ec43239","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID190693d4-53ee-443a-a947-64d53ec43239"}},{"type":"GetParameter","id":"EID74718bdc-6027-4678-ac7d-327bfe900a9a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EIDf9c2caa9-4bb4-4d3d-92fd-7ce66d3afd95","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2cdd0b68-057e-444b-89d2-bc0772ed682d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa1104bb7-f628-4eae-b571-a642fdc772a6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID159d47f7-1338-4cde-8b95-046f0b114d7c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID159d47f7-1338-4cde-8b95-046f0b114d7c"}},{"type":"GetParameter","id":"EIDc2bcf4fc-6724-4f21-ac0d-6e7889581038","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID44d765e1-a3bb-468b-921c-e2a22401deb5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID44d765e1-a3bb-468b-921c-e2a22401deb5"}},{"type":"ServiceEndpoint","id":"EIDfbca3e7d-f60a-4728-a24c-999720585537","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID14c554f4-f69f-4ea0-99d0-80a701efb793","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID14c554f4-f69f-4ea0-99d0-80a701efb793"}},{"type":"ServiceResponse","id":"EID04d981b6-32b7-43b7-a0c8-301684619577","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID04d981b6-32b7-43b7-a0c8-301684619577"}},{"type":"ServiceEndpoint","id":"EID5eafd656-aca1-47af-955c-cae65e1ad4ba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDbd59d13a-72ee-4d91-ba79-c936caf08799","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDbd59d13a-72ee-4d91-ba79-c936caf08799"}},{"type":"ServiceEndpoint","id":"EID3f5f3c37-4e2d-4f20-aa88-77f3a144956f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDb40e3f90-98d1-4597-988b-14dea2cc9053","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDc9164c13-e3e0-4f29-a0c2-c28ac3783945","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0b7a9946-0376-4fb6-b066-78258e4c34b4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID0b7a9946-0376-4fb6-b066-78258e4c34b4"}},{"type":"ServiceResponse","id":"EID7ce9bfd2-958c-44fe-86c2-77222fd6a15f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID7ce9bfd2-958c-44fe-86c2-77222fd6a15f"}},{"type":"Message","id":"EID7ae95a25-5531-4c31-980e-86dd083b8ff2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID7ae95a25-5531-4c31-980e-86dd083b8ff2"}},{"type":"Message","id":"EID0049f189-edf1-49b0-935c-6939072aaf12","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID0049f189-edf1-49b0-935c-6939072aaf12"}},{"type":"GetParameter","id":"EID69d1566e-0b9e-4e79-96a8-7ef22ebe3e86","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID4b99ba86-0070-4996-af33-8a234635258b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID4b99ba86-0070-4996-af33-8a234635258b"}},{"type":"Message","id":"EIDeaa49509-20b8-4011-9e31-b21933eedce5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDeaa49509-20b8-4011-9e31-b21933eedce5"}},{"type":"ServiceEndpoint","id":"EID25180a38-06ac-4ff5-8e8e-992bbcb6edbf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID96b2bef8-67b1-47fb-8d4f-c9ae8d4bc432","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID50f18df1-cd33-47c6-8194-d796aeb5c395","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID50f18df1-cd33-47c6-8194-d796aeb5c395"}},{"type":"ServiceResponse","id":"EIDc2ddccc2-2d17-4d25-9ec8-ad286bbf98bd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDc2ddccc2-2d17-4d25-9ec8-ad286bbf98bd"}},{"type":"Error","id":"EID92e7b60a-6389-49b8-89ce-177169ff0118","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID92e7b60a-6389-49b8-89ce-177169ff0118"}},{"type":"ServiceResponse","id":"EID1b946160-7530-40af-83c7-dabb2920b743","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID1b946160-7530-40af-83c7-dabb2920b743"}},{"type":"GetParameter","id":"EID1e6e5666-45ff-4969-8dcd-663f31f02c6e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID826e6c21-d4d0-44a1-9cf1-6ebf817eda63","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDec217907-6b15-462d-9ee5-f9ada32e9186","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID26d45c4d-3fb6-4686-861e-6c7697cc6d72","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EID26d45c4d-3fb6-4686-861e-6c7697cc6d72"}},{"type":"ServiceResponse","id":"EIDc78bd75c-0121-4df9-8f58-b92bf3541d4d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8a94d51a-deb2-4732-8f5a-45330d3ce573/Attachments/EIDc78bd75c-0121-4df9-8f58-b92bf3541d4d"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:08:19Z","duration":14490,"status":"FAILED"}}}}}
11:09:01.060 [print] EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e
11:09:01.060 [print] FAILED
11:09:01.060 [print] FAILED
11:09:01.060 [print] Conformance Class Download Service - Pre-defined Atom
11:09:01.060 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e.json
11:09:01.060 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e.json
11:09:01.060 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID6d8141b2-7a83-4a3e-8fd0-e6af0ea0a09e/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:01.084 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:09:01.084 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:14:01.043 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:14:01.044 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:01.612 response time in milliseconds: 567.40 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:01 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223AC94008691 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:14:01.619 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:02.213 response time in milliseconds: 593.40 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:01 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223ACB590A587 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:14:02.214 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:09:01.123 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml
11:09:01.123 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:01.609 response time in milliseconds: 485.28 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 6231 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:01 GMT 1 < Etag: "b86e14386658017070838b55827b24a4-1" 1 < Last-Modified: Thu, 16 Apr 2020 04:22:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422366C3431FE3 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:09:01.621 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:02.007 response time in milliseconds: 385.90 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 6231 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:01 GMT 1 < Etag: "b86e14386658017070838b55827b24a4-1" 1 < Last-Modified: Thu, 16 Apr 2020 04:22:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422366DB06C689 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:07:04.488 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml
11:07:04.490 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:06.417 response time in milliseconds: 1926.67 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4327 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:07:06 GMT 1 < Etag: "2b808852de163596115b571d04ab8e33-1" 1 < Last-Modified: Tue, 26 Nov 2019 15:47:04 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642234BE4EA4F36 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:07:06.432 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:07.808 response time in milliseconds: 1375.28 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4327 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:07:07 GMT 1 < Etag: "2b808852de163596115b571d04ab8e33-1" 1 < Last-Modified: Tue, 26 Nov 2019 15:47:04 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642234C3E456EAA 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:09:23.758 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:09:23.759 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:24.149 response time in milliseconds: 389.94 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:23 GMT 1 < X-Cnection: [close, close]
11:09:24.153 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:24.545 response time in milliseconds: 391.96 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:24 GMT 1 < X-Cnection: [close, close]
11:16:29.438 [print] testing url:https://geodata.nationaalgeoregister.nl/inspireadressen/v2/wfs?service=wfs&request=GetCapabilities
11:16:29.438 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspireadressen/v2/wfs?service=wfs&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:31.761 response time in milliseconds: 2322.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:31 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:31.764 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspireadressen/v2/wfs?service=wfs&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:32.177 response time in milliseconds: 412.14 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:32 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:32.178 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:48.992 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities"}}}
11:16:48.992 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 300
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities"}}}
11:16:49.978 response time in milliseconds: 984.69
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:49 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883809919","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:49.978 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:08:24.413 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:08:24.416 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:08:38.881 response time in milliseconds: 13690.46
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:08:38 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:08:32 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd.json","testRuns":{"TestRun":{"id":"EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:32.481Z","testTasks":{"TestTask":{"id":"EID90f06846-3c90-45fd-9c06-44882be11fd2","parent":{"ref":"EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDfe3f0868-1fdd-43bd-a2dd-352092991907"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDfe3f0868-1fdd-43bd-a2dd-352092991907","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:24.864Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:31.586Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:08:38.900 [print] EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd
11:08:38.901 [print] UNDEFINED
11:08:38.902 [print] Conformance Class Download Service - Pre-defined Atom
11:08:38.902 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd.json
11:08:38.903 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/log
11:08:38.905 [print] statuspath TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd
11:08:38.905 [print] progresspath TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
11:08:38.907 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:41.946 response time in milliseconds: 3038.75
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:08:41 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"41","max":"42","log":["28.10.2020 11:08:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:32 UTC 2020)","28.10.2020 11:08:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:32 - Preparing 1 Test Task:","28.10.2020 11:08:32 - TestTask 1 (90f06846-3c90-45fd-9c06-44882be11fd2)","28.10.2020 11:08:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:32 - with parameters: ","28.10.2020 11:08:32 - etf.testcases = *","28.10.2020 11:08:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:32 - Setting state to CREATED","28.10.2020 11:08:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:32 - Starting TestRun.4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd at 2020-10-28T11:08:34Z","28.10.2020 11:08:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:34 - Project Properties: ","28.10.2020 11:08:34 - etf.testcases - * ","28.10.2020 11:08:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:34 - username - ","28.10.2020 11:08:34 - authUser - ","28.10.2020 11:08:34 - authMethod - basic ","28.10.2020 11:08:34 - TestRunTask initialized","28.10.2020 11:08:38 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:38 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:08:41.947 [print] {
"val": "41",
"max": "42",
"log": [
"28.10.2020 11:08:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:32 UTC 2020)",
"28.10.2020 11:08:32 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:08:32 - Preparing 1 Test Task:",
"28.10.2020 11:08:32 - TestTask 1 (90f06846-3c90-45fd-9c06-44882be11fd2)",
"28.10.2020 11:08:32 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:08:32 - with parameters: ",
"28.10.2020 11:08:32 - etf.testcases = *",
"28.10.2020 11:08:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:08:32 - Setting state to CREATED",
"28.10.2020 11:08:32 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:08:32 - Starting TestRun.4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd at 2020-10-28T11:08:34Z",
"28.10.2020 11:08:34 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:08:34 - Project Properties: ",
"28.10.2020 11:08:34 - etf.testcases - * ",
"28.10.2020 11:08:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:08:34 - username - ",
"28.10.2020 11:08:34 - authUser - ",
"28.10.2020 11:08:34 - authMethod - basic ",
"28.10.2020 11:08:34 - TestRunTask initialized",
"28.10.2020 11:08:38 ERROR Response status code:500 is not in acceptable list of status codes",
"28.10.2020 11:08:38 ERROR Assertion failed with error 'TR.unexpectedHtml'"
]
}
11:08:41.947 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:42.479 response time in milliseconds: 530.82
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:08:42 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:08:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:32 UTC 2020)","28.10.2020 11:08:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:32 - Preparing 1 Test Task:","28.10.2020 11:08:32 - TestTask 1 (90f06846-3c90-45fd-9c06-44882be11fd2)","28.10.2020 11:08:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:32 - with parameters: ","28.10.2020 11:08:32 - etf.testcases = *","28.10.2020 11:08:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:32 - Setting state to CREATED","28.10.2020 11:08:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:32 - Starting TestRun.4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd at 2020-10-28T11:08:34Z","28.10.2020 11:08:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:34 - Project Properties: ","28.10.2020 11:08:34 - etf.testcases - * ","28.10.2020 11:08:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:34 - username - ","28.10.2020 11:08:34 - authUser - ","28.10.2020 11:08:34 - authMethod - basic ","28.10.2020 11:08:34 - TestRunTask initialized","28.10.2020 11:08:38 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:38 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:08:42.480 retry condition not satisfied: response.val == response.max
11:08:42.480 sleeping before retry #1
11:08:47.481 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:48.010 response time in milliseconds: 528.86
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:08:47 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"117","max":"118","log":["28.10.2020 11:08:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:32 UTC 2020)","28.10.2020 11:08:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:32 - Preparing 1 Test Task:","28.10.2020 11:08:32 - TestTask 1 (90f06846-3c90-45fd-9c06-44882be11fd2)","28.10.2020 11:08:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:32 - with parameters: ","28.10.2020 11:08:32 - etf.testcases = *","28.10.2020 11:08:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:32 - Setting state to CREATED","28.10.2020 11:08:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:32 - Starting TestRun.4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd at 2020-10-28T11:08:34Z","28.10.2020 11:08:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:34 - Project Properties: ","28.10.2020 11:08:34 - etf.testcases - * ","28.10.2020 11:08:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:34 - username - ","28.10.2020 11:08:34 - authUser - ","28.10.2020 11:08:34 - authMethod - basic ","28.10.2020 11:08:34 - TestRunTask initialized","28.10.2020 11:08:38 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:38 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:46 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:46 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes"]}
11:08:48.011 retry condition not satisfied: response.val == response.max
11:08:48.011 sleeping before retry #2
11:08:53.012 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:53.563 response time in milliseconds: 550.09
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:08:53 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:08:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:32 UTC 2020)","28.10.2020 11:08:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:32 - Preparing 1 Test Task:","28.10.2020 11:08:32 - TestTask 1 (90f06846-3c90-45fd-9c06-44882be11fd2)","28.10.2020 11:08:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:32 - with parameters: ","28.10.2020 11:08:32 - etf.testcases = *","28.10.2020 11:08:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:32 - Setting state to CREATED","28.10.2020 11:08:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:32 - Starting TestRun.4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd at 2020-10-28T11:08:34Z","28.10.2020 11:08:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:34 - Project Properties: ","28.10.2020 11:08:34 - etf.testcases - * ","28.10.2020 11:08:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:08:34 - username - ","28.10.2020 11:08:34 - authUser - ","28.10.2020 11:08:34 - authMethod - basic ","28.10.2020 11:08:34 - TestRunTask initialized","28.10.2020 11:08:38 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:08:38 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:08:46 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:08:46 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:48 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:48 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:08:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:48 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:49 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:49 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:08:49 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:08:49 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:08:53.563 retry condition not satisfied: response.val == response.max
11:08:53.563 sleeping before retry #3
11:08:58.564 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:00.572 response time in milliseconds: 2007.40
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:09:00 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:09:00.573 retry condition satisfied
11:09:00.573 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:09:00.573 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:13.740 response time in milliseconds: 12213.74
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:09:12 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:09:00 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd.json","testRuns":{"TestRun":{"id":"EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:32.481Z","testTasks":{"TestTask":{"id":"EID90f06846-3c90-45fd-9c06-44882be11fd2","parent":{"ref":"EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDfe3f0868-1fdd-43bd-a2dd-352092991907"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDfe3f0868-1fdd-43bd-a2dd-352092991907","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:24.864Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:31.586Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e","testObject":{"ref":"EIDfe3f0868-1fdd-43bd-a2dd-352092991907"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee52ce0-0175-1000-04c5-4ebd430e6078","testCaseResults":{"TestCaseResult":[{"id":"EID6ee52ce0-0175-1000-d141-2290faf1b766","testStepResults":{"TestStepResult":[{"id":"EID6ee52ce8-0175-1000-41a3-64c330e05147","parent":{"ref":"EID6ee52ce0-0175-1000-d141-2290faf1b766"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:08:34Z","duration":175,"status":"PASSED"},{"id":"EID6ee52d97-0175-1000-221f-c3939a7a00c8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52e4d-0175-1000-4d1a-9ebd397da92e","parent":{"ref":"EID6ee52d97-0175-1000-221f-c3939a7a00c8"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:08:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee52e4d-0175-1000-80a5-78b326256ce7","parent":{"ref":"EID6ee52d97-0175-1000-221f-c3939a7a00c8"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:08:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee52e4d-0175-1000-e231-c6bef55367e8","parent":{"ref":"EID6ee52d97-0175-1000-221f-c3939a7a00c8"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:08:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee52e4d-0175-1000-dea5-7566bd9dc31a","parent":{"ref":"EID6ee52d97-0175-1000-221f-c3939a7a00c8"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:08:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3d405c42-254b-48e1-aab5-43cfb03aa075"},{"ref":"EID18c15dcd-8b2d-4636-b53b-f91c6c77bb0a"},{"ref":"EID129323c6-a0b6-4841-9a6e-8c91fcb752e9"}]},"parent":{"ref":"EID6ee52ce0-0175-1000-d141-2290faf1b766"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:08:34Z","duration":67,"status":"PASSED"}]},"parent":{"ref":"EID6ee52ce0-0175-1000-04c5-4ebd430e6078"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:08:34Z","duration":373,"status":"PASSED"},{"id":"EID6ee52e56-0175-1000-aeed-38c72b512370","testStepResults":{"TestStepResult":{"id":"EID6ee52e56-0175-1000-2c7e-ecbe15f2ce55","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52f4e-0175-1000-5550-ef243a1a2691","parent":{"ref":"EID6ee52e56-0175-1000-2c7e-ecbe15f2ce55"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52f4e-0175-1000-ccf0-0e5f1171afdf","parent":{"ref":"EID6ee52e56-0175-1000-2c7e-ecbe15f2ce55"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52f4e-0175-1000-dc4c-71155c1164be","parent":{"ref":"EID6ee52e56-0175-1000-2c7e-ecbe15f2ce55"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDab0747ba-ff28-4a7e-8fde-1ca7ed3bcbe0"},{"ref":"EID0dab4842-6ccf-4b19-bdd6-37dd82b0e91c"},{"ref":"EIDa2d07460-3d7b-4357-9603-30fafb59d764"}]},"parent":{"ref":"EID6ee52e56-0175-1000-aeed-38c72b512370"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:08:34Z","duration":156,"status":"PASSED"}},"parent":{"ref":"EID6ee52ce0-0175-1000-04c5-4ebd430e6078"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:08:34Z","duration":249,"status":"PASSED"}]},"parent":{"ref":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:08:34Z","duration":623,"status":"PASSED"},{"id":"EID6ee52f4f-0175-1000-eaad-4fca9f922948","testCaseResults":{"TestCaseResult":[{"id":"EID6ee52f4f-0175-1000-fd24-87af1010571e","testStepResults":{"TestStepResult":[{"id":"EID6ee52f4f-0175-1000-7f4d-85e4cc1a119a","parent":{"ref":"EID6ee52f4f-0175-1000-fd24-87af1010571e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:08:35Z","duration":148,"status":"PASSED"},{"id":"EID6ee52f4f-0175-1000-94c8-dd04350616eb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee52fe8-0175-1000-251f-92b339e669ce","parent":{"ref":"EID6ee52f4f-0175-1000-94c8-dd04350616eb"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52fe8-0175-1000-06c1-e9817cbd48fc","parent":{"ref":"EID6ee52f4f-0175-1000-94c8-dd04350616eb"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52fe8-0175-1000-4b86-ab6658ccc481","parent":{"ref":"EID6ee52f4f-0175-1000-94c8-dd04350616eb"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52fe8-0175-1000-6345-d396c6dcae9f","parent":{"ref":"EID6ee52f4f-0175-1000-94c8-dd04350616eb"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee52fe8-0175-1000-d3c6-7a971dfef4e7","parent":{"ref":"EID6ee52f4f-0175-1000-94c8-dd04350616eb"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3a70ce77-55fa-4d03-b82e-cf08689606a2"},{"ref":"EID33f866dd-fa83-488c-be77-33b630f417c8"},{"ref":"EIDda67f46c-d752-476c-9be2-797fb6781bcf"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-fd24-87af1010571e"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:08:35Z","duration":49,"status":"PASSED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:08:35Z","duration":153,"status":"PASSED"},{"id":"EID6ee52fe8-0175-1000-59c9-259dd21f6fac","testStepResults":{"TestStepResult":[{"id":"EID6ee52fe8-0175-1000-baf8-a2d2be863900","attachments":{"attachment":[{"ref":"EID12d99314-b287-48a4-98c8-ed878f3ee06e"},{"ref":"EID1586ef60-e22c-4012-bb11-bc7dcfc43d33"}]},"parent":{"ref":"EID6ee52fe8-0175-1000-59c9-259dd21f6fac"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:08:35Z","duration":123,"status":"PASSED"},{"id":"EID6ee5308e-0175-1000-474a-7df4ebff71d6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5316d-0175-1000-4979-6559330a5308","parent":{"ref":"EID6ee5308e-0175-1000-474a-7df4ebff71d6"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee5316d-0175-1000-41e6-9d6cdfdd5144","parent":{"ref":"EID6ee5308e-0175-1000-474a-7df4ebff71d6"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee5316d-0175-1000-50b1-7121266c4633","parent":{"ref":"EID6ee5308e-0175-1000-474a-7df4ebff71d6"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee5316d-0175-1000-c434-77e73356ce5f","parent":{"ref":"EID6ee5308e-0175-1000-474a-7df4ebff71d6"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:08:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcb0e6f31-274c-444f-9b8b-7173a01bfd3e"},{"ref":"EID8de00516-a1ff-40a5-acc9-b83091103d35"},{"ref":"EIDa62f1d9c-ecf4-4ada-b182-04dffebb46c7"}]},"parent":{"ref":"EID6ee52fe8-0175-1000-59c9-259dd21f6fac"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:08:35Z","duration":95,"status":"PASSED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:08:35Z","duration":389,"status":"PASSED"},{"id":"EID6ee5316d-0175-1000-99ff-1e205503aa99","testStepResults":{"TestStepResult":[{"id":"EID6ee5316d-0175-1000-50bf-2b3aa735c4ed","attachments":{"attachment":[{"ref":"EID841026c7-b9fb-4c35-9536-8f23f7466224"},{"ref":"EID1d3d7dfc-5d35-4687-b820-70c928917011"}]},"parent":{"ref":"EID6ee5316d-0175-1000-99ff-1e205503aa99"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:08:35Z","duration":232,"status":"PASSED"},{"id":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee53345-0175-1000-faee-005b386f005e","parent":{"ref":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee53345-0175-1000-73ac-c1d864a50a77","parent":{"ref":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee53345-0175-1000-8508-dab84c498166","parent":{"ref":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee53345-0175-1000-6d34-c64ab2c627b9","parent":{"ref":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee53345-0175-1000-a509-b9e2f33c08cb","parent":{"ref":"EID6ee532a4-0175-1000-9ce1-98ca7bc8cc6f"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda6d9319-d285-472c-aa35-4326dd231cbb"},{"ref":"EIDf7e66833-8ba6-4f40-abe3-6b6e185a2b27"},{"ref":"EID75830ec0-20c4-4400-abb3-e738e4e09606"}]},"parent":{"ref":"EID6ee5316d-0175-1000-99ff-1e205503aa99"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:08:35Z","duration":31,"status":"PASSED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:08:35Z","duration":472,"status":"PASSED"},{"id":"EID6ee53345-0175-1000-634c-b3b016688473","testStepResults":{"TestStepResult":[{"id":"EID6ee53345-0175-1000-d9d2-3176f897fb7f","attachments":{"attachment":[{"ref":"EID0c39ae9e-86bd-4284-87ca-a1a827fb99c6"},{"ref":"EID99b53cad-f9b0-44d2-b557-9973b41c05f9"}]},"parent":{"ref":"EID6ee53345-0175-1000-634c-b3b016688473"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:08:36Z","duration":131,"status":"PASSED"},{"id":"EID6ee53438-0175-1000-89e3-8ca3fe57724d","parent":{"ref":"EID6ee53345-0175-1000-634c-b3b016688473"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee53438-0175-1000-0265-fb36d6f5f3f1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee534fb-0175-1000-dd3f-a199a5a217d0","parent":{"ref":"EID6ee53438-0175-1000-0265-fb36d6f5f3f1"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee534fb-0175-1000-ff3a-077243c9949f","parent":{"ref":"EID6ee53438-0175-1000-0265-fb36d6f5f3f1"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee534fb-0175-1000-d790-31db20f69719","parent":{"ref":"EID6ee53438-0175-1000-0265-fb36d6f5f3f1"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee534fb-0175-1000-0cb9-afaf4cc76fef","parent":{"ref":"EID6ee53438-0175-1000-0265-fb36d6f5f3f1"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7ab3870d-04bb-490d-a383-d0fad690608a"},{"ref":"EID496f06a5-f434-4602-b42a-c51e11d3489a"},{"ref":"EIDe7ae59a8-4ad8-450a-8a8e-ae0928c82b28"}]},"parent":{"ref":"EID6ee53345-0175-1000-634c-b3b016688473"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:08:36Z","duration":102,"status":"PASSED"},{"id":"EID6ee534fb-0175-1000-1309-98ce67fc6bc9","attachments":{"attachment":{"ref":"EIDb8f42376-94ae-4ff1-b6dd-ed6bd1f527f8"}},"parent":{"ref":"EID6ee53345-0175-1000-634c-b3b016688473"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:08:36Z","duration":1,"status":"PASSED"},{"id":"EID6ee53513-0175-1000-2419-ef848121193f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee535c0-0175-1000-e640-8b790f22343f","parent":{"ref":"EID6ee53513-0175-1000-2419-ef848121193f"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee535c0-0175-1000-8eac-c7c93448b33a","parent":{"ref":"EID6ee53513-0175-1000-2419-ef848121193f"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee535c0-0175-1000-90bd-2a46bce25a09","parent":{"ref":"EID6ee53513-0175-1000-2419-ef848121193f"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee535c0-0175-1000-6665-2fef012e8f6d","parent":{"ref":"EID6ee53513-0175-1000-2419-ef848121193f"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee535c0-0175-1000-ee06-eb0b4dc54d97","parent":{"ref":"EID6ee53513-0175-1000-2419-ef848121193f"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:08:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID63f6d945-e17b-4213-a1bf-6708a2faf411"},{"ref":"EID46f61fe4-3967-41b1-9410-775d69662e21"},{"ref":"EID5b1b8847-e7f4-4bdc-bd76-9173d464e8e4"}]},"parent":{"ref":"EID6ee53345-0175-1000-634c-b3b016688473"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:08:36Z","duration":43,"status":"PASSED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:08:36Z","duration":635,"status":"PASSED"},{"id":"EID6ee535c0-0175-1000-0e5e-39a89900b319","testStepResults":{"TestStepResult":[{"id":"EID6ee535c0-0175-1000-d9f6-9f43fb9f4931","attachments":{"attachment":[{"ref":"EIDb4c98fac-9ca0-4f0b-8d03-ff177585bc2a"},{"ref":"EID4e24e2ed-90b4-48d4-9a29-141b5e79df18"}]},"parent":{"ref":"EID6ee535c0-0175-1000-0e5e-39a89900b319"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:08:36Z","duration":110,"status":"PASSED"},{"id":"EID6ee53656-0175-1000-b63e-4ad3f09d554a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5379f-0175-1000-fa2c-1aa1d1f2cf2a","parent":{"ref":"EID6ee53656-0175-1000-b63e-4ad3f09d554a"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:08:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee5379f-0175-1000-d579-9193b966aa28","parent":{"ref":"EID6ee53656-0175-1000-b63e-4ad3f09d554a"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:08:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee5379f-0175-1000-c259-3dc8d2405755","parent":{"ref":"EID6ee53656-0175-1000-b63e-4ad3f09d554a"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:08:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee5379f-0175-1000-b605-16bcfe378f8c","parent":{"ref":"EID6ee53656-0175-1000-b63e-4ad3f09d554a"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:08:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe82c0c00-b194-4ff1-b354-ee51b80f0c62"},{"ref":"EID2652ae58-3645-4f08-9d9b-04e47ec403fd"},{"ref":"EID4d3b0704-5873-4c5f-beb1-b9d56113ec36"}]},"parent":{"ref":"EID6ee535c0-0175-1000-0e5e-39a89900b319"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:08:36Z","duration":182,"status":"PASSED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:08:36Z","duration":479,"status":"PASSED"},{"id":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8","testStepResults":{"TestStepResult":[{"id":"EID6ee5379f-0175-1000-c33e-1273d11deed6","attachments":{"attachment":[{"ref":"EID731a5e67-a010-4afb-aea6-2762e3d5ec8d"},{"ref":"EID34d32479-0a99-40ee-a840-4a475a0fe183"}]},"parent":{"ref":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:08:37Z","duration":197,"status":"PASSED"},{"id":"EID6ee5388f-0175-1000-09c0-9d1afe80547f","parent":{"ref":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:08:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee5388f-0175-1000-67df-67155b78e7fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee53b4c-0175-1000-4e19-c7b968400333","parent":{"ref":"EID6ee5388f-0175-1000-67df-67155b78e7fd"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee53b4c-0175-1000-ff19-6656d56619e7","parent":{"ref":"EID6ee5388f-0175-1000-67df-67155b78e7fd"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee53b4c-0175-1000-d898-0a4869488d2b","parent":{"ref":"EID6ee5388f-0175-1000-67df-67155b78e7fd"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee53b4c-0175-1000-477e-44adfc4a9bfa","parent":{"ref":"EID6ee5388f-0175-1000-67df-67155b78e7fd"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID99eedc89-d4f6-4a18-a8e4-8625aed87e75"},{"ref":"EIDfe73886a-0d1e-4faa-8ffe-69ec80282d27"},{"ref":"EIDe60377a0-35db-4f36-9240-7cc7901fb011"}]},"parent":{"ref":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:08:37Z","duration":63,"status":"PASSED"},{"id":"EID6ee53b4c-0175-1000-8b34-f46e09820d42","attachments":{"attachment":{"ref":"EIDf1d9ad19-e306-4a7e-a958-d006b67fec16"}},"parent":{"ref":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:08:38Z","duration":2,"status":"PASSED"},{"id":"EID6ee53b58-0175-1000-14b7-def077f97cf2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee53dbe-0175-1000-1509-fc9d749064c9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee53b58-0175-1000-14b7-def077f97cf2"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:08:38Z","duration":13,"status":"FAILED"},{"id":"EID6ee53dcb-0175-1000-c521-b63b33c2daf4","parent":{"ref":"EID6ee53b58-0175-1000-14b7-def077f97cf2"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee53dcb-0175-1000-f7cf-b8952f74e3bf","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee53b58-0175-1000-14b7-def077f97cf2"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:08:38Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDbdbd137e-ccba-4d35-b8b3-110fa52f06f8"},{"ref":"EID0ad58f3a-5694-45b4-b411-153f7228f99c"},{"ref":"EID25bcac62-4262-4331-983c-3ad27c98d886"}]},"parent":{"ref":"EID6ee5379f-0175-1000-8bec-6953aa9edfb8"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:08:38Z","duration":338,"status":"FAILED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:08:37Z","duration":1618,"status":"FAILED"},{"id":"EID6ee53dfd-0175-1000-7cac-461551d3e8e3","testStepResults":{"TestStepResult":[{"id":"EID6ee53dfd-0175-1000-2df9-9a2cbaa5c03f","attachments":{"attachment":[{"ref":"EID6ca6c7cc-1af0-4b0e-8d7b-8752306329b2"},{"ref":"EID271c2ac9-cdbf-421f-8f87-34752ef3b85a"}]},"parent":{"ref":"EID6ee53dfd-0175-1000-7cac-461551d3e8e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:08:38Z","duration":164,"status":"PASSED"},{"id":"EID6ee53ec8-0175-1000-f51d-18d2ed0174f3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee54b21-0175-1000-0b4a-34537ee11139","parent":{"ref":"EID6ee53ec8-0175-1000-f51d-18d2ed0174f3"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54b21-0175-1000-1711-3e3f0c9bc47b","parent":{"ref":"EID6ee53ec8-0175-1000-f51d-18d2ed0174f3"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54b21-0175-1000-e4f8-4c5095284064","parent":{"ref":"EID6ee53ec8-0175-1000-f51d-18d2ed0174f3"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54b21-0175-1000-ad5e-0874c883d90e","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee53ec8-0175-1000-f51d-18d2ed0174f3"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID1a980f68-c441-4765-bc5f-e3267d1ff7ff"},{"ref":"EID3316eaaf-a23e-464b-b34c-12bdf8ae1f28"},{"ref":"EIDd25545c1-d893-4f5f-b4e9-33e5cf8fa9e6"}]},"parent":{"ref":"EID6ee53dfd-0175-1000-7cac-461551d3e8e3"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:08:38Z","duration":2888,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:08:38Z","duration":3365,"status":"PASSED_MANUAL"},{"id":"EID6ee54b22-0175-1000-913d-3b515fac2773","testStepResults":{"TestStepResult":{"id":"EID6ee54b22-0175-1000-a7c6-330cbea772cb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee54c98-0175-1000-d4a9-642281414c86","parent":{"ref":"EID6ee54b22-0175-1000-a7c6-330cbea772cb"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54c98-0175-1000-38b7-d87e578a63f4","parent":{"ref":"EID6ee54b22-0175-1000-a7c6-330cbea772cb"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54c98-0175-1000-5623-c13bbe76f1e3","parent":{"ref":"EID6ee54b22-0175-1000-a7c6-330cbea772cb"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54c98-0175-1000-f629-d9c172d909bd","parent":{"ref":"EID6ee54b22-0175-1000-a7c6-330cbea772cb"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa5d84bdf-8483-47f2-b00f-ba71fb70ef6e"},{"ref":"EIDc5b110d6-7f81-4018-9db1-e4e4ff8a7085"},{"ref":"EID43272bac-37b5-4048-8ebf-07a811fe9047"}]},"parent":{"ref":"EID6ee54b22-0175-1000-913d-3b515fac2773"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:08:42Z","duration":76,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:08:42Z","duration":374,"status":"PASSED"},{"id":"EID6ee54c98-0175-1000-ed45-cf00dde2ece5","testStepResults":{"TestStepResult":{"id":"EID6ee54c98-0175-1000-3df5-9c338868fe66","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee54d5f-0175-1000-d215-56460fdf7834","parent":{"ref":"EID6ee54c98-0175-1000-3df5-9c338868fe66"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54d5f-0175-1000-cc74-41c102ca588b","parent":{"ref":"EID6ee54c98-0175-1000-3df5-9c338868fe66"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54d5f-0175-1000-e531-db0f90177536","parent":{"ref":"EID6ee54c98-0175-1000-3df5-9c338868fe66"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee54d5f-0175-1000-76f4-bf3f17dd0bba","parent":{"ref":"EID6ee54c98-0175-1000-3df5-9c338868fe66"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:08:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe213a84c-4aec-44b0-bcbb-a1d9fa092c51"},{"ref":"EID86f14b58-5679-46c9-aed4-ccf0742c67b6"},{"ref":"EID8993ac53-fd78-4221-8bc4-7ed3879fd618"}]},"parent":{"ref":"EID6ee54c98-0175-1000-ed45-cf00dde2ece5"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:08:42Z","duration":104,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:08:42Z","duration":208,"status":"PASSED"},{"id":"EID6ee54d68-0175-1000-7ca3-b3a19810d0c4","testStepResults":{"TestStepResult":{"id":"EID6ee54d68-0175-1000-b512-7516ff033e46","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EIDd0ecb0b1-9893-4ae5-a4ad-7a6c41d7969b"},{"ref":"EID1b92d38c-4d89-4b39-b913-131cfd16038a"},{"ref":"EID044d35c4-10fb-4787-98c4-72ebeb8f6a86"},{"ref":"EIDcea740c3-ea2c-478b-8b49-2e11f7d5f3f9"},{"ref":"EIDc1517eb5-f305-497f-b260-242531de7e6e"},{"ref":"EIDbf7c67c9-5d8f-4975-b128-4f9058ea1a22"},{"ref":"EID1e6c27b2-5787-487e-8087-c2693857e9cf"},{"ref":"EIDcdbc0433-8245-424f-b1ff-8b531d5040ec"},{"ref":"EID87734727-7f0b-4366-8d96-5eda7fd05347"}]},"parent":{"ref":"EID6ee54d68-0175-1000-7ca3-b3a19810d0c4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:08:42Z","duration":1412,"status":"SKIPPED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:08:42Z","duration":1507,"status":"SKIPPED"},{"id":"EID6ee55350-0175-1000-a7d7-0bb6d0abff20","testStepResults":{"TestStepResult":{"id":"EID6ee55350-0175-1000-5a4a-2e2984c2a85a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55438-0175-1000-052d-580ae48ac327","parent":{"ref":"EID6ee55350-0175-1000-5a4a-2e2984c2a85a"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55438-0175-1000-fea5-a8f25e345050","parent":{"ref":"EID6ee55350-0175-1000-5a4a-2e2984c2a85a"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55438-0175-1000-2133-fe1fc5bfb4c2","parent":{"ref":"EID6ee55350-0175-1000-5a4a-2e2984c2a85a"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55438-0175-1000-e834-0ee694c33843","parent":{"ref":"EID6ee55350-0175-1000-5a4a-2e2984c2a85a"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa2411980-2df6-4500-8401-747cdb02507b"},{"ref":"EID37e90eff-6588-4cbc-a116-9147f28e71d1"},{"ref":"EIDd9087d10-d162-45fb-9c39-6efb604f8911"}]},"parent":{"ref":"EID6ee55350-0175-1000-a7d7-0bb6d0abff20"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:08:44Z","duration":66,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:08:44Z","duration":232,"status":"PASSED"},{"id":"EID6ee55438-0175-1000-0337-343e794b3aa2","testStepResults":{"TestStepResult":{"id":"EID6ee55440-0175-1000-4187-fe2311afd0e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55573-0175-1000-60d4-5db99201eb2b","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-61da-0947f1d74587","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-d29f-677aedc388b0","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-5bf8-d1a16a9af587","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-f322-e8b932a90ce1","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-d01e-1f86c9b5aecb","parent":{"ref":"EID6ee55440-0175-1000-4187-fe2311afd0e2"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:08:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcbd8b781-669d-45ea-9d02-b8d4e543f3ff"},{"ref":"EIDc62f3b16-bbbc-4aec-8ce0-676c7a95d49c"},{"ref":"EIDf226cc2d-7b1b-4c3b-850b-a62105ddcc28"}]},"parent":{"ref":"EID6ee55438-0175-1000-0337-343e794b3aa2"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:08:44Z","duration":82,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:08:44Z","duration":315,"status":"PASSED"},{"id":"EID6ee55573-0175-1000-37bb-0c0819437781","testStepResults":{"TestStepResult":{"id":"EID6ee55573-0175-1000-9c52-9d0570917d9f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55698-0175-1000-7c47-8494dc6c545b","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55698-0175-1000-e580-16bea18a25c9","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55698-0175-1000-17b1-13ae79c42c76","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55698-0175-1000-9aec-670ee7b598dd","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55698-0175-1000-1403-6286870a5687","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55698-0175-1000-f4d5-6f6fc18cfdcf","parent":{"ref":"EID6ee55573-0175-1000-9c52-9d0570917d9f"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID580b5fd4-596f-45a6-b2c3-30acc9195f50"},{"ref":"EID04204c10-f469-4a5f-93c5-d64fd7cba844"},{"ref":"EIDd791d598-13d9-403a-83bd-89d7bab045e3"}]},"parent":{"ref":"EID6ee55573-0175-1000-37bb-0c0819437781"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:08:44Z","duration":60,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:08:44Z","duration":327,"status":"PASSED"},{"id":"EID6ee556ba-0175-1000-09a4-3439b33cdaa6","testStepResults":{"TestStepResult":{"id":"EID6ee556ba-0175-1000-1788-c41ec9661dca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55764-0175-1000-9e3d-340efe265d45","parent":{"ref":"EID6ee556ba-0175-1000-1788-c41ec9661dca"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55764-0175-1000-6cd7-edfeb5564a3f","parent":{"ref":"EID6ee556ba-0175-1000-1788-c41ec9661dca"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55764-0175-1000-c57d-e3fce0eb455d","parent":{"ref":"EID6ee556ba-0175-1000-1788-c41ec9661dca"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee55764-0175-1000-0874-66bc60151040","parent":{"ref":"EID6ee556ba-0175-1000-1788-c41ec9661dca"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:08:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa8ae92fd-7990-4d40-b079-648d6596d71d"},{"ref":"EID08e5bdb4-b7a8-4e0e-8d08-9043b77d2382"},{"ref":"EID5045ea76-0f5d-4bee-852c-346bb3b07d21"}]},"parent":{"ref":"EID6ee556ba-0175-1000-09a4-3439b33cdaa6"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:08:45Z","duration":80,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:08:45Z","duration":170,"status":"PASSED"},{"id":"EID6ee55764-0175-1000-602f-6f701d8691e9","testStepResults":{"TestStepResult":[{"id":"EID6ee55764-0175-1000-86cc-b3335f064d0d","attachments":{"attachment":[{"ref":"EID1f5dc917-2daa-4e26-9baa-5423f2cc39e1"},{"ref":"EID7963e19d-003b-476a-916e-ff450a9b1710"},{"ref":"EIDcb4a5167-a142-48ce-892c-f7e177b3f6a3"},{"ref":"EIDd0b882d4-9150-418e-9edf-56b84f491702"}]},"parent":{"ref":"EID6ee55764-0175-1000-602f-6f701d8691e9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:08:45Z","duration":502,"status":"PASSED"},{"id":"EID6ee559c7-0175-1000-7d6c-664d753a1297","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55a78-0175-1000-ebb6-40110bf877ef","parent":{"ref":"EID6ee559c7-0175-1000-7d6c-664d753a1297"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55a78-0175-1000-5e6a-a431d5fcf7bd","parent":{"ref":"EID6ee559c7-0175-1000-7d6c-664d753a1297"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55a78-0175-1000-9cc5-e4b9049d3544","parent":{"ref":"EID6ee559c7-0175-1000-7d6c-664d753a1297"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55a78-0175-1000-ff65-e801902eed89","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee559c7-0175-1000-7d6c-664d753a1297"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf0ed7715-8bc4-4aa8-9d00-3411aaf58f15"},{"ref":"EIDb833942a-687b-43b8-91f9-da40fb6f4c32"},{"ref":"EIDcbed42d7-dd71-440c-8c87-3a854a5146e7"}]},"parent":{"ref":"EID6ee55764-0175-1000-602f-6f701d8691e9"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:08:45Z","duration":38,"status":"FAILED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:08:45Z","duration":789,"status":"FAILED"},{"id":"EID6ee55a79-0175-1000-54f3-306af38f86db","testStepResults":{"TestStepResult":{"id":"EID6ee55a79-0175-1000-a41d-dfa03785367c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55b39-0175-1000-ea40-e5a1901c2d81","parent":{"ref":"EID6ee55a79-0175-1000-a41d-dfa03785367c"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55b39-0175-1000-1442-abf9078a7919","parent":{"ref":"EID6ee55a79-0175-1000-a41d-dfa03785367c"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55b39-0175-1000-a4e7-47bb88360fdb","parent":{"ref":"EID6ee55a79-0175-1000-a41d-dfa03785367c"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55b39-0175-1000-7057-2148046134d9","parent":{"ref":"EID6ee55a79-0175-1000-a41d-dfa03785367c"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2389e58f-9ff1-4314-bc63-4573c7745446"},{"ref":"EIDdf46c38a-2fe0-48f7-a21d-34c630a9c3e0"},{"ref":"EID6410864b-1c5c-4301-a1c1-f09826fef53a"}]},"parent":{"ref":"EID6ee55a79-0175-1000-54f3-306af38f86db"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:08:46Z","duration":100,"status":"PASSED"}},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:08:46Z","duration":193,"status":"PASSED"},{"id":"EID6ee55b3a-0175-1000-5023-1edff449ba76","testStepResults":{"TestStepResult":[{"id":"EID6ee55b3a-0175-1000-f240-4794d7041261","parent":{"ref":"EID6ee55b3a-0175-1000-5023-1edff449ba76"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55b3a-0175-1000-d196-961ad4404d1c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55c82-0175-1000-6a2d-df7e403e82f6","parent":{"ref":"EID6ee55b3a-0175-1000-d196-961ad4404d1c"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55c82-0175-1000-1357-57cc49336969","parent":{"ref":"EID6ee55b3a-0175-1000-d196-961ad4404d1c"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55c82-0175-1000-c0ff-ef39524b6330","parent":{"ref":"EID6ee55b3a-0175-1000-d196-961ad4404d1c"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55c82-0175-1000-2897-8c41fd58f69d","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee55b3a-0175-1000-d196-961ad4404d1c"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4ec518d3-7b4b-46e0-8754-7ce20cc3d80b"},{"ref":"EIDf1688e71-1f71-44fb-b592-16f954a8c60f"},{"ref":"EIDae69f915-42d8-44c5-bfae-236a2ab863fc"}]},"parent":{"ref":"EID6ee55b3a-0175-1000-5023-1edff449ba76"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:08:46Z","duration":100,"status":"FAILED"}]},"parent":{"ref":"EID6ee52f4f-0175-1000-eaad-4fca9f922948"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:08:46Z","duration":328,"status":"FAILED"}]},"parent":{"ref":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:08:35Z","duration":11571,"status":"FAILED"},{"id":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed","testCaseResults":{"TestCaseResult":[{"id":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2","testStepResults":{"TestStepResult":[{"id":"EID6ee55c83-0175-1000-1d51-d2cf3db9c488","parent":{"ref":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55c83-0175-1000-ff18-ec0f431ba8b1","parent":{"ref":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:08:46Z","duration":100,"status":"PASSED"},{"id":"EID6ee55c83-0175-1000-1276-87b32b7bcd4b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55d48-0175-1000-65df-c103e51bd440","parent":{"ref":"EID6ee55c83-0175-1000-1276-87b32b7bcd4b"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55d48-0175-1000-435f-8a43e5dd7121","parent":{"ref":"EID6ee55c83-0175-1000-1276-87b32b7bcd4b"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:08:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee55d48-0175-1000-5585-490307259a80","parent":{"ref":"EID6ee55c83-0175-1000-1276-87b32b7bcd4b"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:08:46Z","duration":1,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID81627c4a-fc8e-41fa-8153-ee62bce692a5"},{"ref":"EID36a34ce8-4dca-474d-ac07-18e33e4a8df1"},{"ref":"EID0bf6f16b-7f95-48cc-91cb-ac4b44da038b"}]},"parent":{"ref":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:08:46Z","duration":91,"status":"PASSED"},{"id":"EID6ee55d49-0175-1000-8b3a-38ad2aa55790","attachments":{"attachment":{"ref":"EID2c0624ee-345c-405a-947f-f3855579252b"}},"parent":{"ref":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:08:46Z","duration":9,"status":"PASSED"},{"id":"EID6ee55d5c-0175-1000-b55c-54735b4a5815","parent":{"ref":"EID6ee55c83-0175-1000-738d-9ea2bcc6ceb2"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:08:46Z","duration":103,"status":"PASSED"}]},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:08:46Z","duration":320,"status":"PASSED"},{"id":"EID6ee55dc3-0175-1000-0607-9209694887e5","testStepResults":{"TestStepResult":[{"id":"EID6ee55dc3-0175-1000-8ee6-18c61916a485","parent":{"ref":"EID6ee55dc3-0175-1000-0607-9209694887e5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:08:46Z","duration":148,"status":"PASSED"},{"id":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55e6b-0175-1000-49ba-4ed9c6e51ac6","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:08:47Z","duration":14,"status":"FAILED"},{"id":"EID6ee55e79-0175-1000-027b-d793ab4dde72","parent":{"ref":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee55e79-0175-1000-7e68-53a0963c9711","parent":{"ref":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee55e79-0175-1000-4307-e0cda418cb95","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"},{"id":"EID6ee55e79-0175-1000-5ab7-2f02ab73fdfc","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee55dc3-0175-1000-bd9a-6d29450bd2b0"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9ad5d730-d29e-45f1-88f2-3670f975876d"},{"ref":"EID61f555c0-4c3f-447f-af33-7b0bc5e2591a"},{"ref":"EIDf947e940-4436-45eb-b14a-4142f6193b32"}]},"parent":{"ref":"EID6ee55dc3-0175-1000-0607-9209694887e5"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:08:46Z","duration":26,"status":"FAILED"}]},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:08:46Z","duration":182,"status":"FAILED"},{"id":"EID6ee55e79-0175-1000-8f75-55dcd195a39b","testStepResults":{"TestStepResult":{"id":"EID6ee55e7a-0175-1000-37a4-a50229e2e0c7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55ed6-0175-1000-d39f-310805eb079a","parent":{"ref":"EID6ee55e7a-0175-1000-37a4-a50229e2e0c7"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee55ed6-0175-1000-e4e1-b51f5a8792f5","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee55e7a-0175-1000-37a4-a50229e2e0c7"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:08:47Z","duration":11,"status":"FAILED"},{"id":"EID6ee55ee1-0175-1000-bf8e-c1e0c1b3d1e7","parent":{"ref":"EID6ee55e7a-0175-1000-37a4-a50229e2e0c7"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7e5681d0-5cb5-493a-82a0-fefa2c5fabff"},{"ref":"EID0f0003db-3444-4dce-8d0a-bfd91c767fc0"},{"ref":"EID407d0d56-dda9-4727-87bd-a7f024d4eff3"}]},"parent":{"ref":"EID6ee55e79-0175-1000-8f75-55dcd195a39b"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:08:47Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:08:47Z","duration":105,"status":"FAILED"},{"id":"EID6ee55ee2-0175-1000-408d-2bfc6080851e","testStepResults":{"TestStepResult":{"id":"EID6ee55ee2-0175-1000-3a31-d18616d19f11","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55f4c-0175-1000-cad3-2b42663ff903","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee55ee2-0175-1000-3a31-d18616d19f11"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"},{"id":"EID6ee55f4c-0175-1000-6e98-4722cf2a7211","parent":{"ref":"EID6ee55ee2-0175-1000-3a31-d18616d19f11"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee55f4c-0175-1000-fe22-cbc40d3e62e2","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee55ee2-0175-1000-3a31-d18616d19f11"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:08:47Z","duration":10,"status":"FAILED"},{"id":"EID6ee55f56-0175-1000-2fc9-10b9c41fe7bf","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee55ee2-0175-1000-3a31-d18616d19f11"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa21f0ffd-71be-4db7-a58c-ceb247e658d6"},{"ref":"EID59362fc9-2407-466f-8574-0b43c752ad52"},{"ref":"EID40c1da8f-72cf-4f5d-8b34-ee3019dfaddd"}]},"parent":{"ref":"EID6ee55ee2-0175-1000-408d-2bfc6080851e"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:08:47Z","duration":23,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:08:47Z","duration":126,"status":"FAILED"},{"id":"EID6ee55f60-0175-1000-ac19-3de3d1610c0c","testStepResults":{"TestStepResult":{"id":"EID6ee55f60-0175-1000-b9f6-5425ad81ad86","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee55fb1-0175-1000-7754-0c35768fcab4","parent":{"ref":"EID6ee55f60-0175-1000-b9f6-5425ad81ad86"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee55fb1-0175-1000-2dd5-2c5beca42f5b","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee55f60-0175-1000-b9f6-5425ad81ad86"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:08:47Z","duration":24,"status":"FAILED"},{"id":"EID6ee55fc9-0175-1000-a152-6461034de308","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee55f60-0175-1000-b9f6-5425ad81ad86"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:08:47Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID07171d3b-5961-4bb7-89af-790bd94272c8"},{"ref":"EID1dd655f2-a920-453b-8d84-2eb0074a7548"},{"ref":"EID47a6eae2-87b3-4c09-86a5-dfc969211d95"}]},"parent":{"ref":"EID6ee55f60-0175-1000-ac19-3de3d1610c0c"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:08:47Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:08:47Z","duration":106,"status":"FAILED"},{"id":"EID6ee55fca-0175-1000-745d-76f3c55fb0ea","testStepResults":{"TestStepResult":{"id":"EID6ee55fca-0175-1000-d3a7-8a4d1bd76585","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee56025-0175-1000-3a7a-75e7524b4612","parent":{"ref":"EID6ee55fca-0175-1000-d3a7-8a4d1bd76585"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee56025-0175-1000-bb3e-d97a37859e87","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee55fca-0175-1000-d3a7-8a4d1bd76585"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:08:47Z","duration":11,"status":"FAILED"},{"id":"EID6ee56030-0175-1000-1d7d-499a3eca5e93","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee55fca-0175-1000-d3a7-8a4d1bd76585"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID7e119ca5-b658-44dd-aa2f-b5b6e861de7a"},{"ref":"EIDc1d365f4-4ad4-4ad8-abc7-e6b985f23805"},{"ref":"EIDda0d2176-8fb7-4509-8884-fade9f1a9eda"}]},"parent":{"ref":"EID6ee55fca-0175-1000-745d-76f3c55fb0ea"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:08:47Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:08:47Z","duration":102,"status":"FAILED"},{"id":"EID6ee56030-0175-1000-4d93-f8ae6b526b1f","testStepResults":{"TestStepResult":{"id":"EID6ee56030-0175-1000-eeae-871ad7bad906","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee560a7-0175-1000-58c8-23d2b97b8728","parent":{"ref":"EID6ee56030-0175-1000-eeae-871ad7bad906"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee560a7-0175-1000-a66c-6ea96dfcd10c","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee56030-0175-1000-eeae-871ad7bad906"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:08:47Z","duration":12,"status":"FAILED"},{"id":"EID6ee560b3-0175-1000-aaa7-b01dacc4289c","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee56030-0175-1000-eeae-871ad7bad906"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"FAILED"},{"id":"EID6ee560b3-0175-1000-7a17-8678e3ec9cca","parent":{"ref":"EID6ee56030-0175-1000-eeae-871ad7bad906"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee560b3-0175-1000-2641-2e72bee47c23","parent":{"ref":"EID6ee56030-0175-1000-eeae-871ad7bad906"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0100b9b7-4097-4772-beba-f13448600257"},{"ref":"EIDf9c216b1-810c-4275-a34c-536fa856ae8d"},{"ref":"EID563085b0-cb80-4b91-81cd-5257fe826dbb"}]},"parent":{"ref":"EID6ee56030-0175-1000-4d93-f8ae6b526b1f"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:08:47Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:08:47Z","duration":132,"status":"FAILED"},{"id":"EID6ee560b4-0175-1000-d3e7-9db6d37aad94","testStepResults":{"TestStepResult":{"id":"EID6ee560b4-0175-1000-ade1-d006ba9bd6ed","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee56129-0175-1000-34df-7bca3d1447e8","parent":{"ref":"EID6ee560b4-0175-1000-ade1-d006ba9bd6ed"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee56129-0175-1000-de60-f1461bd3b1c0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee560b4-0175-1000-ade1-d006ba9bd6ed"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:08:47Z","duration":13,"status":"FAILED"},{"id":"EID6ee56136-0175-1000-5fb5-bfdb8b4b469d","parent":{"ref":"EID6ee560b4-0175-1000-ade1-d006ba9bd6ed"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6638898f-23a5-4b08-ac93-1a71e676e740"},{"ref":"EID2f31d388-5ba5-42b2-99b2-772fc768300b"},{"ref":"EID5380c020-efa1-409b-8985-90121641ce4e"}]},"parent":{"ref":"EID6ee560b4-0175-1000-d3e7-9db6d37aad94"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:08:47Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:08:47Z","duration":130,"status":"FAILED"},{"id":"EID6ee56136-0175-1000-62de-eef6e08ec154","testStepResults":{"TestStepResult":{"id":"EID6ee56136-0175-1000-63ed-b498cb5a5d5b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee561a6-0175-1000-b3b9-a99e5d40bfde","parent":{"ref":"EID6ee56136-0175-1000-63ed-b498cb5a5d5b"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee561a6-0175-1000-12c3-1c35da868e4d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee56136-0175-1000-63ed-b498cb5a5d5b"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:08:47Z","duration":11,"status":"FAILED"},{"id":"EID6ee561b1-0175-1000-92bb-5b215be0bbea","parent":{"ref":"EID6ee56136-0175-1000-63ed-b498cb5a5d5b"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:08:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5595386b-7403-46ad-b38f-c13d8c34ab68"},{"ref":"EIDfa8cfe2a-5870-4070-a1a6-b82b3a91ad20"},{"ref":"EID6a8a096f-e402-49e2-9a01-45f41f13c7e8"}]},"parent":{"ref":"EID6ee56136-0175-1000-62de-eef6e08ec154"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:08:47Z","duration":25,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:08:47Z","duration":123,"status":"FAILED"},{"id":"EID6ee561b2-0175-1000-3038-38b47b35c715","testStepResults":{"TestStepResult":{"id":"EID6ee561b2-0175-1000-9fae-a2ae0fd1006d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5621d-0175-1000-f1c5-9464859dd900","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee561b2-0175-1000-9fae-a2ae0fd1006d"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:08:48Z","duration":11,"status":"FAILED"},{"id":"EID6ee56228-0175-1000-2dcc-eada86d4ea1a","parent":{"ref":"EID6ee561b2-0175-1000-9fae-a2ae0fd1006d"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee56228-0175-1000-761f-4eaee66e407a","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee561b2-0175-1000-9fae-a2ae0fd1006d"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"FAILED"},{"id":"EID6ee56228-0175-1000-b22a-8e0e19fe3df4","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee561b2-0175-1000-9fae-a2ae0fd1006d"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1b4d50bd-e3f4-44f1-8a18-1a1806445a06"},{"ref":"EID0e6f3fab-14df-49ba-a1cc-67b2cd129e99"},{"ref":"EID0e7ad536-4f12-48dd-9c3f-fc8879f64559"}]},"parent":{"ref":"EID6ee561b2-0175-1000-3038-38b47b35c715"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:08:47Z","duration":24,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:08:47Z","duration":118,"status":"FAILED"},{"id":"EID6ee56228-0175-1000-3e7b-f10ebd0a6fc4","testStepResults":{"TestStepResult":{"id":"EID6ee56228-0175-1000-f796-5d1dae00d524","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee56289-0175-1000-fe05-105f821190e3","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee56228-0175-1000-f796-5d1dae00d524"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:08:48Z","duration":10,"status":"FAILED"},{"id":"EID6ee56293-0175-1000-e398-6c3a19f4b20c","parent":{"ref":"EID6ee56228-0175-1000-f796-5d1dae00d524"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee56293-0175-1000-7fda-3e5cb94bf2db","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee56228-0175-1000-f796-5d1dae00d524"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"FAILED"},{"id":"EID6ee56293-0175-1000-4c96-4a08eb7bd29b","parent":{"ref":"EID6ee56228-0175-1000-f796-5d1dae00d524"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd3ab533b-4a42-4762-92ef-d2e63c1c4c11"},{"ref":"EID122ca9df-1b33-4832-a8ce-22f323d9ea19"},{"ref":"EIDa6a826d9-ce3d-4fae-9cc6-f0c40a3d12e9"}]},"parent":{"ref":"EID6ee56228-0175-1000-3e7b-f10ebd0a6fc4"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:08:48Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:08:48Z","duration":139,"status":"FAILED"},{"id":"EID6ee562b3-0175-1000-e393-0f63cee5961d","testStepResults":{"TestStepResult":[{"id":"EID6ee562b3-0175-1000-d8e1-0512a8c253e2","parent":{"ref":"EID6ee562b3-0175-1000-e393-0f63cee5961d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee562b3-0175-1000-fbb5-387b92608c3d","parent":{"ref":"EID6ee562b3-0175-1000-e393-0f63cee5961d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:08:48Z","duration":197,"status":"PASSED"},{"id":"EID6ee562b3-0175-1000-6bd3-a35f2924bae7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee563f7-0175-1000-6d60-099971211ee7","parent":{"ref":"EID6ee562b3-0175-1000-6bd3-a35f2924bae7"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee563f7-0175-1000-7f6e-f05c3db176b9","parent":{"ref":"EID6ee562b3-0175-1000-6bd3-a35f2924bae7"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee563f7-0175-1000-0cbe-c81e7a20f213","parent":{"ref":"EID6ee562b3-0175-1000-6bd3-a35f2924bae7"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee563f7-0175-1000-4849-c5039877efc4","parent":{"ref":"EID6ee562b3-0175-1000-6bd3-a35f2924bae7"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4295e12d-4861-4e2d-9130-19009ec40455"},{"ref":"EID0776e991-2024-491e-9b11-a7f5024acdcc"},{"ref":"EIDcba7eb8d-c2f1-4de7-b616-5cb2f44e4890"}]},"parent":{"ref":"EID6ee562b3-0175-1000-e393-0f63cee5961d"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:08:48Z","duration":83,"status":"PASSED"},{"id":"EID6ee563f7-0175-1000-5ae7-ada223759577","attachments":{"attachment":{"ref":"EIDe12de7bc-f2c9-4567-9dcb-f05ccc13633d"}},"parent":{"ref":"EID6ee562b3-0175-1000-e393-0f63cee5961d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:08:48Z","duration":4,"status":"PASSED"},{"id":"EID6ee56408-0175-1000-657b-2e3e2de8b866","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee564b2-0175-1000-87e5-8ef6442a393d","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564b2-0175-1000-8896-158283afb2c1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:08:48Z","duration":38,"status":"FAILED"},{"id":"EID6ee564d8-0175-1000-bb06-6f6730b379f6","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564d8-0175-1000-3924-4fc3edaa3fd2","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564d8-0175-1000-f469-843f113f77cd","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564d8-0175-1000-0589-368b5928cbc2","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564d8-0175-1000-b16b-6c927e93acff","parent":{"ref":"EID6ee56408-0175-1000-657b-2e3e2de8b866"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID17f602f4-7b9f-4b0e-ab47-44ee3b70b98a"},{"ref":"EIDa55ca126-c699-4201-a3ec-c7252f0f3b96"},{"ref":"EIDd12d3383-aadc-477b-b2d6-31869dbc30c6"}]},"parent":{"ref":"EID6ee562b3-0175-1000-e393-0f63cee5961d"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:08:48Z","duration":27,"status":"FAILED"}]},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:08:48Z","duration":549,"status":"FAILED"},{"id":"EID6ee564d8-0175-1000-e712-2f6049cc4b7c","testStepResults":{"TestStepResult":[{"id":"EID6ee564d8-0175-1000-b237-a136074d378a","parent":{"ref":"EID6ee564d8-0175-1000-e712-2f6049cc4b7c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee564d8-0175-1000-ca7d-c56d37457f7f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee565c6-0175-1000-2db2-61123b6f8a24","parent":{"ref":"EID6ee564d8-0175-1000-ca7d-c56d37457f7f"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee565c6-0175-1000-67a8-3963c9450ff4","parent":{"ref":"EID6ee564d8-0175-1000-ca7d-c56d37457f7f"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee565c6-0175-1000-4a5e-9d9b3a78b86e","parent":{"ref":"EID6ee564d8-0175-1000-ca7d-c56d37457f7f"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee565c6-0175-1000-5496-aba00c48d603","parent":{"ref":"EID6ee564d8-0175-1000-ca7d-c56d37457f7f"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:08:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID628ddabc-013c-452d-a38a-16899e36f125"},{"ref":"EIDeb4a0b9b-d996-4413-9562-fcbe77264c56"},{"ref":"EID49ca9ead-3b31-452c-b9bc-af985928d144"}]},"parent":{"ref":"EID6ee564d8-0175-1000-e712-2f6049cc4b7c"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:08:48Z","duration":142,"status":"PASSED"},{"id":"EID6ee565c6-0175-1000-7b17-ab9beff1d269","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee565ee-0175-1000-9750-895f1d3345b8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee566c5-0175-1000-c7df-210fc9812e37","parent":{"ref":"EID6ee565ee-0175-1000-9750-895f1d3345b8"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee566c5-0175-1000-50dc-af7c8f3de750","parent":{"ref":"EID6ee565ee-0175-1000-9750-895f1d3345b8"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee566c5-0175-1000-2539-2cd93a6f0d38","parent":{"ref":"EID6ee565ee-0175-1000-9750-895f1d3345b8"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcff4535f-0aaa-494e-a8da-dbfa51ff6bae"},{"ref":"EID23993101-d165-474c-814c-1c444f38c427"},{"ref":"EID0df5f893-ccae-4817-b30b-3e443a024123"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:49Z","duration":147,"status":"PASSED"},{"id":"EID6ee566c7-0175-1000-b5c9-33d2b29dc41c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee567a1-0175-1000-c0fd-f8e4e14fda63","parent":{"ref":"EID6ee566c7-0175-1000-b5c9-33d2b29dc41c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee567a1-0175-1000-92a4-68869d08f547","parent":{"ref":"EID6ee566c7-0175-1000-b5c9-33d2b29dc41c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee567a1-0175-1000-feaf-0f5c42bab9a7","parent":{"ref":"EID6ee566c7-0175-1000-b5c9-33d2b29dc41c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0a0fa6e3-13fd-4b20-971d-6bc47d527d74"},{"ref":"EID5ce9ed4b-793f-4cfa-a379-7c8284640151"},{"ref":"EID1b970ee4-bb41-4ce3-be5e-240746246fbc"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:49Z","duration":148,"status":"PASSED"},{"id":"EID6ee567a2-0175-1000-7c4b-e68b2b0ab084","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5686c-0175-1000-939d-6e7fbc0d9c7f","parent":{"ref":"EID6ee567a2-0175-1000-7c4b-e68b2b0ab084"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee5686c-0175-1000-f9ec-9b02f92092a7","parent":{"ref":"EID6ee567a2-0175-1000-7c4b-e68b2b0ab084"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee5686c-0175-1000-d526-fbe11132a97e","parent":{"ref":"EID6ee567a2-0175-1000-7c4b-e68b2b0ab084"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdffaad93-b351-4c21-9ad8-14b07df065ad"},{"ref":"EID2bc72225-9cee-47b1-a75e-ab0609e5bcc2"},{"ref":"EID1b9644f5-3eca-4fd0-9ebe-f1d01981321d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:49Z","duration":153,"status":"PASSED"}]},"parent":{"ref":"EID6ee564d8-0175-1000-e712-2f6049cc4b7c"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:08:48Z","duration":678,"status":"PASSED"},{"id":"EID6ee5686d-0175-1000-6808-4489c7e3e661","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee568db-0175-1000-0dae-bc354ee50328","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee5686d-0175-1000-6808-4489c7e3e661"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:08:49Z","duration":11,"status":"FAILED"},{"id":"EID6ee568e6-0175-1000-9046-ff3d92e4312d","parent":{"ref":"EID6ee5686d-0175-1000-6808-4489c7e3e661"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee568e6-0175-1000-bbf8-62250d0a66c7","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee5686d-0175-1000-6808-4489c7e3e661"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"FAILED"},{"id":"EID6ee568e6-0175-1000-a267-fa6d2491cafc","parent":{"ref":"EID6ee5686d-0175-1000-6808-4489c7e3e661"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6f32b6e2-0ee9-43cf-bc1c-04e9d5e1ca3e"},{"ref":"EID23db9eb1-8892-476d-81ea-1100d62a59d7"},{"ref":"EIDed75c26a-95c7-4562-b75a-3defbccbcf25"}]},"parent":{"ref":"EID6ee564d8-0175-1000-e712-2f6049cc4b7c"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:08:49Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:08:48Z","duration":1046,"status":"FAILED"},{"id":"EID6ee568ee-0175-1000-d5d6-a74ae617cb9b","testStepResults":{"TestStepResult":{"id":"EID6ee568ee-0175-1000-dec5-738411713332","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee56957-0175-1000-d890-76690daed2aa","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee568ee-0175-1000-dec5-738411713332"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:08:49Z","duration":10,"status":"FAILED"},{"id":"EID6ee56962-0175-1000-e77a-d00c8eb32b93","parent":{"ref":"EID6ee568ee-0175-1000-dec5-738411713332"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee56962-0175-1000-358f-5d2a9e28235d","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee568ee-0175-1000-dec5-738411713332"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"FAILED"},{"id":"EID6ee56962-0175-1000-3f4d-5955c711f519","parent":{"ref":"EID6ee568ee-0175-1000-dec5-738411713332"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID45f39844-d51d-4a24-ac16-808ac2f2d22b"},{"ref":"EID9662d696-c060-4a2e-b41e-492342d5c314"},{"ref":"EID6140f64f-6b64-4798-861f-8295917203e5"}]},"parent":{"ref":"EID6ee568ee-0175-1000-d5d6-a74ae617cb9b"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:08:49Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6ee55c82-0175-1000-6909-9bd7c5ae94ed"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:08:49Z","duration":116,"status":"FAILED"}]},"parent":{"ref":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:08:46Z","duration":3296,"status":"FAILED"},{"id":"EID6ee56962-0175-1000-24a8-ea67eb31a674","testCaseResults":{"TestCaseResult":[{"id":"EID6ee56962-0175-1000-90f2-8e4e97850607","testStepResults":{"TestStepResult":{"id":"EID6ee56962-0175-1000-a4a9-2ca64420fc39","parent":{"ref":"EID6ee56962-0175-1000-90f2-8e4e97850607"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696a-0175-1000-924f-2fb85f318d3d","testStepResults":{"TestStepResult":{"id":"EID6ee5696a-0175-1000-0428-14e2f23aa1f8","parent":{"ref":"EID6ee5696a-0175-1000-924f-2fb85f318d3d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696a-0175-1000-5358-6a7aad8f56ce","testStepResults":{"TestStepResult":{"id":"EID6ee5696a-0175-1000-3d0b-c191de417aae","parent":{"ref":"EID6ee5696a-0175-1000-5358-6a7aad8f56ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696a-0175-1000-cef2-c455991ee5cf","testStepResults":{"TestStepResult":{"id":"EID6ee5696a-0175-1000-22b5-f5e2fda9aeff","parent":{"ref":"EID6ee5696a-0175-1000-cef2-c455991ee5cf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696b-0175-1000-2bc0-aebc1186d772","testStepResults":{"TestStepResult":{"id":"EID6ee5696b-0175-1000-6dfb-41475e05186d","parent":{"ref":"EID6ee5696b-0175-1000-2bc0-aebc1186d772"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696b-0175-1000-ed8c-e3fc8ebbe352","testStepResults":{"TestStepResult":{"id":"EID6ee5696b-0175-1000-66e6-9b32bbeeabc7","parent":{"ref":"EID6ee5696b-0175-1000-ed8c-e3fc8ebbe352"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:08:49Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee5696b-0175-1000-741a-f2a3a5380d0f","testStepResults":{"TestStepResult":{"id":"EID6ee56972-0175-1000-a334-77231d1d96de","parent":{"ref":"EID6ee5696b-0175-1000-741a-f2a3a5380d0f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:08:49Z","duration":599,"status":"SKIPPED"}},"parent":{"ref":"EID6ee56962-0175-1000-24a8-ea67eb31a674"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:08:49Z","duration":7,"status":"SKIPPED"}]},"parent":{"ref":"EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:08:49Z","duration":16,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID0c39ae9e-86bd-4284-87ca-a1a827fb99c6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0c39ae9e-86bd-4284-87ca-a1a827fb99c6"}},{"type":"ServiceResponse","id":"EID23993101-d165-474c-814c-1c444f38c427","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID23993101-d165-474c-814c-1c444f38c427"}},{"type":"ServiceResponse","id":"EID9662d696-c060-4a2e-b41e-492342d5c314","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID9662d696-c060-4a2e-b41e-492342d5c314"}},{"type":"ServiceResponse","id":"EIDf7e66833-8ba6-4f40-abe3-6b6e185a2b27","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDf7e66833-8ba6-4f40-abe3-6b6e185a2b27"}},{"type":"ServiceEndpoint","id":"EID3a70ce77-55fa-4d03-b82e-cf08689606a2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd0b882d4-9150-418e-9edf-56b84f491702","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDd0b882d4-9150-418e-9edf-56b84f491702"}},{"type":"ServiceResponse","id":"EIDf1688e71-1f71-44fb-b592-16f954a8c60f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDf1688e71-1f71-44fb-b592-16f954a8c60f"}},{"type":"GetParameter","id":"EIDae69f915-42d8-44c5-bfae-236a2ab863fc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5b1b8847-e7f4-4bdc-bd76-9173d464e8e4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID1b4d50bd-e3f4-44f1-8a18-1a1806445a06","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDcba7eb8d-c2f1-4de7-b616-5cb2f44e4890","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID271c2ac9-cdbf-421f-8f87-34752ef3b85a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID271c2ac9-cdbf-421f-8f87-34752ef3b85a"}},{"type":"ServiceResponse","id":"EIDdf46c38a-2fe0-48f7-a21d-34c630a9c3e0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDdf46c38a-2fe0-48f7-a21d-34c630a9c3e0"}},{"type":"GetParameter","id":"EID43272bac-37b5-4048-8ebf-07a811fe9047","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb833942a-687b-43b8-91f9-da40fb6f4c32","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDb833942a-687b-43b8-91f9-da40fb6f4c32"}},{"type":"ServiceEndpoint","id":"EID1a980f68-c441-4765-bc5f-e3267d1ff7ff","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6f32b6e2-0ee9-43cf-bc1c-04e9d5e1ca3e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8993ac53-fd78-4221-8bc4-7ed3879fd618","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0ad58f3a-5694-45b4-b411-153f7228f99c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0ad58f3a-5694-45b4-b411-153f7228f99c"}},{"type":"Error","id":"EIDa9116851-cd15-4ed8-bdc8-e04e598ef23e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDa9116851-cd15-4ed8-bdc8-e04e598ef23e"}},{"type":"GetParameter","id":"EIDa2d07460-3d7b-4357-9603-30fafb59d764","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd0ecb0b1-9893-4ae5-a4ad-7a6c41d7969b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDd0ecb0b1-9893-4ae5-a4ad-7a6c41d7969b"}},{"type":"Error","id":"EIDc403881e-d3f8-4547-ae73-4bd6169aea98","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc403881e-d3f8-4547-ae73-4bd6169aea98"}},{"type":"Error","id":"EID296a26b4-3af8-4cdd-8b56-2a73646b35ff","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID296a26b4-3af8-4cdd-8b56-2a73646b35ff"}},{"type":"ServiceEndpoint","id":"EIDbdbd137e-ccba-4d35-b8b3-110fa52f06f8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID407d0d56-dda9-4727-87bd-a7f024d4eff3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID8e77b15b-7f68-4415-94cf-860cb27ef7b9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID8e77b15b-7f68-4415-94cf-860cb27ef7b9"}},{"type":"ServiceResponse","id":"EID59362fc9-2407-466f-8574-0b43c752ad52","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID59362fc9-2407-466f-8574-0b43c752ad52"}},{"type":"GetParameter","id":"EIDed75c26a-95c7-4562-b75a-3defbccbcf25","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID841026c7-b9fb-4c35-9536-8f23f7466224","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID841026c7-b9fb-4c35-9536-8f23f7466224"}},{"type":"ServiceResponse","id":"EIDc1d365f4-4ad4-4ad8-abc7-e6b985f23805","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc1d365f4-4ad4-4ad8-abc7-e6b985f23805"}},{"type":"GetParameter","id":"EID5045ea76-0f5d-4bee-852c-346bb3b07d21","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDe82c0c00-b194-4ff1-b354-ee51b80f0c62","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDcbed42d7-dd71-440c-8c87-3a854a5146e7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID934e55dc-61a4-48e7-9064-9931d2ec7cd9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID934e55dc-61a4-48e7-9064-9931d2ec7cd9"}},{"type":"ServiceEndpoint","id":"EIDf0ed7715-8bc4-4aa8-9d00-3411aaf58f15","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID75830ec0-20c4-4400-abb3-e738e4e09606","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa5d84bdf-8483-47f2-b00f-ba71fb70ef6e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID81627c4a-fc8e-41fa-8153-ee62bce692a5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDa22b7072-9365-4024-8ac4-2b8015a13cdb","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDa22b7072-9365-4024-8ac4-2b8015a13cdb"}},{"type":"Error","id":"EIDbe7a7e7e-3690-4ef2-b5d9-3f665babe2b6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDbe7a7e7e-3690-4ef2-b5d9-3f665babe2b6"}},{"type":"ServiceResponse","id":"EIDfe73886a-0d1e-4faa-8ffe-69ec80282d27","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDfe73886a-0d1e-4faa-8ffe-69ec80282d27"}},{"type":"GetParameter","id":"EID40c1da8f-72cf-4f5d-8b34-ee3019dfaddd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID4d3b0704-5873-4c5f-beb1-b9d56113ec36","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID2c0624ee-345c-405a-947f-f3855579252b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID2c0624ee-345c-405a-947f-f3855579252b"}},{"type":"Message","id":"EID1d3d7dfc-5d35-4687-b820-70c928917011","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1d3d7dfc-5d35-4687-b820-70c928917011"}},{"type":"ServiceResponse","id":"EID86f14b58-5679-46c9-aed4-ccf0742c67b6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID86f14b58-5679-46c9-aed4-ccf0742c67b6"}},{"type":"GetParameter","id":"EID0df5f893-ccae-4817-b30b-3e443a024123","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDe213a84c-4aec-44b0-bcbb-a1d9fa092c51","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0100b9b7-4097-4772-beba-f13448600257","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID044d35c4-10fb-4787-98c4-72ebeb8f6a86","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID044d35c4-10fb-4787-98c4-72ebeb8f6a86"}},{"type":"GetParameter","id":"EIDf226cc2d-7b1b-4c3b-850b-a62105ddcc28","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5380c020-efa1-409b-8985-90121641ce4e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDc4f3c105-e8a3-4d75-a00b-a286714ba53e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc4f3c105-e8a3-4d75-a00b-a286714ba53e"}},{"type":"Message","id":"EID99b53cad-f9b0-44d2-b557-9973b41c05f9","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID99b53cad-f9b0-44d2-b557-9973b41c05f9"}},{"type":"ServiceResponse","id":"EID2f31d388-5ba5-42b2-99b2-772fc768300b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID2f31d388-5ba5-42b2-99b2-772fc768300b"}},{"type":"ServiceResponse","id":"EID46f61fe4-3967-41b1-9410-775d69662e21","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID46f61fe4-3967-41b1-9410-775d69662e21"}},{"type":"ServiceEndpoint","id":"EID2389e58f-9ff1-4314-bc63-4573c7745446","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID45f39844-d51d-4a24-ac16-808ac2f2d22b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6a8a096f-e402-49e2-9a01-45f41f13c7e8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID1b9644f5-3eca-4fd0-9ebe-f1d01981321d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID7e5681d0-5cb5-493a-82a0-fefa2c5fabff","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6140f64f-6b64-4798-861f-8295917203e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDe60377a0-35db-4f36-9240-7cc7901fb011","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDcb4a5167-a142-48ce-892c-f7e177b3f6a3","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDcb4a5167-a142-48ce-892c-f7e177b3f6a3"}},{"type":"ServiceResponse","id":"EID37e90eff-6588-4cbc-a116-9147f28e71d1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID37e90eff-6588-4cbc-a116-9147f28e71d1"}},{"type":"ServiceResponse","id":"EID5ce9ed4b-793f-4cfa-a379-7c8284640151","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID5ce9ed4b-793f-4cfa-a379-7c8284640151"}},{"type":"ServiceResponse","id":"EID04204c10-f469-4a5f-93c5-d64fd7cba844","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID04204c10-f469-4a5f-93c5-d64fd7cba844"}},{"type":"Error","id":"EID68809e65-310a-4415-9bf3-f0c64ef4eda4","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID68809e65-310a-4415-9bf3-f0c64ef4eda4"}},{"type":"GetParameter","id":"EID1b970ee4-bb41-4ce3-be5e-240746246fbc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID731a5e67-a010-4afb-aea6-2762e3d5ec8d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID731a5e67-a010-4afb-aea6-2762e3d5ec8d"}},{"type":"ServiceResponse","id":"EID3316eaaf-a23e-464b-b34c-12bdf8ae1f28","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID3316eaaf-a23e-464b-b34c-12bdf8ae1f28"}},{"type":"ServiceResponse","id":"EID0776e991-2024-491e-9b11-a7f5024acdcc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0776e991-2024-491e-9b11-a7f5024acdcc"}},{"type":"GetParameter","id":"EIDf947e940-4436-45eb-b14a-4142f6193b32","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"LogFile","id":"EIDd73ef9e3-b4c2-45fa-a65e-6ce026e8fef3","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDd73ef9e3-b4c2-45fa-a65e-6ce026e8fef3"}},{"type":"ServiceEndpoint","id":"EID63f6d945-e17b-4213-a1bf-6708a2faf411","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EID34d32479-0a99-40ee-a840-4a475a0fe183","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID34d32479-0a99-40ee-a840-4a475a0fe183"}},{"type":"Message","id":"EID1586ef60-e22c-4012-bb11-bc7dcfc43d33","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1586ef60-e22c-4012-bb11-bc7dcfc43d33"}},{"type":"GetParameter","id":"EID25bcac62-4262-4331-983c-3ad27c98d886","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa55ca126-c699-4201-a3ec-c7252f0f3b96","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDa55ca126-c699-4201-a3ec-c7252f0f3b96"}},{"type":"ServiceEndpoint","id":"EID3d405c42-254b-48e1-aab5-43cfb03aa075","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDdcee22ea-6255-4295-b7af-eb9226a3f92f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDdcee22ea-6255-4295-b7af-eb9226a3f92f"}},{"type":"Message","id":"EID7963e19d-003b-476a-916e-ff450a9b1710","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID7963e19d-003b-476a-916e-ff450a9b1710"}},{"type":"ServiceResponse","id":"EID23db9eb1-8892-476d-81ea-1100d62a59d7","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID23db9eb1-8892-476d-81ea-1100d62a59d7"}},{"type":"ServiceEndpoint","id":"EIDcbd8b781-669d-45ea-9d02-b8d4e543f3ff","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8de00516-a1ff-40a5-acc9-b83091103d35","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID8de00516-a1ff-40a5-acc9-b83091103d35"}},{"type":"Message","id":"EID4e24e2ed-90b4-48d4-9a29-141b5e79df18","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID4e24e2ed-90b4-48d4-9a29-141b5e79df18"}},{"type":"Error","id":"EID07d1ec59-8da6-4b48-ad93-afae56387d4f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID07d1ec59-8da6-4b48-ad93-afae56387d4f"}},{"type":"Message","id":"EID12d99314-b287-48a4-98c8-ed878f3ee06e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID12d99314-b287-48a4-98c8-ed878f3ee06e"}},{"type":"ServiceEndpoint","id":"EIDda6d9319-d285-472c-aa35-4326dd231cbb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7ab3870d-04bb-490d-a383-d0fad690608a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0dab4842-6ccf-4b19-bdd6-37dd82b0e91c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0dab4842-6ccf-4b19-bdd6-37dd82b0e91c"}},{"type":"Message","id":"EID1e6c27b2-5787-487e-8087-c2693857e9cf","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1e6c27b2-5787-487e-8087-c2693857e9cf"}},{"type":"GetParameter","id":"EID49ca9ead-3b31-452c-b9bc-af985928d144","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Error","id":"EID91a67e04-54bf-492b-8bbc-d6d11a0e219f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID91a67e04-54bf-492b-8bbc-d6d11a0e219f"}},{"type":"ServiceResponse","id":"EID18c15dcd-8b2d-4636-b53b-f91c6c77bb0a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID18c15dcd-8b2d-4636-b53b-f91c6c77bb0a"}},{"type":"GetParameter","id":"EIDa6a826d9-ce3d-4fae-9cc6-f0c40a3d12e9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd791d598-13d9-403a-83bd-89d7bab045e3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID17f602f4-7b9f-4b0e-ab47-44ee3b70b98a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6410864b-1c5c-4301-a1c1-f09826fef53a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd3ab533b-4a42-4762-92ef-d2e63c1c4c11","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID122ca9df-1b33-4832-a8ce-22f323d9ea19","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID122ca9df-1b33-4832-a8ce-22f323d9ea19"}},{"type":"ServiceEndpoint","id":"EID4295e12d-4861-4e2d-9130-19009ec40455","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID580b5fd4-596f-45a6-b2c3-30acc9195f50","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5595386b-7403-46ad-b38f-c13d8c34ab68","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID06416a7c-2a9c-4ffe-8406-71c107a0089c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID06416a7c-2a9c-4ffe-8406-71c107a0089c"}},{"type":"ServiceEndpoint","id":"EIDa21f0ffd-71be-4db7-a58c-ceb247e658d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID0e7ad536-4f12-48dd-9c3f-fc8879f64559","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDf9c216b1-810c-4275-a34c-536fa856ae8d","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDf9c216b1-810c-4275-a34c-536fa856ae8d"}},{"type":"ServiceResponse","id":"EID33f866dd-fa83-488c-be77-33b630f417c8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID33f866dd-fa83-488c-be77-33b630f417c8"}},{"type":"Message","id":"EID87734727-7f0b-4366-8d96-5eda7fd05347","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID87734727-7f0b-4366-8d96-5eda7fd05347"}},{"type":"ServiceEndpoint","id":"EID7e119ca5-b658-44dd-aa2f-b5b6e861de7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDcff4535f-0aaa-494e-a8da-dbfa51ff6bae","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDc1517eb5-f305-497f-b260-242531de7e6e","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc1517eb5-f305-497f-b260-242531de7e6e"}},{"type":"ServiceEndpoint","id":"EID628ddabc-013c-452d-a38a-16899e36f125","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID129323c6-a0b6-4841-9a6e-8c91fcb752e9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2652ae58-3645-4f08-9d9b-04e47ec403fd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID2652ae58-3645-4f08-9d9b-04e47ec403fd"}},{"type":"GetParameter","id":"EIDd12d3383-aadc-477b-b2d6-31869dbc30c6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDb4c98fac-9ca0-4f0b-8d03-ff177585bc2a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDb4c98fac-9ca0-4f0b-8d03-ff177585bc2a"}},{"type":"ServiceEndpoint","id":"EIDab0747ba-ff28-4a7e-8fde-1ca7ed3bcbe0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc5b110d6-7f81-4018-9db1-e4e4ff8a7085","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc5b110d6-7f81-4018-9db1-e4e4ff8a7085"}},{"type":"GetParameter","id":"EIDe7ae59a8-4ad8-450a-8a8e-ae0928c82b28","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfa8cfe2a-5870-4070-a1a6-b82b3a91ad20","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDfa8cfe2a-5870-4070-a1a6-b82b3a91ad20"}},{"type":"ServiceEndpoint","id":"EIDdffaad93-b351-4c21-9ad8-14b07df065ad","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID47a6eae2-87b3-4c09-86a5-dfc969211d95","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDd19b1dee-6211-4fb6-94bc-a12684a01f4a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDd19b1dee-6211-4fb6-94bc-a12684a01f4a"}},{"type":"Message","id":"EID1b92d38c-4d89-4b39-b913-131cfd16038a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1b92d38c-4d89-4b39-b913-131cfd16038a"}},{"type":"ServiceResponse","id":"EID496f06a5-f434-4602-b42a-c51e11d3489a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID496f06a5-f434-4602-b42a-c51e11d3489a"}},{"type":"ServiceResponse","id":"EID08e5bdb4-b7a8-4e0e-8d08-9043b77d2382","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID08e5bdb4-b7a8-4e0e-8d08-9043b77d2382"}},{"type":"GetParameter","id":"EID563085b0-cb80-4b91-81cd-5257fe826dbb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd9087d10-d162-45fb-9c39-6efb604f8911","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID61f555c0-4c3f-447f-af33-7b0bc5e2591a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID61f555c0-4c3f-447f-af33-7b0bc5e2591a"}},{"type":"Message","id":"EIDcea740c3-ea2c-478b-8b49-2e11f7d5f3f9","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDcea740c3-ea2c-478b-8b49-2e11f7d5f3f9"}},{"type":"ServiceEndpoint","id":"EIDcb0e6f31-274c-444f-9b8b-7173a01bfd3e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc62f3b16-bbbc-4aec-8ce0-676c7a95d49c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDc62f3b16-bbbc-4aec-8ce0-676c7a95d49c"}},{"type":"ServiceResponse","id":"EID36a34ce8-4dca-474d-ac07-18e33e4a8df1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID36a34ce8-4dca-474d-ac07-18e33e4a8df1"}},{"type":"GetParameter","id":"EIDda0d2176-8fb7-4509-8884-fade9f1a9eda","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDda67f46c-d752-476c-9be2-797fb6781bcf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0f0003db-3444-4dce-8d0a-bfd91c767fc0","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0f0003db-3444-4dce-8d0a-bfd91c767fc0"}},{"type":"Message","id":"EID6ca6c7cc-1af0-4b0e-8d7b-8752306329b2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID6ca6c7cc-1af0-4b0e-8d7b-8752306329b2"}},{"type":"GetParameter","id":"EIDa62f1d9c-ecf4-4ada-b182-04dffebb46c7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0e6f3fab-14df-49ba-a1cc-67b2cd129e99","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID0e6f3fab-14df-49ba-a1cc-67b2cd129e99"}},{"type":"ServiceResponse","id":"EID2bc72225-9cee-47b1-a75e-ab0609e5bcc2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID2bc72225-9cee-47b1-a75e-ab0609e5bcc2"}},{"type":"ServiceEndpoint","id":"EIDa8ae92fd-7990-4d40-b079-648d6596d71d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1dd655f2-a920-453b-8d84-2eb0074a7548","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1dd655f2-a920-453b-8d84-2eb0074a7548"}},{"type":"ServiceEndpoint","id":"EID0a0fa6e3-13fd-4b20-971d-6bc47d527d74","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID6638898f-23a5-4b08-ac93-1a71e676e740","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDf1d9ad19-e306-4a7e-a958-d006b67fec16","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDf1d9ad19-e306-4a7e-a958-d006b67fec16"}},{"type":"Message","id":"EIDb8f42376-94ae-4ff1-b6dd-ed6bd1f527f8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDb8f42376-94ae-4ff1-b6dd-ed6bd1f527f8"}},{"type":"GetParameter","id":"EIDd25545c1-d893-4f5f-b4e9-33e5cf8fa9e6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDcdbc0433-8245-424f-b1ff-8b531d5040ec","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDcdbc0433-8245-424f-b1ff-8b531d5040ec"}},{"type":"ServiceEndpoint","id":"EID07171d3b-5961-4bb7-89af-790bd94272c8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID1f5dc917-2daa-4e26-9baa-5423f2cc39e1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EID1f5dc917-2daa-4e26-9baa-5423f2cc39e1"}},{"type":"ServiceEndpoint","id":"EID99eedc89-d4f6-4a18-a8e4-8625aed87e75","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDeb4a0b9b-d996-4413-9562-fcbe77264c56","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDeb4a0b9b-d996-4413-9562-fcbe77264c56"}},{"type":"Message","id":"EIDe12de7bc-f2c9-4567-9dcb-f05ccc13633d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDe12de7bc-f2c9-4567-9dcb-f05ccc13633d"}},{"type":"GetParameter","id":"EID0bf6f16b-7f95-48cc-91cb-ac4b44da038b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDbf7c67c9-5d8f-4975-b128-4f9058ea1a22","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDeb3407ee-b159-4f62-9e95-55c37b9bae0e/Attachments/EIDbf7c67c9-5d8f-4975-b128-4f9058ea1a22"}},{"type":"ServiceEndpoint","id":"EIDa2411980-2df6-4500-8401-747cdb02507b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID4ec518d3-7b4b-46e0-8754-7ce20cc3d80b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9ad5d730-d29e-45f1-88f2-3670f975876d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:08:34Z","duration":15542,"status":"FAILED"}}}}}
11:09:13.753 [print] EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd
11:09:13.753 [print] FAILED
11:09:13.754 [print] FAILED
11:09:13.754 [print] Conformance Class Download Service - Pre-defined Atom
11:09:13.755 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd.json
11:09:13.755 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd.json
11:09:13.755 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4fd3b517-c5c1-4fda-9ce8-0b9b501fd3dd/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:13.782 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:09:13.782 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:13:04.827 [print] testing url:https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities
11:13:04.828 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:05.242 response time in milliseconds: 413.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:05.254 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:05.653 response time in milliseconds: 398.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:05.656 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:10:53.839 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:10:53.840 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:54.249 response time in milliseconds: 408.92 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:54 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422380FCCB3CE5 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:10:54.010 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:54.426 response time in milliseconds: 416.10 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:54 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422381075DCC56 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:10:54.426 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:15:20.277 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:15:20.278 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:20.673 response time in milliseconds: 394.74 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:19 GMT 1 < X-Cnection: [close, close]
11:15:20.678 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:21.078 response time in milliseconds: 399.43 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:21 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:43.134 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}}}
11:04:43.138 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}}}
11:04:53.172 response time in milliseconds: 9269.36
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:52 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:04:50 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/c95bbc17-3bd6-470e-949a-7aa01f2a1f87.json","testRuns":{"TestRun":{"id":"EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:49.673Z","testTasks":{"TestTask":{"id":"EID41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a","parent":{"ref":"EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID4e949ef8-0206-460f-9d7a-0b8bd1469bdc"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID4e949ef8-0206-460f-9d7a-0b8bd1469bdc","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:43.583Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:47.683Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:04:53.179 [print] EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87
11:04:53.180 [print] UNDEFINED
11:04:53.182 [print] Conformance Class Download Service - Pre-defined Atom
11:04:53.185 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/c95bbc17-3bd6-470e-949a-7aa01f2a1f87.json
11:04:53.186 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/log
11:04:53.186 [print] statuspath TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87
11:04:53.188 [print] progresspath TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
11:04:53.197 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:53.707 response time in milliseconds: 509.90
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:04:53 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"4","max":"5","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized"]}
11:04:53.708 [print] {
"val": "4",
"max": "5",
"log": [
"28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)",
"28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:04:49 - Preparing 1 Test Task:",
"28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)",
"28.10.2020 11:04:49 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:04:49 - with parameters: ",
"28.10.2020 11:04:49 - etf.testcases = *",
"28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:04:49 - Setting state to CREATED",
"28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z",
"28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:04:52 - Project Properties: ",
"28.10.2020 11:04:52 - etf.testcases - * ",
"28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ",
"28.10.2020 11:04:52 - username - ",
"28.10.2020 11:04:52 - authUser - ",
"28.10.2020 11:04:52 - authMethod - basic ",
"28.10.2020 11:04:52 - TestRunTask initialized"
]
}
11:04:53.709 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:54.222 response time in milliseconds: 512.54
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:04:54 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized"]}
11:04:54.224 retry condition not satisfied: response.val == response.max
11:04:54.224 sleeping before retry #1
11:04:59.225 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:59.749 response time in milliseconds: 518.26
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:04:59 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized"]}
11:04:59.750 retry condition not satisfied: response.val == response.max
11:04:59.750 sleeping before retry #2
11:05:04.752 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:05.267 response time in milliseconds: 514.21
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:05:05 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"49","max":"50","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized"]}
11:05:05.268 retry condition not satisfied: response.val == response.max
11:05:05.268 sleeping before retry #3
11:05:10.269 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:10.787 response time in milliseconds: 512.88
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:05:10 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"78","max":"79","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized"]}
11:05:10.788 retry condition not satisfied: response.val == response.max
11:05:10.788 sleeping before retry #4
11:05:15.789 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:16.586 response time in milliseconds: 793.73
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:05:16 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"119","max":"120","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized","28.10.2020 11:05:12 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:16.586 retry condition not satisfied: response.val == response.max
11:05:16.587 sleeping before retry #5
11:05:21.588 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:22.112 response time in milliseconds: 519.78
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:05:22 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"145","max":"146","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized","28.10.2020 11:05:12 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:22.113 retry condition not satisfied: response.val == response.max
11:05:22.113 sleeping before retry #6
11:05:27.114 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:27.638 response time in milliseconds: 519.48
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:05:27 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized","28.10.2020 11:05:12 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:26 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:05:27.638 retry condition not satisfied: response.val == response.max
11:05:27.638 sleeping before retry #7
11:05:32.640 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:33.156 response time in milliseconds: 515.23
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:05:33 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:04:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:49 UTC 2020)","28.10.2020 11:04:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:49 - Preparing 1 Test Task:","28.10.2020 11:04:49 - TestTask 1 (41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a)","28.10.2020 11:04:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:49 - with parameters: ","28.10.2020 11:04:49 - etf.testcases = *","28.10.2020 11:04:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:49 - Setting state to CREATED","28.10.2020 11:04:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:50 - Starting TestRun.c95bbc17-3bd6-470e-949a-7aa01f2a1f87 at 2020-10-28T11:04:52Z","28.10.2020 11:04:52 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:52 - Project Properties: ","28.10.2020 11:04:52 - etf.testcases - * ","28.10.2020 11:04:52 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:04:52 - username - ","28.10.2020 11:04:52 - authUser - ","28.10.2020 11:04:52 - authMethod - basic ","28.10.2020 11:04:52 - TestRunTask initialized","28.10.2020 11:05:12 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:26 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:05:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:05:33.159 retry condition not satisfied: response.val == response.max
11:05:33.160 sleeping before retry #8
11:05:38.161 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:40.168 response time in milliseconds: 2006.09
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:05:40 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:05:40.170 retry condition satisfied
11:05:40.171 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:05:40.173 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:04.972 response time in milliseconds: 23698.82
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Cache-Control: public, max-age=120
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:06:03 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Last-Modified: Wed, 28 Oct 2020 11:05:34 GMT
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/c95bbc17-3bd6-470e-949a-7aa01f2a1f87.json","testRuns":{"TestRun":{"id":"EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:49.673Z","testTasks":{"TestTask":{"id":"EID41803a68-c3b4-4883-b2d3-7b3e1c2cdd0a","parent":{"ref":"EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID4e949ef8-0206-460f-9d7a-0b8bd1469bdc"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID4e949ef8-0206-460f-9d7a-0b8bd1469bdc","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:43.583Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:47.683Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e","testObject":{"ref":"EID4e949ef8-0206-460f-9d7a-0b8bd1469bdc"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee1c9b1-0175-1000-7d2d-4d62ff441c0a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1c9b1-0175-1000-d718-e053d94d8b4d","testStepResults":{"TestStepResult":[{"id":"EID6ee1c9b2-0175-1000-e2b0-dee1329fa352","parent":{"ref":"EID6ee1c9b1-0175-1000-d718-e053d94d8b4d"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:04:52Z","duration":11,"status":"PASSED"},{"id":"EID6ee1c9be-0175-1000-cbbe-4ba2bedfbd0a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1cd65-0175-1000-9d00-89374ddf5b96","parent":{"ref":"EID6ee1c9be-0175-1000-cbbe-4ba2bedfbd0a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cd65-0175-1000-834a-2c5fe8cada40","parent":{"ref":"EID6ee1c9be-0175-1000-cbbe-4ba2bedfbd0a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cd65-0175-1000-5fc4-4804ada62530","parent":{"ref":"EID6ee1c9be-0175-1000-cbbe-4ba2bedfbd0a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cd65-0175-1000-3a1c-8071f617e242","parent":{"ref":"EID6ee1c9be-0175-1000-cbbe-4ba2bedfbd0a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID69344057-8357-40b6-b789-9f93e45bd1ff"},{"ref":"EID927de8ae-c2d5-43cf-b388-ce1561d28b0c"},{"ref":"EIDde5d25b6-5ee4-44aa-a69c-6a27d85790a7"}]},"parent":{"ref":"EID6ee1c9b1-0175-1000-d718-e053d94d8b4d"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:04:52Z","duration":839,"status":"PASSED"}]},"parent":{"ref":"EID6ee1c9b1-0175-1000-7d2d-4d62ff441c0a"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:04:52Z","duration":956,"status":"PASSED"},{"id":"EID6ee1cd6e-0175-1000-c527-b5963da16475","testStepResults":{"TestStepResult":{"id":"EID6ee1cd6e-0175-1000-119c-00112a3fdbc0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ce9c-0175-1000-b6f8-234578733c4e","parent":{"ref":"EID6ee1cd6e-0175-1000-119c-00112a3fdbc0"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ce9c-0175-1000-d002-06d09207a37d","parent":{"ref":"EID6ee1cd6e-0175-1000-119c-00112a3fdbc0"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ce9c-0175-1000-41e1-541d2f6d5e07","parent":{"ref":"EID6ee1cd6e-0175-1000-119c-00112a3fdbc0"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb0a5e3ad-e0b3-4438-b11f-7d818ed0ac50"},{"ref":"EIDdb24ad2d-f5f2-4b80-a020-cc40f4751862"},{"ref":"EID42c0042d-ed7e-40b2-86eb-39b032eb8726"}]},"parent":{"ref":"EID6ee1cd6e-0175-1000-c527-b5963da16475"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:04:53Z","duration":227,"status":"PASSED"}},"parent":{"ref":"EID6ee1c9b1-0175-1000-7d2d-4d62ff441c0a"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:04:53Z","duration":302,"status":"PASSED"}]},"parent":{"ref":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:04:52Z","duration":1259,"status":"PASSED"},{"id":"EID6ee1ce9c-0175-1000-310d-88df3abd7244","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1ce9c-0175-1000-75e8-bdbf65888267","testStepResults":{"TestStepResult":[{"id":"EID6ee1ce9c-0175-1000-6e99-988923f44e1c","parent":{"ref":"EID6ee1ce9c-0175-1000-75e8-bdbf65888267"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:04:53Z","duration":237,"status":"PASSED"},{"id":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1d0f3-0175-1000-7cd8-40037ce8daba","parent":{"ref":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:04:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d0f3-0175-1000-8e91-1ff1984932c7","parent":{"ref":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:04:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d0f3-0175-1000-6aba-b366e17e3d36","parent":{"ref":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:04:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d0f3-0175-1000-2ae0-b03a643f28e6","parent":{"ref":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:04:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d0f3-0175-1000-e81c-1efd0e790701","parent":{"ref":"EID6ee1cea6-0175-1000-2ee1-7387cb31e000"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:04:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID64b59a0a-cba7-4f23-88b3-d89139e11d89"},{"ref":"EID17f30054-282f-43b5-a523-a238bd6e090c"},{"ref":"EID53342e07-5a8e-43ff-9b06-e82c70747f69"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-75e8-bdbf65888267"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:04:53Z","duration":413,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:04:53Z","duration":665,"status":"PASSED"},{"id":"EID6ee1d13c-0175-1000-eaf9-96430aed48d0","testStepResults":{"TestStepResult":[{"id":"EID6ee1d13c-0175-1000-20d4-95bb84895c17","attachments":{"attachment":[{"ref":"EID043780cc-ca1c-4e50-8a99-436d0804ded1"},{"ref":"EID46287357-c9d1-42ec-a3f4-26aeedf9a66b"}]},"parent":{"ref":"EID6ee1d13c-0175-1000-eaf9-96430aed48d0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:04:54Z","duration":448,"status":"PASSED"},{"id":"EID6ee1d336-0175-1000-e0da-c4b9d4bda496","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1d761-0175-1000-aa2d-e410dd14c870","parent":{"ref":"EID6ee1d336-0175-1000-e0da-c4b9d4bda496"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d761-0175-1000-17fe-c979bb49ee79","parent":{"ref":"EID6ee1d336-0175-1000-e0da-c4b9d4bda496"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d761-0175-1000-f78c-4addedc378bb","parent":{"ref":"EID6ee1d336-0175-1000-e0da-c4b9d4bda496"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d761-0175-1000-f75e-aa3055fec2bf","parent":{"ref":"EID6ee1d336-0175-1000-e0da-c4b9d4bda496"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0e4d695d-2059-48d4-88e8-97ea6a1e9143"},{"ref":"EID01a72594-3e38-468c-8c0c-6fe81abaedec"},{"ref":"EID9ca97ca2-0953-4584-a50c-f6285c1a076c"}]},"parent":{"ref":"EID6ee1d13c-0175-1000-eaf9-96430aed48d0"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:04:54Z","duration":950,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:04:54Z","duration":1581,"status":"PASSED"},{"id":"EID6ee1d769-0175-1000-b7b9-66c3f7dbca4e","testStepResults":{"TestStepResult":[{"id":"EID6ee1d769-0175-1000-fbb3-674265c93ac9","attachments":{"attachment":[{"ref":"EID3f8e2d7b-c861-4e34-a014-26796be50688"},{"ref":"EIDef6885d3-8745-492b-82ba-7bb8bb781ca8"}]},"parent":{"ref":"EID6ee1d769-0175-1000-b7b9-66c3f7dbca4e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:04:55Z","duration":250,"status":"PASSED"},{"id":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1da6d-0175-1000-e092-48ec18a21d65","parent":{"ref":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1da6d-0175-1000-6929-fc63da245c57","parent":{"ref":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1da6d-0175-1000-da1e-5aab872b4061","parent":{"ref":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1da6d-0175-1000-6de0-16ee0b73efd1","parent":{"ref":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1da6d-0175-1000-f7cb-b8e004c8ef60","parent":{"ref":"EID6ee1d898-0175-1000-2e5f-c7a4f1b26657"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb2da79e0-a4bc-488d-9b43-f700b1427133"},{"ref":"EID01ce9c8a-ab43-42df-b5fd-ae48d91eb1cf"},{"ref":"EID8f9acdcb-5600-4b9e-b2c2-077afd7713ac"}]},"parent":{"ref":"EID6ee1d769-0175-1000-b7b9-66c3f7dbca4e"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:04:56Z","duration":368,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:04:55Z","duration":772,"status":"PASSED"},{"id":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e","testStepResults":{"TestStepResult":[{"id":"EID6ee1da6d-0175-1000-c157-94ac16ea6bf0","attachments":{"attachment":[{"ref":"EIDd83c2bc3-fa43-4533-803b-7ac6efb102b8"},{"ref":"EID417810c5-3328-4544-9be3-7d0be803d152"}]},"parent":{"ref":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:04:56Z","duration":449,"status":"PASSED"},{"id":"EID6ee1dc85-0175-1000-6f54-961c2b999a43","parent":{"ref":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dc85-0175-1000-53e2-122117d1dada","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1dfe0-0175-1000-3951-f5659e191525","parent":{"ref":"EID6ee1dc85-0175-1000-53e2-122117d1dada"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfe0-0175-1000-d445-649b0d5d32bc","parent":{"ref":"EID6ee1dc85-0175-1000-53e2-122117d1dada"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfe0-0175-1000-39d9-41927cca377c","parent":{"ref":"EID6ee1dc85-0175-1000-53e2-122117d1dada"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfe0-0175-1000-b797-cd6a4a56ffd5","parent":{"ref":"EID6ee1dc85-0175-1000-53e2-122117d1dada"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID08b4fbcd-5fc5-41a9-9bac-d423776345e3"},{"ref":"EIDf1afe642-6728-4917-b6fe-4195df32f2e3"},{"ref":"EID4c898528-6fc1-4d03-a8e8-5a432bf3f642"}]},"parent":{"ref":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:04:57Z","duration":758,"status":"PASSED"},{"id":"EID6ee1dfe0-0175-1000-52c5-e0b2539a9026","attachments":{"attachment":{"ref":"EIDa803453b-91b8-40d3-917e-e9ecbf149ca7"}},"parent":{"ref":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:04:58Z","duration":1,"status":"PASSED"},{"id":"EID6ee1dffa-0175-1000-d17c-60b351ef1120","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e332-0175-1000-634a-1139c313487e","parent":{"ref":"EID6ee1dffa-0175-1000-d17c-60b351ef1120"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e332-0175-1000-13c0-b497c66862a3","parent":{"ref":"EID6ee1dffa-0175-1000-d17c-60b351ef1120"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e332-0175-1000-05f3-27bf205588ce","parent":{"ref":"EID6ee1dffa-0175-1000-d17c-60b351ef1120"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e332-0175-1000-a203-de961f0ad908","parent":{"ref":"EID6ee1dffa-0175-1000-d17c-60b351ef1120"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e332-0175-1000-7b8d-6500ee143001","parent":{"ref":"EID6ee1dffa-0175-1000-d17c-60b351ef1120"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcbbb746b-4c2d-4b39-a120-9710896644c7"},{"ref":"EIDd5acaf16-cc09-4ff1-aacd-159278d1e794"},{"ref":"EIDcd3089a3-3173-48d0-a4fc-991065ad6e15"}]},"parent":{"ref":"EID6ee1da6d-0175-1000-cb0a-ec7db3380d3e"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:04:58Z","duration":582,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:04:56Z","duration":2245,"status":"PASSED"},{"id":"EID6ee1e332-0175-1000-2105-632f7b3ca26c","testStepResults":{"TestStepResult":[{"id":"EID6ee1e332-0175-1000-7560-a82acf44d29c","attachments":{"attachment":[{"ref":"EID2d31dfc3-8e9c-4bb6-bdbe-42f4f5330a21"},{"ref":"EID55acd594-dcff-4b66-80e1-96e12d8fd01d"}]},"parent":{"ref":"EID6ee1e332-0175-1000-2105-632f7b3ca26c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:04:58Z","duration":486,"status":"PASSED"},{"id":"EID6ee1e553-0175-1000-b200-fbc842905076","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e781-0175-1000-490f-8157916d34ef","parent":{"ref":"EID6ee1e553-0175-1000-b200-fbc842905076"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e781-0175-1000-b166-56d2c8d1ffab","parent":{"ref":"EID6ee1e553-0175-1000-b200-fbc842905076"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e781-0175-1000-b4f6-6858c911b487","parent":{"ref":"EID6ee1e553-0175-1000-b200-fbc842905076"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e781-0175-1000-538a-362fe2ef2001","parent":{"ref":"EID6ee1e553-0175-1000-b200-fbc842905076"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3b818479-62d2-4d12-b54b-abd26f5b2d1a"},{"ref":"EID123a7496-0f6c-463c-a764-e2ed86806c81"},{"ref":"EIDa78dc98f-dcda-47c1-9e14-640de3fc12f5"}]},"parent":{"ref":"EID6ee1e332-0175-1000-2105-632f7b3ca26c"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:04:59Z","duration":417,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:04:58Z","duration":1111,"status":"PASSED"},{"id":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6","testStepResults":{"TestStepResult":[{"id":"EID6ee1e78a-0175-1000-7be0-8fd01339b2b1","attachments":{"attachment":[{"ref":"EID55b61e79-55dc-403f-9514-3599288cc207"},{"ref":"EID3c65ba26-c541-4af6-8655-05ca2c55a98d"}]},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:05:00Z","duration":261,"status":"PASSED"},{"id":"EID6ee1e8c8-0175-1000-eec8-6befdf5b6375","parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e8c8-0175-1000-7225-949a9a411151","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1eb9e-0175-1000-da2a-f71002b1e6b9","parent":{"ref":"EID6ee1e8c8-0175-1000-7225-949a9a411151"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1eb9e-0175-1000-4ed5-c1938a879221","parent":{"ref":"EID6ee1e8c8-0175-1000-7225-949a9a411151"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1eb9e-0175-1000-51b7-985c1a834cc5","parent":{"ref":"EID6ee1e8c8-0175-1000-7225-949a9a411151"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1eb9e-0175-1000-6bb3-5f38c9fd9da4","parent":{"ref":"EID6ee1e8c8-0175-1000-7225-949a9a411151"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6677a8af-181b-4d96-895c-89766a73ac12"},{"ref":"EIDf9001d1f-2925-473a-8087-b7170e64a2fd"},{"ref":"EID79cb800e-288f-4031-a5dd-c66e2b094b0a"}]},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:05:00Z","duration":623,"status":"PASSED"},{"id":"EID6ee1eb9e-0175-1000-b368-90665b870cef","attachments":{"attachment":{"ref":"EIDf6b8100b-28ce-4de3-a540-2eeab7961586"}},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ebe5-0175-1000-c81a-132f59a00972","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ec93-0175-1000-489a-a94c67c830c6","parent":{"ref":"EID6ee1ebe5-0175-1000-c81a-132f59a00972"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ec93-0175-1000-f9c7-681e0320cc4c","parent":{"ref":"EID6ee1ebe5-0175-1000-c81a-132f59a00972"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ec93-0175-1000-231b-db39b75ff843","parent":{"ref":"EID6ee1ebe5-0175-1000-c81a-132f59a00972"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3ceaf0a1-4823-4a6d-b124-9c29813a0be5"},{"ref":"EIDb7108008-eb64-4016-a9ec-4d47daeab854"},{"ref":"EIDfe16966c-f508-4eb4-a9ac-f15063a50d0d"}]},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:05:01Z","duration":86,"status":"PASSED"},{"id":"EID6ee1ec94-0175-1000-ebc9-6fd9bb5e5f71","attachments":{"attachment":{"ref":"EID0cdeb08e-9eec-4b91-bf21-be2cbc7a0005"}},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ecc1-0175-1000-dce1-353234ba0d3d","attachments":{"attachment":{"ref":"EID2e372ad4-ea55-4414-9423-a8959a2fc979"}},"parent":{"ref":"EID6ee1e78a-0175-1000-c581-1bb53a1c54e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:05:00Z","duration":1347,"status":"PASSED"},{"id":"EID6ee1eccd-0175-1000-b4b2-e3c23fdf612f","testStepResults":{"TestStepResult":[{"id":"EID6ee1eccd-0175-1000-f22c-0e0eb023fa22","attachments":{"attachment":[{"ref":"EID00b4527d-e591-47e0-b7e8-6ea0583ad7d7"},{"ref":"EID66c12fa5-4d24-401a-a326-af938cceb6bf"}]},"parent":{"ref":"EID6ee1eccd-0175-1000-b4b2-e3c23fdf612f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":1014,"status":"PASSED"},{"id":"EID6ee1f156-0175-1000-3546-676d2acd4cbc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f640-0175-1000-d3e2-c1c5dc50d7e3","parent":{"ref":"EID6ee1f156-0175-1000-3546-676d2acd4cbc"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f640-0175-1000-dfc0-d18275425b46","parent":{"ref":"EID6ee1f156-0175-1000-3546-676d2acd4cbc"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f640-0175-1000-3161-7eef42956730","parent":{"ref":"EID6ee1f156-0175-1000-3546-676d2acd4cbc"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f640-0175-1000-0804-9ee6006be247","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee1f156-0175-1000-3546-676d2acd4cbc"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDd181d402-73ff-4101-9a28-a2764e768599"},{"ref":"EID50ae0ca0-2d0e-4176-9914-c06b37c47b80"},{"ref":"EIDc1d03c2a-9b59-43aa-bac4-98af1dc82a05"}]},"parent":{"ref":"EID6ee1eccd-0175-1000-b4b2-e3c23fdf612f"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:05:02Z","duration":1042,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:05:01Z","duration":2419,"status":"PASSED_MANUAL"},{"id":"EID6ee1f641-0175-1000-0a4b-e883493008e5","testStepResults":{"TestStepResult":{"id":"EID6ee1f641-0175-1000-dc66-f41cb443c31e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1fb62-0175-1000-9230-8fe6f33349c3","parent":{"ref":"EID6ee1f641-0175-1000-dc66-f41cb443c31e"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fb62-0175-1000-b800-d0e953b8bfdb","parent":{"ref":"EID6ee1f641-0175-1000-dc66-f41cb443c31e"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fb62-0175-1000-cd5b-8b2957e0f563","parent":{"ref":"EID6ee1f641-0175-1000-dc66-f41cb443c31e"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fb62-0175-1000-d86d-5a36ab46c95a","parent":{"ref":"EID6ee1f641-0175-1000-dc66-f41cb443c31e"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID04d7a905-4722-4e6d-9f28-589594955218"},{"ref":"EID58ea1b75-8a7e-4433-92b1-c5756c2e0945"},{"ref":"EIDa6d7b02e-a9fa-44ce-bfd8-67db9be6a2b4"}]},"parent":{"ref":"EID6ee1f641-0175-1000-0a4b-e883493008e5"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:05:03Z","duration":1074,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:05:03Z","duration":1318,"status":"PASSED"},{"id":"EID6ee1fb68-0175-1000-9045-ab8809aee466","testStepResults":{"TestStepResult":{"id":"EID6ee1fb68-0175-1000-bc08-5e3ae57d9a92","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1fe9e-0175-1000-75e2-1839530df9f1","parent":{"ref":"EID6ee1fb68-0175-1000-bc08-5e3ae57d9a92"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fe9f-0175-1000-094e-76d8da05352e","parent":{"ref":"EID6ee1fb68-0175-1000-bc08-5e3ae57d9a92"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fe9f-0175-1000-bce4-5167939f0458","parent":{"ref":"EID6ee1fb68-0175-1000-bc08-5e3ae57d9a92"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fe9f-0175-1000-fe32-6e462c95135d","parent":{"ref":"EID6ee1fb68-0175-1000-bc08-5e3ae57d9a92"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd7e37d65-e783-4195-bed0-504ae7807dcb"},{"ref":"EID7fe7866e-b4e5-4292-9011-9ffbf1136f39"},{"ref":"EIDf65a04e7-138f-425e-a60b-5b6c33785fe6"}]},"parent":{"ref":"EID6ee1fb68-0175-1000-9045-ab8809aee466"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:05:05Z","duration":660,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:05:05Z","duration":823,"status":"PASSED"},{"id":"EID6ee1fe9f-0175-1000-5534-df7c5b087518","testStepResults":{"TestStepResult":[{"id":"EID6ee1fe9f-0175-1000-0d51-c9ef334c22e6","attachments":{"attachment":[{"ref":"EID71de321e-995e-4536-8b80-2403f76c796c"},{"ref":"EID4b4a15b1-d399-4ac1-a678-4b3835ea14df"},{"ref":"EIDb31abbe9-5f4d-4da9-9e54-e30f6b2acdaa"},{"ref":"EIDd66d3a5a-e77e-4b78-bbb8-5681107779ef"},{"ref":"EID1703c5b1-2fc1-4be4-be7a-71c38e3a700b"},{"ref":"EIDbd103640-90c9-4bf5-b09e-208a446e622c"},{"ref":"EID4d642931-8d56-44e1-bfec-92a55a72aaca"},{"ref":"EID2a139ac5-b137-4f51-8436-1380c3a33c85"},{"ref":"EIDaabde014-2d88-4ed1-904e-10bd96a46e07"},{"ref":"EIDf3c82693-59f0-403f-916f-480d8bdebaa6"},{"ref":"EID9dcf19bb-ffb3-492f-bc03-1dda911912e0"},{"ref":"EIDbfa1ae89-5b94-4b71-9da3-4b91c63dc6e3"}]},"parent":{"ref":"EID6ee1fe9f-0175-1000-5534-df7c5b087518"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:05:05Z","duration":1323,"status":"PASSED"},{"id":"EID6ee20514-0175-1000-cd6b-329e8a5b240b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2070a-0175-1000-a92c-9f995c24dd7e","parent":{"ref":"EID6ee20514-0175-1000-cd6b-329e8a5b240b"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2070a-0175-1000-1887-767ca92391d6","parent":{"ref":"EID6ee20514-0175-1000-cd6b-329e8a5b240b"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2070a-0175-1000-d923-18c93922125d","parent":{"ref":"EID6ee20514-0175-1000-cd6b-329e8a5b240b"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2070a-0175-1000-268f-5e4b4b285da5","parent":{"ref":"EID6ee20514-0175-1000-cd6b-329e8a5b240b"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee2070a-0175-1000-433d-48655f86350e","parent":{"ref":"EID6ee20514-0175-1000-cd6b-329e8a5b240b"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4f52fdbd-d566-4de4-97fa-1767514312e1"},{"ref":"EID243a5325-591a-48f0-9935-29e394976941"},{"ref":"EIDdb2f09be-534b-45be-9c6c-cf1e278d0eec"}]},"parent":{"ref":"EID6ee1fe9f-0175-1000-5534-df7c5b087518"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:05:07Z","duration":326,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:05:05Z","duration":2193,"status":"PASSED"},{"id":"EID6ee20730-0175-1000-235d-2d0a66ade21a","testStepResults":{"TestStepResult":{"id":"EID6ee20730-0175-1000-eee8-3699d9304586","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20a84-0175-1000-7e20-7e0b8c222d82","parent":{"ref":"EID6ee20730-0175-1000-eee8-3699d9304586"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20a84-0175-1000-621d-47005556a578","parent":{"ref":"EID6ee20730-0175-1000-eee8-3699d9304586"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20a84-0175-1000-0604-91b73e93c949","parent":{"ref":"EID6ee20730-0175-1000-eee8-3699d9304586"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee20a84-0175-1000-7a17-5cfc70896ee7","parent":{"ref":"EID6ee20730-0175-1000-eee8-3699d9304586"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2559475c-2721-46bc-9b7d-1ef977518db0"},{"ref":"EIDd268bf34-a07f-4aa3-9bc6-398f914b0ad4"},{"ref":"EIDbb47a59d-050b-4e38-960c-b5999aaf0fc2"}]},"parent":{"ref":"EID6ee20730-0175-1000-235d-2d0a66ade21a"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:05:08Z","duration":747,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:05:08Z","duration":852,"status":"PASSED"},{"id":"EID6ee20a84-0175-1000-d568-22881b8904af","testStepResults":{"TestStepResult":{"id":"EID6ee20a84-0175-1000-c50b-6266086b1ffc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20cda-0175-1000-214f-0659e7f4b6bc","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20cda-0175-1000-5190-146b6727b019","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20cda-0175-1000-7e76-1fe80260ab71","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20cda-0175-1000-2cbb-3ab3429f622d","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20cda-0175-1000-bcf6-648fa735303f","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee20cda-0175-1000-cfb8-acc4c4bbe84a","parent":{"ref":"EID6ee20a84-0175-1000-c50b-6266086b1ffc"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:05:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbc189bc4-3eeb-4997-9d7a-f9ca4501e612"},{"ref":"EIDdd615e3b-2bd5-4605-b9a0-fb0bbdc87081"},{"ref":"EID6636da7a-04d2-4a99-bdb8-ba336168d35c"}]},"parent":{"ref":"EID6ee20a84-0175-1000-d568-22881b8904af"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:05:08Z","duration":399,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:05:08Z","duration":598,"status":"PASSED"},{"id":"EID6ee20cde-0175-1000-16eb-fa59168873bd","testStepResults":{"TestStepResult":{"id":"EID6ee20cde-0175-1000-db01-c9a99abbac74","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20eb3-0175-1000-5262-b2372a57ac94","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-e6a2-45cff9a852ba","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-6319-628ca3b73bbd","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-3e61-73308beac88a","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-91c1-e5f234a63dee","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-d475-67b3d8407541","parent":{"ref":"EID6ee20cde-0175-1000-db01-c9a99abbac74"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaeff1bda-d807-4986-9ffc-0786f2857f4a"},{"ref":"EID8c7bbe41-15d4-4454-972f-3e64f8e697f1"},{"ref":"EID16cfd46f-9b85-48c4-b162-53d60f27eb52"}]},"parent":{"ref":"EID6ee20cde-0175-1000-16eb-fa59168873bd"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:05:09Z","duration":287,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:05:09Z","duration":469,"status":"PASSED"},{"id":"EID6ee20eb3-0175-1000-bc7b-c23696054051","testStepResults":{"TestStepResult":{"id":"EID6ee20eb3-0175-1000-efd7-a5d33a7a6002","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2101c-0175-1000-b3a3-bba944f70c77","parent":{"ref":"EID6ee20eb3-0175-1000-efd7-a5d33a7a6002"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee2101c-0175-1000-62a9-2b7d63a85ec8","parent":{"ref":"EID6ee20eb3-0175-1000-efd7-a5d33a7a6002"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee2101c-0175-1000-56f2-d8937bedbf8b","parent":{"ref":"EID6ee20eb3-0175-1000-efd7-a5d33a7a6002"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee2101c-0175-1000-d38e-0b3d46dfa2bd","parent":{"ref":"EID6ee20eb3-0175-1000-efd7-a5d33a7a6002"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDac671c52-7066-4ec1-9b69-ae3830308107"},{"ref":"EIDa4dc2033-9469-4587-b15d-d4eefa796820"},{"ref":"EID70ad4409-970e-412c-945b-5d6b93db41d0"}]},"parent":{"ref":"EID6ee20eb3-0175-1000-bc7b-c23696054051"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":212,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:05:10Z","duration":361,"status":"PASSED"},{"id":"EID6ee2101c-0175-1000-fd8b-9905c115a0ca","testStepResults":{"TestStepResult":[{"id":"EID6ee2101c-0175-1000-a8c6-f399aaed35cb","attachments":{"attachment":[{"ref":"EIDdd30ea41-4f60-4937-b780-721a0411a6f2"},{"ref":"EID23b6e168-1740-4503-9564-44361495598f"},{"ref":"EID9df59927-9e0a-4b09-8f42-dcb6c7429eec"},{"ref":"EID27b42ac2-5706-4a3c-b003-b25220bf12d9"}]},"parent":{"ref":"EID6ee2101c-0175-1000-fd8b-9905c115a0ca"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:05:10Z","duration":506,"status":"PASSED"},{"id":"EID6ee2125b-0175-1000-f83c-66dac8f26b32","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee214f3-0175-1000-df51-48c1753a3d73","parent":{"ref":"EID6ee2125b-0175-1000-f83c-66dac8f26b32"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee214f3-0175-1000-fc2a-81f8381afe79","parent":{"ref":"EID6ee2125b-0175-1000-f83c-66dac8f26b32"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee214f3-0175-1000-e1bc-b461603116de","parent":{"ref":"EID6ee2125b-0175-1000-f83c-66dac8f26b32"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:05:11Z","duration":1,"status":"PASSED"},{"id":"EID6ee214f4-0175-1000-dd88-ecd2fd4aab40","parent":{"ref":"EID6ee2125b-0175-1000-f83c-66dac8f26b32"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4a575bd-a617-4b3e-aa5a-463eac1e3837"},{"ref":"EIDa2bd79f3-cd86-4eba-98dd-259839895acb"},{"ref":"EID7d09abb9-914f-4237-a507-c9d1874180f4"}]},"parent":{"ref":"EID6ee2101c-0175-1000-fd8b-9905c115a0ca"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:05:11Z","duration":534,"status":"PASSED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:05:10Z","duration":1240,"status":"PASSED"},{"id":"EID6ee214f4-0175-1000-c3ef-4fd5bccfa031","testStepResults":{"TestStepResult":{"id":"EID6ee214f4-0175-1000-da33-1d33fcbe8e88","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2163c-0175-1000-00ff-cc893d044325","parent":{"ref":"EID6ee214f4-0175-1000-da33-1d33fcbe8e88"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee2163c-0175-1000-733b-753dba48b064","parent":{"ref":"EID6ee214f4-0175-1000-da33-1d33fcbe8e88"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee2163c-0175-1000-78df-3e94883894d5","parent":{"ref":"EID6ee214f4-0175-1000-da33-1d33fcbe8e88"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee2163c-0175-1000-66f9-c8aeafe9d9f0","parent":{"ref":"EID6ee214f4-0175-1000-da33-1d33fcbe8e88"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4fe4bdae-30bc-436e-b5cd-6abb6cc8f3b4"},{"ref":"EID3e61cad3-5461-401c-a292-4f8e1b9d5695"},{"ref":"EIDbd7f4be0-fd05-401c-a67a-863d6e1afcf0"}]},"parent":{"ref":"EID6ee214f4-0175-1000-c3ef-4fd5bccfa031"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:05:11Z","duration":223,"status":"PASSED"}},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:05:11Z","duration":328,"status":"PASSED"},{"id":"EID6ee2163c-0175-1000-5b02-6dad8e459eda","testStepResults":{"TestStepResult":[{"id":"EID6ee2163c-0175-1000-3326-7266565e5681","parent":{"ref":"EID6ee2163c-0175-1000-5b02-6dad8e459eda"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee2163d-0175-1000-73d4-d03d8c3b2594","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21829-0175-1000-d452-be255319141d","parent":{"ref":"EID6ee2163d-0175-1000-73d4-d03d8c3b2594"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21829-0175-1000-e2bd-94d073247fca","parent":{"ref":"EID6ee2163d-0175-1000-73d4-d03d8c3b2594"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21829-0175-1000-75d7-aa9836ebd72d","parent":{"ref":"EID6ee2163d-0175-1000-73d4-d03d8c3b2594"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21829-0175-1000-2821-5db0a08ad375","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee2163d-0175-1000-73d4-d03d8c3b2594"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID0f9afe73-563c-4eaa-b2f0-cff2a8e472cf"},{"ref":"EIDc086d973-0e76-49f5-96be-b6af262396bb"},{"ref":"EID2619bcdc-6bed-4dc0-9765-19e262948c84"}]},"parent":{"ref":"EID6ee2163c-0175-1000-5b02-6dad8e459eda"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:05:11Z","duration":285,"status":"FAILED"}]},"parent":{"ref":"EID6ee1ce9c-0175-1000-310d-88df3abd7244"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:05:11Z","duration":502,"status":"FAILED"}]},"parent":{"ref":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:04:53Z","duration":18838,"status":"FAILED"},{"id":"EID6ee21832-0175-1000-ef60-479621527571","testCaseResults":{"TestCaseResult":[{"id":"EID6ee21832-0175-1000-3451-92d4741dcbd8","testStepResults":{"TestStepResult":[{"id":"EID6ee21832-0175-1000-43c5-34a511424c33","parent":{"ref":"EID6ee21832-0175-1000-3451-92d4741dcbd8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21833-0175-1000-4404-6df672e91cd4","parent":{"ref":"EID6ee21832-0175-1000-3451-92d4741dcbd8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":223,"status":"PASSED"},{"id":"EID6ee21833-0175-1000-9c43-03c2bcbe65bf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee218f6-0175-1000-e2ff-2502180e6779","parent":{"ref":"EID6ee21833-0175-1000-9c43-03c2bcbe65bf"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee218f7-0175-1000-3b6d-846337840211","parent":{"ref":"EID6ee21833-0175-1000-9c43-03c2bcbe65bf"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee218f7-0175-1000-044d-d6b4c26053e0","parent":{"ref":"EID6ee21833-0175-1000-9c43-03c2bcbe65bf"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID41d57b50-3878-4bf9-842b-93ad5f3048d2"},{"ref":"EID49534472-97dc-4420-a298-f97b0c9c2cd1"},{"ref":"EID45bd2eee-d91e-4ad4-981a-a6e7b1ac0d3d"}]},"parent":{"ref":"EID6ee21832-0175-1000-3451-92d4741dcbd8"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:05:12Z","duration":45,"status":"PASSED"},{"id":"EID6ee218f7-0175-1000-a8de-3ab5362a76d0","attachments":{"attachment":{"ref":"EIDee1a9a35-2d6a-486a-81f9-734f4a27fcf9"}},"parent":{"ref":"EID6ee21832-0175-1000-3451-92d4741dcbd8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee2190d-0175-1000-46fb-1d8506b4f437","parent":{"ref":"EID6ee21832-0175-1000-3451-92d4741dcbd8"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:05:12Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:05:12Z","duration":241,"status":"PASSED"},{"id":"EID6ee21923-0175-1000-71bc-872a414c9a7b","testStepResults":{"TestStepResult":[{"id":"EID6ee21923-0175-1000-e0f3-6cbe0d92c51c","parent":{"ref":"EID6ee21923-0175-1000-71bc-872a414c9a7b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":227,"status":"PASSED"},{"id":"EID6ee21923-0175-1000-9f22-423713012ee1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee219f9-0175-1000-55de-9bee193cdf2f","parent":{"ref":"EID6ee21923-0175-1000-9f22-423713012ee1"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee219f9-0175-1000-ca47-d057b34afed6","parent":{"ref":"EID6ee21923-0175-1000-9f22-423713012ee1"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee219f9-0175-1000-c77c-448344582de2","parent":{"ref":"EID6ee21923-0175-1000-9f22-423713012ee1"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee219f9-0175-1000-1b8e-f256bd80a323","parent":{"ref":"EID6ee21923-0175-1000-9f22-423713012ee1"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee219f9-0175-1000-e6b5-d5b272acbf92","parent":{"ref":"EID6ee21923-0175-1000-9f22-423713012ee1"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcdf322e1-c599-4e83-95e0-8769db93fd6c"},{"ref":"EID39085966-d34e-4981-a585-edce543e4924"},{"ref":"EIDd68aa5f4-65fd-4d09-8e8b-59ec3daec105"}]},"parent":{"ref":"EID6ee21923-0175-1000-71bc-872a414c9a7b"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:05:12Z","duration":145,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:05:12Z","duration":214,"status":"PASSED"},{"id":"EID6ee219f9-0175-1000-a533-d5ccc43722be","testStepResults":{"TestStepResult":[{"id":"EID6ee219f9-0175-1000-1263-82991a2382db","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21b27-0175-1000-50e0-29e8ba39e23a","parent":{"ref":"EID6ee219f9-0175-1000-1263-82991a2382db"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee21b27-0175-1000-20ef-6ea75b520527","parent":{"ref":"EID6ee219f9-0175-1000-1263-82991a2382db"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee21b27-0175-1000-e8d4-3c7000cd9680","parent":{"ref":"EID6ee219f9-0175-1000-1263-82991a2382db"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0975fc9b-ebdf-4a34-9b5c-d14bcb8bf613"},{"ref":"EIDa198cb7d-14c3-41f9-b899-0ef2221bf353"},{"ref":"EID0ca75442-800b-4b8c-9737-86d96b550b31"}]},"parent":{"ref":"EID6ee219f9-0175-1000-a533-d5ccc43722be"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:05:12Z","duration":231,"status":"PASSED"},{"id":"EID6ee21b27-0175-1000-6ed4-bc3b0beb0688","attachments":{"attachment":{"ref":"EID33070391-8acf-4323-8797-15375c55dde7"}},"parent":{"ref":"EID6ee219f9-0175-1000-a533-d5ccc43722be"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:05:13Z","duration":1,"status":"PASSED"},{"id":"EID6ee21b34-0175-1000-ce16-630395232ebf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21e4a-0175-1000-bbae-618b2383f6c7","parent":{"ref":"EID6ee21b34-0175-1000-ce16-630395232ebf"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e4a-0175-1000-5d59-34a85bbae9a0","parent":{"ref":"EID6ee21b34-0175-1000-ce16-630395232ebf"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e4a-0175-1000-ec63-e7c7098cafbd","parent":{"ref":"EID6ee21b34-0175-1000-ce16-630395232ebf"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e4a-0175-1000-504d-5781b7c709be","parent":{"ref":"EID6ee21b34-0175-1000-ce16-630395232ebf"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e4a-0175-1000-2140-787cc35800e0","parent":{"ref":"EID6ee21b34-0175-1000-ce16-630395232ebf"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4d7496f7-3704-4698-aa4a-6e1a84a7d921"},{"ref":"EID315a07e5-728c-4e5a-a060-287f344bc3eb"},{"ref":"EIDe377633b-7dd4-4178-b4de-a552ba3551ef"}]},"parent":{"ref":"EID6ee219f9-0175-1000-a533-d5ccc43722be"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:05:13Z","duration":717,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:05:12Z","duration":1105,"status":"PASSED"},{"id":"EID6ee21e4b-0175-1000-091b-e6e329a0dd55","testStepResults":{"TestStepResult":[{"id":"EID6ee21e4b-0175-1000-84a2-dd3df7e8e020","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21ecb-0175-1000-6612-b584415a0d39","parent":{"ref":"EID6ee21e4b-0175-1000-84a2-dd3df7e8e020"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ecb-0175-1000-80bb-5582462153f3","parent":{"ref":"EID6ee21e4b-0175-1000-84a2-dd3df7e8e020"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ecb-0175-1000-bc5b-f011a49f6708","parent":{"ref":"EID6ee21e4b-0175-1000-84a2-dd3df7e8e020"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ecb-0175-1000-82b6-66c7ee2d6aae","parent":{"ref":"EID6ee21e4b-0175-1000-84a2-dd3df7e8e020"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID92e80a1b-d744-44e1-9ddb-ff6b54b7a179"},{"ref":"EID189acc94-dc5d-40bd-9b6b-b3f77677227e"},{"ref":"EIDa312cb05-6f32-4bcd-af7e-cbad95a8d3d3"}]},"parent":{"ref":"EID6ee21e4b-0175-1000-091b-e6e329a0dd55"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:05:14Z","duration":34,"status":"PASSED"},{"id":"EID6ee21ecb-0175-1000-ee2e-e3ec88c196a2","attachments":{"attachment":{"ref":"EID7ee85e90-4975-421b-b393-80bac79b53af"}},"parent":{"ref":"EID6ee21e4b-0175-1000-091b-e6e329a0dd55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:05:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee21ee7-0175-1000-5602-0b0151d5d317","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22056-0175-1000-437f-ee2ad60b82d9","parent":{"ref":"EID6ee21ee7-0175-1000-5602-0b0151d5d317"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee22056-0175-1000-554c-e12e260aea37","parent":{"ref":"EID6ee21ee7-0175-1000-5602-0b0151d5d317"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5a42c3e9-25d9-4632-b03f-0edd549f3f70"},{"ref":"EIDdcb55224-56f5-47da-bb9b-3527cbe59e0e"}]},"parent":{"ref":"EID6ee21e4b-0175-1000-091b-e6e329a0dd55"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:05:14Z","duration":362,"status":"PASSED"},{"id":"EID6ee22056-0175-1000-0811-d6e227d54165","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee221d5-0175-1000-f6b5-444743b25273","parent":{"ref":"EID6ee22056-0175-1000-0811-d6e227d54165"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee221d5-0175-1000-c72b-1ca6303dd61a","parent":{"ref":"EID6ee22056-0175-1000-0811-d6e227d54165"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee221d5-0175-1000-7f98-6c5f13ce67dd","parent":{"ref":"EID6ee22056-0175-1000-0811-d6e227d54165"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee221d5-0175-1000-e055-f4504e65315c","parent":{"ref":"EID6ee22056-0175-1000-0811-d6e227d54165"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf0b924b7-4da8-4e78-8c69-a12cf2a96f0f"},{"ref":"EIDbe2e82c5-1b80-40cd-ab2a-e47fdc53d89e"},{"ref":"EID7170c61e-e7ca-4ab8-916a-c1ebb608ab55"}]},"parent":{"ref":"EID6ee21e4b-0175-1000-091b-e6e329a0dd55"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:05:14Z","duration":206,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:05:14Z","duration":929,"status":"PASSED"},{"id":"EID6ee221ec-0175-1000-40cf-fe046cb825c7","testStepResults":{"TestStepResult":{"id":"EID6ee221ec-0175-1000-b9ba-0100b5a321d2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22642-0175-1000-902e-abeb00995199","parent":{"ref":"EID6ee221ec-0175-1000-b9ba-0100b5a321d2"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee22642-0175-1000-e00b-0865a2cf2d59","parent":{"ref":"EID6ee221ec-0175-1000-b9ba-0100b5a321d2"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee22642-0175-1000-9df2-ceccf1ddfee4","parent":{"ref":"EID6ee221ec-0175-1000-b9ba-0100b5a321d2"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc7b7747f-9224-45d1-a08a-779afe1a3f2d"},{"ref":"EID2d55a431-c280-42f3-abeb-1d20d000931c"},{"ref":"EID61a11c77-c789-4f18-ab9a-a6c2d116a865"}]},"parent":{"ref":"EID6ee221ec-0175-1000-40cf-fe046cb825c7"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:05:14Z","duration":1036,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:05:14Z","duration":1110,"status":"PASSED"},{"id":"EID6ee22642-0175-1000-51f8-273c4578853b","testStepResults":{"TestStepResult":{"id":"EID6ee2264b-0175-1000-3ef0-178ace31c0b6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee228c5-0175-1000-29bb-4a16252c89a0","parent":{"ref":"EID6ee2264b-0175-1000-3ef0-178ace31c0b6"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee228c5-0175-1000-2c9f-bf97b50e1c2f","parent":{"ref":"EID6ee2264b-0175-1000-3ef0-178ace31c0b6"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee228c5-0175-1000-fb20-ee5d89dd9044","parent":{"ref":"EID6ee2264b-0175-1000-3ef0-178ace31c0b6"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7ca795d3-ff21-4d57-9202-462404a046c4"},{"ref":"EIDd45bbf96-02a8-4ce0-8c73-23aae385e47b"},{"ref":"EIDcfab53af-fb31-44ed-9b4d-3f5aab5c692f"}]},"parent":{"ref":"EID6ee22642-0175-1000-51f8-273c4578853b"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:05:16Z","duration":578,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:05:16Z","duration":643,"status":"PASSED"},{"id":"EID6ee228c6-0175-1000-1558-db9741251054","testStepResults":{"TestStepResult":{"id":"EID6ee228c6-0175-1000-fb5c-6f996162e269","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2301a-0175-1000-06e8-b442754bc723","parent":{"ref":"EID6ee228c6-0175-1000-fb5c-6f996162e269"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee2301a-0175-1000-527d-64ee0e26260f","parent":{"ref":"EID6ee228c6-0175-1000-fb5c-6f996162e269"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee2301a-0175-1000-4edd-498e4b36c3e6","parent":{"ref":"EID6ee228c6-0175-1000-fb5c-6f996162e269"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee2301a-0175-1000-809e-d2e7bba1a662","parent":{"ref":"EID6ee228c6-0175-1000-fb5c-6f996162e269"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee2301a-0175-1000-4c52-640c059a22cc","parent":{"ref":"EID6ee228c6-0175-1000-fb5c-6f996162e269"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf7d71c48-94b9-496f-92fd-0ced63228998"},{"ref":"EID24849ebd-135b-47b6-a8ca-b2281ef437a4"},{"ref":"EID5ca30e58-474e-4ac3-86f2-564b52731c56"}]},"parent":{"ref":"EID6ee228c6-0175-1000-1558-db9741251054"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:05:16Z","duration":1748,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:05:16Z","duration":1876,"status":"PASSED"},{"id":"EID6ee2301b-0175-1000-4331-357a37962f74","testStepResults":{"TestStepResult":{"id":"EID6ee2301b-0175-1000-f133-d8925555bdb4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee23163-0175-1000-dd4c-a642ca16712c","parent":{"ref":"EID6ee2301b-0175-1000-f133-d8925555bdb4"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23163-0175-1000-caed-e21a137e4a4c","parent":{"ref":"EID6ee2301b-0175-1000-f133-d8925555bdb4"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23163-0175-1000-9108-a31435f11d7d","parent":{"ref":"EID6ee2301b-0175-1000-f133-d8925555bdb4"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDccee26c5-63e2-410a-a9e9-d9e1f8db4746"},{"ref":"EID6b1ed085-60d3-4a06-bbcd-15ef68e5983e"},{"ref":"EID55ca720e-0221-47be-9a12-eddc659633e0"}]},"parent":{"ref":"EID6ee2301b-0175-1000-4331-357a37962f74"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:05:18Z","duration":270,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:05:18Z","duration":328,"status":"PASSED"},{"id":"EID6ee23163-0175-1000-76ae-b5e97591c55a","testStepResults":{"TestStepResult":{"id":"EID6ee23163-0175-1000-bbab-38ae7de235da","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee232f8-0175-1000-e1ea-b5f37736bf59","parent":{"ref":"EID6ee23163-0175-1000-bbab-38ae7de235da"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee232f8-0175-1000-ab59-95ce84873be8","parent":{"ref":"EID6ee23163-0175-1000-bbab-38ae7de235da"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee232f8-0175-1000-c706-e57cd2cb5e47","parent":{"ref":"EID6ee23163-0175-1000-bbab-38ae7de235da"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcb1ced72-259b-4806-8b79-5ad1518e33d4"},{"ref":"EIDd2e961a4-3cfe-43b6-a0a2-817dd4c96da5"},{"ref":"EID9832aa71-c3c5-4fda-88a2-77473abba7d8"}]},"parent":{"ref":"EID6ee23163-0175-1000-76ae-b5e97591c55a"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:05:18Z","duration":330,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:05:18Z","duration":413,"status":"PASSED"},{"id":"EID6ee23300-0175-1000-7710-4a6f54993975","testStepResults":{"TestStepResult":{"id":"EID6ee23300-0175-1000-7e23-8404710228bd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2357e-0175-1000-f149-b7463faad3a8","parent":{"ref":"EID6ee23300-0175-1000-7e23-8404710228bd"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee2357e-0175-1000-a53a-f25d3517ee3f","parent":{"ref":"EID6ee23300-0175-1000-7e23-8404710228bd"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee2357e-0175-1000-0f1d-7191ead7dd7a","parent":{"ref":"EID6ee23300-0175-1000-7e23-8404710228bd"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee2357e-0175-1000-df67-461c880f60d5","parent":{"ref":"EID6ee23300-0175-1000-7e23-8404710228bd"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:05:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9382c217-e288-49e8-8d04-8a43746c0a1a"},{"ref":"EID6296d878-d161-4cce-87a9-d8d8e0b03a85"},{"ref":"EIDf8844e94-b8b8-434e-b97f-a7d74a3c05f5"}]},"parent":{"ref":"EID6ee23300-0175-1000-7710-4a6f54993975"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:05:19Z","duration":540,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:05:19Z","duration":638,"status":"PASSED"},{"id":"EID6ee2357e-0175-1000-a90b-9f1665b71d64","testStepResults":{"TestStepResult":{"id":"EID6ee2357e-0175-1000-2b63-2f39e71433da","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2396e-0175-1000-6c53-8e650fb63a59","parent":{"ref":"EID6ee2357e-0175-1000-2b63-2f39e71433da"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee2396e-0175-1000-2b81-13f1f8f0d413","parent":{"ref":"EID6ee2357e-0175-1000-2b63-2f39e71433da"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee2396e-0175-1000-cbe5-0f60161303f7","parent":{"ref":"EID6ee2357e-0175-1000-2b63-2f39e71433da"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee2396e-0175-1000-679d-86ea999f0d03","parent":{"ref":"EID6ee2357e-0175-1000-2b63-2f39e71433da"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID64e3c254-24cf-48e6-b57c-3cf4bd7cc67f"},{"ref":"EIDbbbf9bd1-7126-4ceb-a60e-41064e45f339"},{"ref":"EID1a615a67-7ede-47fe-b497-1e9cc4714e64"}]},"parent":{"ref":"EID6ee2357e-0175-1000-a90b-9f1665b71d64"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:05:19Z","duration":896,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:05:19Z","duration":1008,"status":"PASSED"},{"id":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8","testStepResults":{"TestStepResult":[{"id":"EID6ee2396f-0175-1000-b240-7b9ac2ad2f7c","parent":{"ref":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":9,"status":"PASSED"},{"id":"EID6ee23978-0175-1000-7110-414803d9b6ee","parent":{"ref":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":640,"status":"PASSED"},{"id":"EID6ee23978-0175-1000-af72-dce8f0b68d79","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee23c51-0175-1000-cd47-c8adc87a622f","parent":{"ref":"EID6ee23978-0175-1000-af72-dce8f0b68d79"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c51-0175-1000-2c04-6a146ac75f2b","parent":{"ref":"EID6ee23978-0175-1000-af72-dce8f0b68d79"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c51-0175-1000-11ca-41779d130d0d","parent":{"ref":"EID6ee23978-0175-1000-af72-dce8f0b68d79"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c51-0175-1000-c957-fdd3bd716551","parent":{"ref":"EID6ee23978-0175-1000-af72-dce8f0b68d79"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID42f3374d-10f6-4f6f-bd07-24ae07242a9c"},{"ref":"EID869924ec-1017-4c47-a0ec-75c1aed202fa"},{"ref":"EID53f2cedc-cd7d-4562-8a9d-beced077661f"}]},"parent":{"ref":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:05:21Z","duration":580,"status":"PASSED"},{"id":"EID6ee23c51-0175-1000-4b0c-129629c2bf4a","attachments":{"attachment":{"ref":"EID0e4f63b4-4960-4959-b350-1186423116c7"}},"parent":{"ref":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":1,"status":"PASSED"},{"id":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24117-0175-1000-1920-5c9cdaa5b6ca","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-9e2c-1febae4e9772","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-af35-0412878ede8a","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-6a05-ccdbcb914e22","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-324e-9be9486d40d0","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-bed6-f3986c558017","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-6a79-f4480259e8a4","parent":{"ref":"EID6ee23c63-0175-1000-2a8a-a3bd81d7dccc"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID943247fb-89af-402c-bb23-4a456e9fb343"},{"ref":"EID0ff3d10e-34f8-4bd1-9fef-6bea7d374b46"},{"ref":"EIDe7117f01-62ab-46c7-8238-4bbc2611df29"}]},"parent":{"ref":"EID6ee2396f-0175-1000-22f0-4ffbe82489f8"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:05:21Z","duration":1120,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:05:21Z","duration":1960,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-aebc-0216ae4a7381","testStepResults":{"TestStepResult":[{"id":"EID6ee24117-0175-1000-90c1-518f981de67e","parent":{"ref":"EID6ee24117-0175-1000-aebc-0216ae4a7381"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:05:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee24117-0175-1000-ac68-43e2b0c02b51","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24209-0175-1000-4c8f-8f9d59c76c40","parent":{"ref":"EID6ee24117-0175-1000-ac68-43e2b0c02b51"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee2420a-0175-1000-61b0-00fb37676654","parent":{"ref":"EID6ee24117-0175-1000-ac68-43e2b0c02b51"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee2420a-0175-1000-fd0b-b54afce03466","parent":{"ref":"EID6ee24117-0175-1000-ac68-43e2b0c02b51"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee2420a-0175-1000-7b5b-26f9dc29fb83","parent":{"ref":"EID6ee24117-0175-1000-ac68-43e2b0c02b51"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0cf85ffd-340a-41e2-b7b4-e3d0a3d61fd0"},{"ref":"EIDcbc26f36-2632-41b5-b6ab-cf12fcb947c8"},{"ref":"EIDf5823cbd-5828-42dd-b1c1-8b84aaecdd0e"}]},"parent":{"ref":"EID6ee24117-0175-1000-aebc-0216ae4a7381"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:05:22Z","duration":145,"status":"PASSED"},{"id":"EID6ee24212-0175-1000-4a9b-bc3c3146a87b","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee24222-0175-1000-f464-c0469c18d8f2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24315-0175-1000-430b-de3075ee7346","parent":{"ref":"EID6ee24222-0175-1000-f464-c0469c18d8f2"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee24315-0175-1000-e5ad-fedee29f74af","parent":{"ref":"EID6ee24222-0175-1000-f464-c0469c18d8f2"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee24315-0175-1000-8579-ba325131e4fb","parent":{"ref":"EID6ee24222-0175-1000-f464-c0469c18d8f2"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbf882134-b3a2-4ca5-8847-d308ab98d26c"},{"ref":"EID15feadf0-ff43-4ae9-b521-2394299345bc"},{"ref":"EID9a4b0061-2236-436d-b6e7-4529423143a5"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:23Z","duration":151,"status":"PASSED"},{"id":"EID6ee24317-0175-1000-792e-ea52e79df9ff","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee243e7-0175-1000-be84-0ec184c5174b","parent":{"ref":"EID6ee24317-0175-1000-792e-ea52e79df9ff"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee243e7-0175-1000-4e0d-44b086fe3a2c","parent":{"ref":"EID6ee24317-0175-1000-792e-ea52e79df9ff"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee243e7-0175-1000-1a8c-450f494d2bdf","parent":{"ref":"EID6ee24317-0175-1000-792e-ea52e79df9ff"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa742f4fa-5a9b-4618-85cd-42fecdfac674"},{"ref":"EIDc4c8a7bf-5d86-4765-812a-064120491872"},{"ref":"EID719cee57-ad09-44e6-b61b-121fae9ff74c"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:23Z","duration":152,"status":"PASSED"},{"id":"EID6ee243e8-0175-1000-d226-b889800e38b7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee244bf-0175-1000-5333-21f49d3a04e3","parent":{"ref":"EID6ee243e8-0175-1000-d226-b889800e38b7"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee244bf-0175-1000-f9e4-4d71913b2e42","parent":{"ref":"EID6ee243e8-0175-1000-d226-b889800e38b7"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee244bf-0175-1000-7076-c692665bb9fb","parent":{"ref":"EID6ee243e8-0175-1000-d226-b889800e38b7"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf5a8bf63-1dbe-4af7-9428-096bd0314bcf"},{"ref":"EIDd5eb9a10-cdf2-414f-ad2f-2cc56bc2c83d"},{"ref":"EID375a5a16-a7d7-4b69-9522-4452cc6073b5"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:23Z","duration":151,"status":"PASSED"}]},"parent":{"ref":"EID6ee24117-0175-1000-aebc-0216ae4a7381"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:05:23Z","duration":685,"status":"PASSED"},{"id":"EID6ee244c0-0175-1000-2d16-e076933c2798","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee246da-0175-1000-ca65-90d7a0ce7ace","parent":{"ref":"EID6ee244c0-0175-1000-2d16-e076933c2798"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:05:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee246da-0175-1000-1cde-beaefd7c9fe4","parent":{"ref":"EID6ee244c0-0175-1000-2d16-e076933c2798"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:05:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee246da-0175-1000-9591-8e9398e4a766","parent":{"ref":"EID6ee244c0-0175-1000-2d16-e076933c2798"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:05:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee246da-0175-1000-6f9c-596150427e5f","parent":{"ref":"EID6ee244c0-0175-1000-2d16-e076933c2798"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:05:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf00a84e0-7aae-4eb5-92d0-a60bfbf3eb04"},{"ref":"EID7fed213e-9e54-42ad-ac87-a2be2b8a587a"},{"ref":"EID3aa00086-5a1b-45f6-a3b6-983fd836cc3a"}]},"parent":{"ref":"EID6ee24117-0175-1000-aebc-0216ae4a7381"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:05:23Z","duration":477,"status":"PASSED"}]},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:05:22Z","duration":1475,"status":"PASSED"},{"id":"EID6ee246da-0175-1000-f881-fc76c0be1032","testStepResults":{"TestStepResult":{"id":"EID6ee246e3-0175-1000-5346-88f904155b00","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24951-0175-1000-6f67-4dd983572884","parent":{"ref":"EID6ee246e3-0175-1000-5346-88f904155b00"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee24951-0175-1000-7bb7-9ef026bd264f","parent":{"ref":"EID6ee246e3-0175-1000-5346-88f904155b00"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee24951-0175-1000-add1-2b6f5dfe63c0","parent":{"ref":"EID6ee246e3-0175-1000-5346-88f904155b00"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee24951-0175-1000-1904-40720ddc9938","parent":{"ref":"EID6ee246e3-0175-1000-5346-88f904155b00"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9d54d779-3b04-4994-a8c4-c07580e76a1f"},{"ref":"EIDf50070cd-3dda-403a-85f6-9eaabb248e16"},{"ref":"EIDd95f3b00-0834-472e-8e7c-5b8a56c90a5e"}]},"parent":{"ref":"EID6ee246da-0175-1000-f881-fc76c0be1032"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:05:24Z","duration":540,"status":"PASSED"}},"parent":{"ref":"EID6ee21832-0175-1000-ef60-479621527571"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:05:24Z","duration":631,"status":"PASSED"}]},"parent":{"ref":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:05:12Z","duration":12575,"status":"PASSED"},{"id":"EID6ee24951-0175-1000-5a58-8883298a5b50","testCaseResults":{"TestCaseResult":[{"id":"EID6ee24951-0175-1000-3e92-c74047224e21","testStepResults":{"TestStepResult":[{"id":"EID6ee24951-0175-1000-e67f-488700f7dfda","parent":{"ref":"EID6ee24951-0175-1000-3e92-c74047224e21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:05:25Z","duration":971,"status":"PASSED"},{"id":"EID6ee24951-0175-1000-0bcd-4cd75f49d73d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24c4c-0175-1000-b1a6-38cc5b3b69b5","parent":{"ref":"EID6ee24951-0175-1000-0bcd-4cd75f49d73d"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee24c4c-0175-1000-1846-c3d262e76622","parent":{"ref":"EID6ee24951-0175-1000-0bcd-4cd75f49d73d"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee24c4c-0175-1000-acc2-628cbad49c98","parent":{"ref":"EID6ee24951-0175-1000-0bcd-4cd75f49d73d"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8fba67e7-64e5-4014-9da6-f799441f442e"},{"ref":"EIDc0fa2244-438d-4133-9cc2-a35a89ad0203"},{"ref":"EID608e39d5-b222-486a-bd22-e110326ecc38"}]},"parent":{"ref":"EID6ee24951-0175-1000-3e92-c74047224e21"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:05:25Z","duration":647,"status":"PASSED"},{"id":"EID6ee24c4d-0175-1000-3fcd-c38b988dd899","attachments":{"attachment":{"ref":"EIDadfe8cd2-d505-4dec-be61-1ebe2681e08f"}},"parent":{"ref":"EID6ee24951-0175-1000-3e92-c74047224e21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:05:25Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:05:25Z","duration":775,"status":"PASSED"},{"id":"EID6ee24c62-0175-1000-7786-f9326369d294","testStepResults":{"TestStepResult":[{"id":"EID6ee24c62-0175-1000-656d-ea08bc883eb4","parent":{"ref":"EID6ee24c62-0175-1000-7786-f9326369d294"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:05:25Z","duration":971,"status":"PASSED"},{"id":"EID6ee24c62-0175-1000-6f49-68d36f9ce243","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24d08-0175-1000-b90a-f815285d2e26","parent":{"ref":"EID6ee24c62-0175-1000-6f49-68d36f9ce243"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-2839-48fa76a99441","parent":{"ref":"EID6ee24c62-0175-1000-6f49-68d36f9ce243"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-784f-0bac8ce376ce","parent":{"ref":"EID6ee24c62-0175-1000-6f49-68d36f9ce243"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-12de-37ac75717bdb","parent":{"ref":"EID6ee24c62-0175-1000-6f49-68d36f9ce243"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb03c0164-54a0-40b0-ab31-aa922cff87c2"},{"ref":"EID301ba5a4-7c53-4279-9f36-33e960ad60cb"},{"ref":"EIDee4d4335-4137-4801-bea4-b037ec36843a"}]},"parent":{"ref":"EID6ee24c62-0175-1000-7786-f9326369d294"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:05:25Z","duration":90,"status":"PASSED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:05:25Z","duration":166,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-ab57-9c9dd2150c94","testStepResults":{"TestStepResult":[{"id":"EID6ee24d08-0175-1000-ae69-e0a998a02706","parent":{"ref":"EID6ee24d08-0175-1000-ab57-9c9dd2150c94"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":971,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-8623-1f6bf5463a78","parent":{"ref":"EID6ee24d08-0175-1000-ab57-9c9dd2150c94"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24dfa-0175-1000-8b7b-72755a3472e8","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-2960-168d8536479f","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-5b37-795386c15151","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-69e0-fc8528fc034f","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-ee70-8a8a1163a0f7","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-11a2-5334714891bd","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dfa-0175-1000-7eee-935b20a17d09","parent":{"ref":"EID6ee24d08-0175-1000-2c8c-b4f3c0cdd993"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf79f60bc-f045-45e8-a41e-39e00d5b5f6b"},{"ref":"EIDe51aa5f5-15e7-412a-8e4e-2141c26f266f"},{"ref":"EIDd1b82be8-3fa6-468c-b7c4-6576a1060585"}]},"parent":{"ref":"EID6ee24d08-0175-1000-ab57-9c9dd2150c94"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:05:26Z","duration":129,"status":"PASSED"},{"id":"EID6ee24e04-0175-1000-8d0e-9cc2cb245b2d","invokedTests":{"":null,"TestStepResult":{"id":"EID6ee24e2a-0175-1000-b37e-9338ae8be267","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2503d-0175-1000-4a66-b0fad5bf19b4","parent":{"ref":"EID6ee24e2a-0175-1000-b37e-9338ae8be267"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee2503d-0175-1000-0e42-d1c13d721494","parent":{"ref":"EID6ee24e2a-0175-1000-b37e-9338ae8be267"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee2503d-0175-1000-7d1d-e0f8016f7a1e","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"parent":{"ref":"EID6ee24e2a-0175-1000-b37e-9338ae8be267"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:05:26Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID19ecc343-1a1a-42a8-b0a1-64da3ca6c24e"},{"ref":"EID5a56053f-c2de-4274-9e5b-c573c8df9e13"},{"ref":"EID91303d53-b89e-40bb-97c2-d5342549141b"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:05:26Z","duration":363,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EID71f4a6da-5b3a-4b70-ad49-01364381d8dc"},{"ref":"EID2a0b7f33-7640-4636-b44a-dd69a3697bbf"}]},"parent":{"ref":"EID6ee24d08-0175-1000-ab57-9c9dd2150c94"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:05:26Z","duration":582,"status":"FAILED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:05:26Z","duration":857,"status":"FAILED"},{"id":"EID6ee25061-0175-1000-2dd8-15f50383ddef","testStepResults":{"TestStepResult":[{"id":"EID6ee25081-0175-1000-6d04-95f065e0ea83","parent":{"ref":"EID6ee25061-0175-1000-2dd8-15f50383ddef"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":971,"status":"PASSED"},{"id":"EID6ee25081-0175-1000-cee1-65d6892527e7","parent":{"ref":"EID6ee25061-0175-1000-2dd8-15f50383ddef"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee25081-0175-1000-8b12-e31135a32ff9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee25148-0175-1000-cb08-c67005818ecf","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-2f53-09589042bb0c","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-7ea3-5005acc96343","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-4a24-3859d08e1fb7","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-9458-bed8b9e29cea","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-990a-a7ca2053fae3","parent":{"ref":"EID6ee25081-0175-1000-8b12-e31135a32ff9"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID41091203-b1d9-4690-b76c-1eed63ee27e1"},{"ref":"EID9dd0af8f-09b3-44d9-a399-fa647dcbe4b4"},{"ref":"EIDbe01d9c1-fa54-4046-bccf-6d201f391203"}]},"parent":{"ref":"EID6ee25061-0175-1000-2dd8-15f50383ddef"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:05:26Z","duration":91,"status":"PASSED"},{"id":"EID6ee25148-0175-1000-d7ea-9087e1c8360d","parent":{"ref":"EID6ee25061-0175-1000-2dd8-15f50383ddef"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:05:27Z","duration":52,"status":"PASSED"},{"id":"EID6ee2517d-0175-1000-3700-8d88eb934a1d","parent":{"ref":"EID6ee25061-0175-1000-2dd8-15f50383ddef"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:05:27Z","duration":0,"status":"UNDEFINED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:05:26Z","duration":284,"status":"UNDEFINED"},{"id":"EID6ee2517d-0175-1000-a285-13b1e94b2c69","testStepResults":{"TestStepResult":[{"id":"EID6ee2517d-0175-1000-61d1-efe2362d0a89","parent":{"ref":"EID6ee2517d-0175-1000-a285-13b1e94b2c69"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:05:27Z","duration":971,"status":"PASSED"},{"id":"EID6ee2517d-0175-1000-0d1f-4ddfe6a23b45","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"attachments":{"attachment":[{"ref":"EID53f3a0ec-c955-4ff3-aaba-4243ac251cb1"},{"ref":"EID9358b76a-53f0-45c5-ac4b-683ae7b331ac"},{"ref":"EID803e4eee-6c3d-4076-b69a-1a321a5b1c91"},{"ref":"EID13b9da58-4c92-4d8e-a16d-78f644e87a81"},{"ref":"EID1084bfdd-93c0-46c8-ab26-dd005e4f5bed"},{"ref":"EID46e27eae-fd2f-48cf-b307-e32169326ac5"},{"ref":"EIDc861e41c-070c-4655-a07a-e86f45aeddd9"},{"ref":"EID4bf5997a-d535-4690-b808-b35323ba1d74"},{"ref":"EID7f13c0a7-a432-4778-ba05-f3c2abe643c8"},{"ref":"EID37d6ee89-4757-4018-bfd4-51982de07c6b"},{"ref":"EIDd1610835-28a6-4640-abc4-f328a5c15cd7"},{"ref":"EIDf5260de7-9ec1-4a00-ae7c-9620cd186c0d"},{"ref":"EID790052e1-a2e8-40fe-889e-8b054ddbc2b9"},{"ref":"EID70fe7e7c-f664-45de-82f9-11c123c97bf8"},{"ref":"EID6161faed-4c82-4fae-98a3-9824ac1363e3"},{"ref":"EID91ca3b4e-bed3-449d-9d30-a714e76b6a3d"},{"ref":"EID041e68ae-c543-4a61-9b37-0bd7bcfe16bc"},{"ref":"EID1e253de0-5e29-4ae9-b915-abf8d8bcee30"},{"ref":"EIDe601b36f-94fa-42ba-a5a7-34b04a21956f"}]},"parent":{"ref":"EID6ee2517d-0175-1000-a285-13b1e94b2c69"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:05:27Z","duration":2022,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:05:27Z","duration":2340,"status":"SKIPPED"},{"id":"EID6ee25aa1-0175-1000-67ec-d80ff49c5316","testStepResults":{"TestStepResult":[{"id":"EID6ee25aa1-0175-1000-5e58-dba13972a2c5","parent":{"ref":"EID6ee25aa1-0175-1000-67ec-d80ff49c5316"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:05:29Z","duration":971,"status":"PASSED"},{"id":"EID6ee25aa1-0175-1000-c0a3-a903eed95df2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee25b5a-0175-1000-ee93-2ef593cd9080","parent":{"ref":"EID6ee25aa1-0175-1000-c0a3-a903eed95df2"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25b5a-0175-1000-4c77-9e649ddf3540","parent":{"ref":"EID6ee25aa1-0175-1000-c0a3-a903eed95df2"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25b5b-0175-1000-e0f5-cff06242fd51","parent":{"ref":"EID6ee25aa1-0175-1000-c0a3-a903eed95df2"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25b5b-0175-1000-efdd-b7d7d792f708","parent":{"ref":"EID6ee25aa1-0175-1000-c0a3-a903eed95df2"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID38a408df-b855-42a1-8d47-41a30c17bd57"},{"ref":"EIDd2c7dee0-d1de-4a75-834c-49e5d0006d51"},{"ref":"EIDb8d6047f-d1fa-4da2-a3f5-947d03ff102f"}]},"parent":{"ref":"EID6ee25aa1-0175-1000-67ec-d80ff49c5316"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:05:29Z","duration":113,"status":"PASSED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:05:29Z","duration":186,"status":"PASSED"},{"id":"EID6ee25b5b-0175-1000-58e3-839761e4146a","testStepResults":{"TestStepResult":[{"id":"EID6ee25b5b-0175-1000-f950-94812546e46f","parent":{"ref":"EID6ee25b5b-0175-1000-58e3-839761e4146a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:05:29Z","duration":971,"status":"PASSED"},{"id":"EID6ee25b5b-0175-1000-2b60-7d0e7e1c77ae","parent":{"ref":"EID6ee25b5b-0175-1000-58e3-839761e4146a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25b5b-0175-1000-9fa6-02c7ee02b027","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee25bfb-0175-1000-c147-fcf3f6eaf53e","parent":{"ref":"EID6ee25b5b-0175-1000-9fa6-02c7ee02b027"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25bfb-0175-1000-f7c7-485e825dc028","parent":{"ref":"EID6ee25b5b-0175-1000-9fa6-02c7ee02b027"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25bfb-0175-1000-e432-030bf7778254","parent":{"ref":"EID6ee25b5b-0175-1000-9fa6-02c7ee02b027"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25bfb-0175-1000-e557-6683db4f569f","parent":{"ref":"EID6ee25b5b-0175-1000-9fa6-02c7ee02b027"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb031e4c8-e212-4f81-8d7f-5f7d59dbf865"},{"ref":"EID62e1d63f-963e-4a14-b417-2c58340edd6a"},{"ref":"EIDca5ce78f-39f4-4527-8721-44f57822a8d8"}]},"parent":{"ref":"EID6ee25b5b-0175-1000-58e3-839761e4146a"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:05:29Z","duration":97,"status":"PASSED"},{"id":"EID6ee25bfb-0175-1000-5acf-f61ee68d8f50","attachments":{"attachment":{"ref":"EID7949f443-19b7-4b4a-bd7b-fed1d24d8c55"}},"parent":{"ref":"EID6ee25b5b-0175-1000-58e3-839761e4146a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:05:29Z","duration":1,"status":"PASSED"},{"id":"EID6ee25c0d-0175-1000-20c2-de82fb23d627","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee25c11-0175-1000-8491-661fe35f0910","parent":{"ref":"EID6ee25c0d-0175-1000-20c2-de82fb23d627"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25c11-0175-1000-9ae8-ba7f47059536","parent":{"ref":"EID6ee25c0d-0175-1000-20c2-de82fb23d627"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee25c11-0175-1000-edd0-4c90b2659b84","parent":{"ref":"EID6ee25c0d-0175-1000-20c2-de82fb23d627"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbd588e0e-6248-4186-aea9-9e11bd4ce159"},{"ref":"EIDbf79495c-a48a-41f6-842a-d89fb2325dfa"}]},"parent":{"ref":"EID6ee25b5b-0175-1000-58e3-839761e4146a"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:05:29Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee24951-0175-1000-5a58-8883298a5b50"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:05:29Z","duration":182,"status":"PASSED"}]},"parent":{"ref":"EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:05:25Z","duration":4808,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID8f9acdcb-5600-4b9e-b2c2-077afd7713ac","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf3c82693-59f0-403f-916f-480d8bdebaa6","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf3c82693-59f0-403f-916f-480d8bdebaa6"}},{"type":"Message","id":"EID66c12fa5-4d24-401a-a326-af938cceb6bf","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID66c12fa5-4d24-401a-a326-af938cceb6bf"}},{"type":"ServiceResponse","id":"EIDd2e961a4-3cfe-43b6-a0a2-817dd4c96da5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd2e961a4-3cfe-43b6-a0a2-817dd4c96da5"}},{"type":"Message","id":"EID1e253de0-5e29-4ae9-b915-abf8d8bcee30","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID1e253de0-5e29-4ae9-b915-abf8d8bcee30"}},{"type":"GetParameter","id":"EID0ca75442-800b-4b8c-9737-86d96b550b31","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID243a5325-591a-48f0-9935-29e394976941","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID243a5325-591a-48f0-9935-29e394976941"}},{"type":"GetParameter","id":"EID608e39d5-b222-486a-bd22-e110326ecc38","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID7ee85e90-4975-421b-b393-80bac79b53af","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID7ee85e90-4975-421b-b393-80bac79b53af"}},{"type":"ServiceResponse","id":"EID7fed213e-9e54-42ad-ac87-a2be2b8a587a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID7fed213e-9e54-42ad-ac87-a2be2b8a587a"}},{"type":"ServiceResponse","id":"EID3e61cad3-5461-401c-a292-4f8e1b9d5695","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID3e61cad3-5461-401c-a292-4f8e1b9d5695"}},{"type":"Message","id":"EID23b6e168-1740-4503-9564-44361495598f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID23b6e168-1740-4503-9564-44361495598f"}},{"type":"ServiceResponse","id":"EIDa4dc2033-9469-4587-b15d-d4eefa796820","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDa4dc2033-9469-4587-b15d-d4eefa796820"}},{"type":"ServiceResponse","id":"EIDf9001d1f-2925-473a-8087-b7170e64a2fd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf9001d1f-2925-473a-8087-b7170e64a2fd"}},{"type":"GetParameter","id":"EIDdcb55224-56f5-47da-bb9b-3527cbe59e0e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV92X2dwa2cuemlw"},{"type":"Message","id":"EIDef6885d3-8745-492b-82ba-7bb8bb781ca8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDef6885d3-8745-492b-82ba-7bb8bb781ca8"}},{"type":"Message","id":"EID55acd594-dcff-4b66-80e1-96e12d8fd01d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID55acd594-dcff-4b66-80e1-96e12d8fd01d"}},{"type":"ServiceResponse","id":"EIDb7108008-eb64-4016-a9ec-4d47daeab854","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDb7108008-eb64-4016-a9ec-4d47daeab854"}},{"type":"GetParameter","id":"EIDa6d7b02e-a9fa-44ce-bfd8-67db9be6a2b4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf5a8bf63-1dbe-4af7-9428-096bd0314bcf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID16cfd46f-9b85-48c4-b162-53d60f27eb52","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID5a56053f-c2de-4274-9e5b-c573c8df9e13","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID5a56053f-c2de-4274-9e5b-c573c8df9e13"}},{"type":"Message","id":"EID91ca3b4e-bed3-449d-9d30-a714e76b6a3d","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID91ca3b4e-bed3-449d-9d30-a714e76b6a3d"}},{"type":"Message","id":"EIDbd103640-90c9-4bf5-b09e-208a446e622c","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDbd103640-90c9-4bf5-b09e-208a446e622c"}},{"type":"ServiceResponse","id":"EIDa2bd79f3-cd86-4eba-98dd-259839895acb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDa2bd79f3-cd86-4eba-98dd-259839895acb"}},{"type":"ServiceResponse","id":"EID39085966-d34e-4981-a585-edce543e4924","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID39085966-d34e-4981-a585-edce543e4924"}},{"type":"Message","id":"EID71de321e-995e-4536-8b80-2403f76c796c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID71de321e-995e-4536-8b80-2403f76c796c"}},{"type":"ServiceEndpoint","id":"EID2559475c-2721-46bc-9b7d-1ef977518db0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf8844e94-b8b8-434e-b97f-a7d74a3c05f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID7170c61e-e7ca-4ab8-916a-c1ebb608ab55","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID1703c5b1-2fc1-4be4-be7a-71c38e3a700b","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID1703c5b1-2fc1-4be4-be7a-71c38e3a700b"}},{"type":"Message","id":"EIDb31abbe9-5f4d-4da9-9e54-e30f6b2acdaa","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDb31abbe9-5f4d-4da9-9e54-e30f6b2acdaa"}},{"type":"ServiceResponse","id":"EIDc086d973-0e76-49f5-96be-b6af262396bb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDc086d973-0e76-49f5-96be-b6af262396bb"}},{"type":"GetParameter","id":"EIDde5d25b6-5ee4-44aa-a69c-6a27d85790a7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDd83c2bc3-fa43-4533-803b-7ac6efb102b8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd83c2bc3-fa43-4533-803b-7ac6efb102b8"}},{"type":"ServiceResponse","id":"EIDdd615e3b-2bd5-4605-b9a0-fb0bbdc87081","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDdd615e3b-2bd5-4605-b9a0-fb0bbdc87081"}},{"type":"GetParameter","id":"EIDc1d03c2a-9b59-43aa-bac4-98af1dc82a05","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID1084bfdd-93c0-46c8-ab26-dd005e4f5bed","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID1084bfdd-93c0-46c8-ab26-dd005e4f5bed"}},{"type":"GetParameter","id":"EIDdb2f09be-534b-45be-9c6c-cf1e278d0eec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDdd30ea41-4f60-4937-b780-721a0411a6f2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDdd30ea41-4f60-4937-b780-721a0411a6f2"}},{"type":"GetParameter","id":"EIDe377633b-7dd4-4178-b4de-a552ba3551ef","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID3aa00086-5a1b-45f6-a3b6-983fd836cc3a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID37d6ee89-4757-4018-bfd4-51982de07c6b","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID37d6ee89-4757-4018-bfd4-51982de07c6b"}},{"type":"ServiceEndpoint","id":"EIDbf882134-b3a2-4ca5-8847-d308ab98d26c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID4d7496f7-3704-4698-aa4a-6e1a84a7d921","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID92e80a1b-d744-44e1-9ddb-ff6b54b7a179","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID4d642931-8d56-44e1-bfec-92a55a72aaca","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID4d642931-8d56-44e1-bfec-92a55a72aaca"}},{"type":"LogFile","id":"EID089050e1-0f61-4b50-a372-24cbf877d155","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID089050e1-0f61-4b50-a372-24cbf877d155"}},{"type":"Message","id":"EID6161faed-4c82-4fae-98a3-9824ac1363e3","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID6161faed-4c82-4fae-98a3-9824ac1363e3"}},{"type":"GetParameter","id":"EIDe7117f01-62ab-46c7-8238-4bbc2611df29","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDccee26c5-63e2-410a-a9e9-d9e1f8db4746","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDf00a84e0-7aae-4eb5-92d0-a60bfbf3eb04","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID803e4eee-6c3d-4076-b69a-1a321a5b1c91","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID803e4eee-6c3d-4076-b69a-1a321a5b1c91"}},{"type":"Message","id":"EID27b42ac2-5706-4a3c-b003-b25220bf12d9","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID27b42ac2-5706-4a3c-b003-b25220bf12d9"}},{"type":"ServiceEndpoint","id":"EID3ceaf0a1-4823-4a6d-b124-9c29813a0be5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID9df59927-9e0a-4b09-8f42-dcb6c7429eec","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID9df59927-9e0a-4b09-8f42-dcb6c7429eec"}},{"type":"ServiceEndpoint","id":"EIDa4a575bd-a617-4b3e-aa5a-463eac1e3837","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID7f13c0a7-a432-4778-ba05-f3c2abe643c8","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID7f13c0a7-a432-4778-ba05-f3c2abe643c8"}},{"type":"ServiceEndpoint","id":"EID41d57b50-3878-4bf9-842b-93ad5f3048d2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf50070cd-3dda-403a-85f6-9eaabb248e16","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf50070cd-3dda-403a-85f6-9eaabb248e16"}},{"type":"Message","id":"EIDaabde014-2d88-4ed1-904e-10bd96a46e07","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDaabde014-2d88-4ed1-904e-10bd96a46e07"}},{"type":"ServiceResponse","id":"EID927de8ae-c2d5-43cf-b388-ce1561d28b0c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID927de8ae-c2d5-43cf-b388-ce1561d28b0c"}},{"type":"ServiceEndpoint","id":"EID943247fb-89af-402c-bb23-4a456e9fb343","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDd1b82be8-3fa6-468c-b7c4-6576a1060585","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDc7b7747f-9224-45d1-a08a-779afe1a3f2d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDf65a04e7-138f-425e-a60b-5b6c33785fe6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID2e372ad4-ea55-4414-9423-a8959a2fc979","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID2e372ad4-ea55-4414-9423-a8959a2fc979"}},{"type":"ServiceEndpoint","id":"EID4f52fdbd-d566-4de4-97fa-1767514312e1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID64b59a0a-cba7-4f23-88b3-d89139e11d89","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID42c0042d-ed7e-40b2-86eb-39b032eb8726","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID2a139ac5-b137-4f51-8436-1380c3a33c85","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID2a139ac5-b137-4f51-8436-1380c3a33c85"}},{"type":"ServiceEndpoint","id":"EID6677a8af-181b-4d96-895c-89766a73ac12","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9ca97ca2-0953-4584-a50c-f6285c1a076c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID64e3c254-24cf-48e6-b57c-3cf4bd7cc67f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID4bf5997a-d535-4690-b808-b35323ba1d74","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID4bf5997a-d535-4690-b808-b35323ba1d74"}},{"type":"ServiceEndpoint","id":"EIDb2da79e0-a4bc-488d-9b43-f700b1427133","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID0e4f63b4-4960-4959-b350-1186423116c7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID0e4f63b4-4960-4959-b350-1186423116c7"}},{"type":"Message","id":"EID53f3a0ec-c955-4ff3-aaba-4243ac251cb1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID53f3a0ec-c955-4ff3-aaba-4243ac251cb1"}},{"type":"ServiceEndpoint","id":"EIDcb1ced72-259b-4806-8b79-5ad1518e33d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDb0a5e3ad-e0b3-4438-b11f-7d818ed0ac50","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDbd7f4be0-fd05-401c-a67a-863d6e1afcf0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID62e1d63f-963e-4a14-b417-2c58340edd6a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID62e1d63f-963e-4a14-b417-2c58340edd6a"}},{"type":"ServiceEndpoint","id":"EIDbc189bc4-3eeb-4997-9d7a-f9ca4501e612","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5a42c3e9-25d9-4632-b03f-0edd549f3f70","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV92X2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EID0cf85ffd-340a-41e2-b7b4-e3d0a3d61fd0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID01a72594-3e38-468c-8c0c-6fe81abaedec","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID01a72594-3e38-468c-8c0c-6fe81abaedec"}},{"type":"ServiceResponse","id":"EIDd268bf34-a07f-4aa3-9bc6-398f914b0ad4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd268bf34-a07f-4aa3-9bc6-398f914b0ad4"}},{"type":"ServiceResponse","id":"EID01ce9c8a-ab43-42df-b5fd-ae48d91eb1cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID01ce9c8a-ab43-42df-b5fd-ae48d91eb1cf"}},{"type":"Message","id":"EID3f8e2d7b-c861-4e34-a014-26796be50688","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID3f8e2d7b-c861-4e34-a014-26796be50688"}},{"type":"GetParameter","id":"EID61a11c77-c789-4f18-ab9a-a6c2d116a865","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID301ba5a4-7c53-4279-9f36-33e960ad60cb","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID301ba5a4-7c53-4279-9f36-33e960ad60cb"}},{"type":"ServiceResponse","id":"EID24849ebd-135b-47b6-a8ca-b2281ef437a4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID24849ebd-135b-47b6-a8ca-b2281ef437a4"}},{"type":"ServiceResponse","id":"EID189acc94-dc5d-40bd-9b6b-b3f77677227e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID189acc94-dc5d-40bd-9b6b-b3f77677227e"}},{"type":"GetParameter","id":"EID6636da7a-04d2-4a99-bdb8-ba336168d35c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID00b4527d-e591-47e0-b7e8-6ea0583ad7d7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID00b4527d-e591-47e0-b7e8-6ea0583ad7d7"}},{"type":"GetParameter","id":"EIDf5823cbd-5828-42dd-b1c1-8b84aaecdd0e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EIDbf79495c-a48a-41f6-842a-d89fb2325dfa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EIDb03c0164-54a0-40b0-ab31-aa922cff87c2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID71f4a6da-5b3a-4b70-ad49-01364381d8dc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID71f4a6da-5b3a-4b70-ad49-01364381d8dc"}},{"type":"ServiceResponse","id":"EID2d55a431-c280-42f3-abeb-1d20d000931c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID2d55a431-c280-42f3-abeb-1d20d000931c"}},{"type":"ServiceResponse","id":"EID9dd0af8f-09b3-44d9-a399-fa647dcbe4b4","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID9dd0af8f-09b3-44d9-a399-fa647dcbe4b4"}},{"type":"GetParameter","id":"EID2619bcdc-6bed-4dc0-9765-19e262948c84","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDdb24ad2d-f5f2-4b80-a020-cc40f4751862","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDdb24ad2d-f5f2-4b80-a020-cc40f4751862"}},{"type":"ServiceResponse","id":"EID17f30054-282f-43b5-a523-a238bd6e090c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID17f30054-282f-43b5-a523-a238bd6e090c"}},{"type":"ServiceResponse","id":"EIDf1afe642-6728-4917-b6fe-4195df32f2e3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf1afe642-6728-4917-b6fe-4195df32f2e3"}},{"type":"GetParameter","id":"EIDb8d6047f-d1fa-4da2-a3f5-947d03ff102f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDa312cb05-6f32-4bcd-af7e-cbad95a8d3d3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDca5ce78f-39f4-4527-8721-44f57822a8d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID53f2cedc-cd7d-4562-8a9d-beced077661f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID9358b76a-53f0-45c5-ac4b-683ae7b331ac","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID9358b76a-53f0-45c5-ac4b-683ae7b331ac"}},{"type":"Message","id":"EIDd1610835-28a6-4640-abc4-f328a5c15cd7","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd1610835-28a6-4640-abc4-f328a5c15cd7"}},{"type":"Message","id":"EIDbfa1ae89-5b94-4b71-9da3-4b91c63dc6e3","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDbfa1ae89-5b94-4b71-9da3-4b91c63dc6e3"}},{"type":"GetParameter","id":"EID4c898528-6fc1-4d03-a8e8-5a432bf3f642","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3b818479-62d2-4d12-b54b-abd26f5b2d1a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID33070391-8acf-4323-8797-15375c55dde7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID33070391-8acf-4323-8797-15375c55dde7"}},{"type":"Message","id":"EIDd66d3a5a-e77e-4b78-bbb8-5681107779ef","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd66d3a5a-e77e-4b78-bbb8-5681107779ef"}},{"type":"GetParameter","id":"EIDa78dc98f-dcda-47c1-9e14-640de3fc12f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID9dcf19bb-ffb3-492f-bc03-1dda911912e0","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID9dcf19bb-ffb3-492f-bc03-1dda911912e0"}},{"type":"Message","id":"EIDadfe8cd2-d505-4dec-be61-1ebe2681e08f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDadfe8cd2-d505-4dec-be61-1ebe2681e08f"}},{"type":"ServiceResponse","id":"EID15feadf0-ff43-4ae9-b521-2394299345bc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID15feadf0-ff43-4ae9-b521-2394299345bc"}},{"type":"ServiceResponse","id":"EID869924ec-1017-4c47-a0ec-75c1aed202fa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID869924ec-1017-4c47-a0ec-75c1aed202fa"}},{"type":"ServiceResponse","id":"EIDd5acaf16-cc09-4ff1-aacd-159278d1e794","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd5acaf16-cc09-4ff1-aacd-159278d1e794"}},{"type":"GetParameter","id":"EID55ca720e-0221-47be-9a12-eddc659633e0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EIDf6b8100b-28ce-4de3-a540-2eeab7961586","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf6b8100b-28ce-4de3-a540-2eeab7961586"}},{"type":"GetParameter","id":"EID9a4b0061-2236-436d-b6e7-4529423143a5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDcbbb746b-4c2d-4b39-a120-9710896644c7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID3c65ba26-c541-4af6-8655-05ca2c55a98d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID3c65ba26-c541-4af6-8655-05ca2c55a98d"}},{"type":"ServiceEndpoint","id":"EIDa742f4fa-5a9b-4618-85cd-42fecdfac674","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EIDd95f3b00-0834-472e-8e7c-5b8a56c90a5e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDac671c52-7066-4ec1-9b69-ae3830308107","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd5eb9a10-cdf2-414f-ad2f-2cc56bc2c83d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd5eb9a10-cdf2-414f-ad2f-2cc56bc2c83d"}},{"type":"Message","id":"EID13b9da58-4c92-4d8e-a16d-78f644e87a81","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID13b9da58-4c92-4d8e-a16d-78f644e87a81"}},{"type":"GetParameter","id":"EIDcd3089a3-3173-48d0-a4fc-991065ad6e15","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf79f60bc-f045-45e8-a41e-39e00d5b5f6b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID55b61e79-55dc-403f-9514-3599288cc207","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID55b61e79-55dc-403f-9514-3599288cc207"}},{"type":"Message","id":"EID70fe7e7c-f664-45de-82f9-11c123c97bf8","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID70fe7e7c-f664-45de-82f9-11c123c97bf8"}},{"type":"Message","id":"EID790052e1-a2e8-40fe-889e-8b054ddbc2b9","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID790052e1-a2e8-40fe-889e-8b054ddbc2b9"}},{"type":"GetParameter","id":"EIDbb47a59d-050b-4e38-960c-b5999aaf0fc2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0975fc9b-ebdf-4a34-9b5c-d14bcb8bf613","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDc0fa2244-438d-4133-9cc2-a35a89ad0203","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDc0fa2244-438d-4133-9cc2-a35a89ad0203"}},{"type":"ServiceResponse","id":"EID50ae0ca0-2d0e-4176-9914-c06b37c47b80","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID50ae0ca0-2d0e-4176-9914-c06b37c47b80"}},{"type":"ServiceResponse","id":"EIDbe2e82c5-1b80-40cd-ab2a-e47fdc53d89e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDbe2e82c5-1b80-40cd-ab2a-e47fdc53d89e"}},{"type":"ServiceEndpoint","id":"EID38a408df-b855-42a1-8d47-41a30c17bd57","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID7949f443-19b7-4b4a-bd7b-fed1d24d8c55","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID7949f443-19b7-4b4a-bd7b-fed1d24d8c55"}},{"type":"ServiceEndpoint","id":"EIDf7d71c48-94b9-496f-92fd-0ced63228998","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID9382c217-e288-49e8-8d04-8a43746c0a1a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDd2c7dee0-d1de-4a75-834c-49e5d0006d51","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd2c7dee0-d1de-4a75-834c-49e5d0006d51"}},{"type":"ServiceEndpoint","id":"EID69344057-8357-40b6-b789-9f93e45bd1ff","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0e4d695d-2059-48d4-88e8-97ea6a1e9143","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf5260de7-9ec1-4a00-ae7c-9620cd186c0d","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDf5260de7-9ec1-4a00-ae7c-9620cd186c0d"}},{"type":"GetParameter","id":"EID45bd2eee-d91e-4ad4-981a-a6e7b1ac0d3d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7ca795d3-ff21-4d57-9202-462404a046c4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID0cdeb08e-9eec-4b91-bf21-be2cbc7a0005","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID0cdeb08e-9eec-4b91-bf21-be2cbc7a0005"}},{"type":"GetParameter","id":"EID5ca30e58-474e-4ac3-86f2-564b52731c56","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID6296d878-d161-4cce-87a9-d8d8e0b03a85","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID6296d878-d161-4cce-87a9-d8d8e0b03a85"}},{"type":"Message","id":"EID46287357-c9d1-42ec-a3f4-26aeedf9a66b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID46287357-c9d1-42ec-a3f4-26aeedf9a66b"}},{"type":"GetParameter","id":"EIDee4d4335-4137-4801-bea4-b037ec36843a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDa803453b-91b8-40d3-917e-e9ecbf149ca7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDa803453b-91b8-40d3-917e-e9ecbf149ca7"}},{"type":"GetParameter","id":"EIDfe16966c-f508-4eb4-a9ac-f15063a50d0d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID70ad4409-970e-412c-945b-5d6b93db41d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID19ecc343-1a1a-42a8-b0a1-64da3ca6c24e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"GetParameter","id":"EID53342e07-5a8e-43ff-9b06-e82c70747f69","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0ff3d10e-34f8-4bd1-9fef-6bea7d374b46","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID0ff3d10e-34f8-4bd1-9fef-6bea7d374b46"}},{"type":"GetParameter","id":"EID79cb800e-288f-4031-a5dd-c66e2b094b0a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID4b4a15b1-d399-4ac1-a678-4b3835ea14df","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID4b4a15b1-d399-4ac1-a678-4b3835ea14df"}},{"type":"ServiceResponse","id":"EID8c7bbe41-15d4-4454-972f-3e64f8e697f1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID8c7bbe41-15d4-4454-972f-3e64f8e697f1"}},{"type":"ServiceEndpoint","id":"EID8fba67e7-64e5-4014-9da6-f799441f442e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID043780cc-ca1c-4e50-8a99-436d0804ded1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID043780cc-ca1c-4e50-8a99-436d0804ded1"}},{"type":"GetParameter","id":"EID375a5a16-a7d7-4b69-9522-4452cc6073b5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID4fe4bdae-30bc-436e-b5cd-6abb6cc8f3b4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0f9afe73-563c-4eaa-b2f0-cff2a8e472cf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDcdf322e1-c599-4e83-95e0-8769db93fd6c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDc4c8a7bf-5d86-4765-812a-064120491872","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDc4c8a7bf-5d86-4765-812a-064120491872"}},{"type":"GetParameter","id":"EID7d09abb9-914f-4237-a507-c9d1874180f4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6b1ed085-60d3-4a06-bbcd-15ef68e5983e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID6b1ed085-60d3-4a06-bbcd-15ef68e5983e"}},{"type":"ServiceResponse","id":"EIDa198cb7d-14c3-41f9-b899-0ef2221bf353","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDa198cb7d-14c3-41f9-b899-0ef2221bf353"}},{"type":"ServiceEndpoint","id":"EIDbd588e0e-6248-4186-aea9-9e11bd4ce159","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EID9832aa71-c3c5-4fda-88a2-77473abba7d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDd68aa5f4-65fd-4d09-8e8b-59ec3daec105","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID719cee57-ad09-44e6-b61b-121fae9ff74c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID041e68ae-c543-4a61-9b37-0bd7bcfe16bc","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID041e68ae-c543-4a61-9b37-0bd7bcfe16bc"}},{"type":"ServiceResponse","id":"EID49534472-97dc-4420-a298-f97b0c9c2cd1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID49534472-97dc-4420-a298-f97b0c9c2cd1"}},{"type":"Message","id":"EID2d31dfc3-8e9c-4bb6-bdbe-42f4f5330a21","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID2d31dfc3-8e9c-4bb6-bdbe-42f4f5330a21"}},{"type":"ServiceResponse","id":"EIDe51aa5f5-15e7-412a-8e4e-2141c26f266f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDe51aa5f5-15e7-412a-8e4e-2141c26f266f"}},{"type":"ServiceEndpoint","id":"EID08b4fbcd-5fc5-41a9-9bac-d423776345e3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDcfab53af-fb31-44ed-9b4d-3f5aab5c692f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDb031e4c8-e212-4f81-8d7f-5f7d59dbf865","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDcbc26f36-2632-41b5-b6ab-cf12fcb947c8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDcbc26f36-2632-41b5-b6ab-cf12fcb947c8"}},{"type":"Message","id":"EID46e27eae-fd2f-48cf-b307-e32169326ac5","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID46e27eae-fd2f-48cf-b307-e32169326ac5"}},{"type":"Message","id":"EIDe601b36f-94fa-42ba-a5a7-34b04a21956f","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDe601b36f-94fa-42ba-a5a7-34b04a21956f"}},{"type":"Message","id":"EID417810c5-3328-4544-9be3-7d0be803d152","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID417810c5-3328-4544-9be3-7d0be803d152"}},{"type":"ServiceEndpoint","id":"EIDf0b924b7-4da8-4e78-8c69-a12cf2a96f0f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDbe01d9c1-fa54-4046-bccf-6d201f391203","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDd181d402-73ff-4101-9a28-a2764e768599","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID91303d53-b89e-40bb-97c2-d5342549141b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV9sX2dwa2cuemlw"},{"type":"ServiceResponse","id":"EID315a07e5-728c-4e5a-a060-287f344bc3eb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID315a07e5-728c-4e5a-a060-287f344bc3eb"}},{"type":"GetParameter","id":"EID1a615a67-7ede-47fe-b497-1e9cc4714e64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDd45bbf96-02a8-4ce0-8c73-23aae385e47b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDd45bbf96-02a8-4ce0-8c73-23aae385e47b"}},{"type":"ServiceEndpoint","id":"EID9d54d779-3b04-4994-a8c4-c07580e76a1f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID58ea1b75-8a7e-4433-92b1-c5756c2e0945","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID58ea1b75-8a7e-4433-92b1-c5756c2e0945"}},{"type":"ServiceEndpoint","id":"EID04d7a905-4722-4e6d-9f28-589594955218","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDc861e41c-070c-4655-a07a-e86f45aeddd9","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDc861e41c-070c-4655-a07a-e86f45aeddd9"}},{"type":"ServiceResponse","id":"EID7fe7866e-b4e5-4292-9011-9ffbf1136f39","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID7fe7866e-b4e5-4292-9011-9ffbf1136f39"}},{"type":"ServiceEndpoint","id":"EIDaeff1bda-d807-4986-9ffc-0786f2857f4a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID41091203-b1d9-4690-b76c-1eed63ee27e1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID123a7496-0f6c-463c-a764-e2ed86806c81","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID123a7496-0f6c-463c-a764-e2ed86806c81"}},{"type":"ServiceResponse","id":"EIDbbbf9bd1-7126-4ceb-a60e-41064e45f339","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDbbbf9bd1-7126-4ceb-a60e-41064e45f339"}},{"type":"Message","id":"EID2a0b7f33-7640-4636-b44a-dd69a3697bbf","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EID2a0b7f33-7640-4636-b44a-dd69a3697bbf"}},{"type":"ServiceEndpoint","id":"EIDd7e37d65-e783-4195-bed0-504ae7807dcb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDee1a9a35-2d6a-486a-81f9-734f4a27fcf9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID3b7c6874-3cf2-4a07-946e-0d3e3a7ec57e/Attachments/EIDee1a9a35-2d6a-486a-81f9-734f4a27fcf9"}},{"type":"ServiceEndpoint","id":"EID42f3374d-10f6-4f6f-bd07-24ae07242a9c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:04:52Z","duration":37511,"status":"FAILED"}}}}}
11:06:04.988 [print] EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87
11:06:04.991 [print] FAILED
11:06:04.992 [print] FAILED
11:06:04.992 [print] Conformance Class Download Service - Pre-defined Atom
11:06:04.992 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/c95bbc17-3bd6-470e-949a-7aa01f2a1f87.json
11:06:04.992 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/c95bbc17-3bd6-470e-949a-7aa01f2a1f87.json
11:06:04.992 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDc95bbc17-3bd6-470e-949a-7aa01f2a1f87/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:06:05.042 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:06:05.042 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:57.338 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml"}}}
11:15:57.345 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 254
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml"}}}
11:16:04.819 response time in milliseconds: 6729.48
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:04 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:16:01 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a739edde-614a-425e-b278-48801e78b28a.json","testRuns":{"TestRun":{"id":"EIDa739edde-614a-425e-b278-48801e78b28a","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:00.41Z","testTasks":{"TestTask":{"id":"EID0e748b3c-a58d-40f9-9078-8454aaf5847c","parent":{"ref":"EIDa739edde-614a-425e-b278-48801e78b28a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID285887cd-9ab2-4e52-92f2-80ccb240451c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID285887cd-9ab2-4e52-92f2-80ccb240451c","remoteResource":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:57.792Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:58.733Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:16:04.822 [print] EIDa739edde-614a-425e-b278-48801e78b28a
11:16:04.822 [print] UNDEFINED
11:16:04.822 [print] Conformance Class Download Service - Pre-defined Atom
11:16:04.822 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a739edde-614a-425e-b278-48801e78b28a.json
11:16:04.823 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/log
11:16:04.823 [print] statuspath TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a
11:16:04.823 [print] progresspath TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/progress
11:16:04.823 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:05.344 response time in milliseconds: 520.02
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:16:05 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"38","max":"39","log":["28.10.2020 11:16:00 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:00 UTC 2020)","28.10.2020 11:16:00 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:00 - Preparing 1 Test Task:","28.10.2020 11:16:00 - TestTask 1 (0e748b3c-a58d-40f9-9078-8454aaf5847c)","28.10.2020 11:16:00 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:00 - with parameters: ","28.10.2020 11:16:00 - etf.testcases = *","28.10.2020 11:16:00 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:00 - Setting state to CREATED","28.10.2020 11:16:00 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:01 - Starting TestRun.a739edde-614a-425e-b278-48801e78b28a at 2020-10-28T11:16:02Z","28.10.2020 11:16:02 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:02 - Project Properties: ","28.10.2020 11:16:02 - etf.testcases - * ","28.10.2020 11:16:02 - serviceEndpoint - https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml ","28.10.2020 11:16:02 - username - ","28.10.2020 11:16:02 - authUser - ","28.10.2020 11:16:02 - authMethod - basic ","28.10.2020 11:16:02 - TestRunTask initialized"]}
11:16:05.344 [print] {
"val": "38",
"max": "39",
"log": [
"28.10.2020 11:16:00 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:00 UTC 2020)",
"28.10.2020 11:16:00 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:16:00 - Preparing 1 Test Task:",
"28.10.2020 11:16:00 - TestTask 1 (0e748b3c-a58d-40f9-9078-8454aaf5847c)",
"28.10.2020 11:16:00 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:16:00 - with parameters: ",
"28.10.2020 11:16:00 - etf.testcases = *",
"28.10.2020 11:16:00 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:16:00 - Setting state to CREATED",
"28.10.2020 11:16:00 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:16:01 - Starting TestRun.a739edde-614a-425e-b278-48801e78b28a at 2020-10-28T11:16:02Z",
"28.10.2020 11:16:02 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:16:02 - Project Properties: ",
"28.10.2020 11:16:02 - etf.testcases - * ",
"28.10.2020 11:16:02 - serviceEndpoint - https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml ",
"28.10.2020 11:16:02 - username - ",
"28.10.2020 11:16:02 - authUser - ",
"28.10.2020 11:16:02 - authMethod - basic ",
"28.10.2020 11:16:02 - TestRunTask initialized"
]
}
11:16:05.345 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:05.858 response time in milliseconds: 513.17
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:16:05 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:16:00 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:00 UTC 2020)","28.10.2020 11:16:00 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:00 - Preparing 1 Test Task:","28.10.2020 11:16:00 - TestTask 1 (0e748b3c-a58d-40f9-9078-8454aaf5847c)","28.10.2020 11:16:00 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:00 - with parameters: ","28.10.2020 11:16:00 - etf.testcases = *","28.10.2020 11:16:00 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:00 - Setting state to CREATED","28.10.2020 11:16:00 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:01 - Starting TestRun.a739edde-614a-425e-b278-48801e78b28a at 2020-10-28T11:16:02Z","28.10.2020 11:16:02 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:02 - Project Properties: ","28.10.2020 11:16:02 - etf.testcases - * ","28.10.2020 11:16:02 - serviceEndpoint - https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml ","28.10.2020 11:16:02 - username - ","28.10.2020 11:16:02 - authUser - ","28.10.2020 11:16:02 - authMethod - basic ","28.10.2020 11:16:02 - TestRunTask initialized"]}
11:16:05.859 retry condition not satisfied: response.val == response.max
11:16:05.859 sleeping before retry #1
11:16:10.860 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:11.428 response time in milliseconds: 568.16
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:16:11 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"175","max":"176","log":["28.10.2020 11:16:00 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:00 UTC 2020)","28.10.2020 11:16:00 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:00 - Preparing 1 Test Task:","28.10.2020 11:16:00 - TestTask 1 (0e748b3c-a58d-40f9-9078-8454aaf5847c)","28.10.2020 11:16:00 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:00 - with parameters: ","28.10.2020 11:16:00 - etf.testcases = *","28.10.2020 11:16:00 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:00 - Setting state to CREATED","28.10.2020 11:16:00 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:01 - Starting TestRun.a739edde-614a-425e-b278-48801e78b28a at 2020-10-28T11:16:02Z","28.10.2020 11:16:02 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:02 - Project Properties: ","28.10.2020 11:16:02 - etf.testcases - * ","28.10.2020 11:16:02 - serviceEndpoint - https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml ","28.10.2020 11:16:02 - username - ","28.10.2020 11:16:02 - authUser - ","28.10.2020 11:16:02 - authMethod - basic ","28.10.2020 11:16:02 - TestRunTask initialized"]}
11:16:11.428 retry condition not satisfied: response.val == response.max
11:16:11.429 sleeping before retry #2
11:16:16.429 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:18.441 response time in milliseconds: 2011.31
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:16:18 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:16:18.454 retry condition satisfied
11:16:18.455 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:16:18.456 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:22.892 response time in milliseconds: 3335.68
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:16:21 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:16:17 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a739edde-614a-425e-b278-48801e78b28a.json","testRuns":{"TestRun":{"id":"EIDa739edde-614a-425e-b278-48801e78b28a","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:00.41Z","testTasks":{"TestTask":{"id":"EID0e748b3c-a58d-40f9-9078-8454aaf5847c","parent":{"ref":"EIDa739edde-614a-425e-b278-48801e78b28a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID285887cd-9ab2-4e52-92f2-80ccb240451c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID285887cd-9ab2-4e52-92f2-80ccb240451c","remoteResource":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:57.792Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:58.733Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0","testObject":{"ref":"EID285887cd-9ab2-4e52-92f2-80ccb240451c"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eec03fa-0175-1000-600e-ca0441b0657d","testCaseResults":{"TestCaseResult":[{"id":"EID6eec03fa-0175-1000-f2b6-bcc463604b0d","testStepResults":{"TestStepResult":[{"id":"EID6eec03fe-0175-1000-7d82-edb8884d6a5c","parent":{"ref":"EID6eec03fa-0175-1000-f2b6-bcc463604b0d"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:16:02Z","duration":32,"status":"PASSED"},{"id":"EID6eec041e-0175-1000-3b6b-6ede4560f798","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec04af-0175-1000-316f-f5d7c6b6d5cd","parent":{"ref":"EID6eec041e-0175-1000-3b6b-6ede4560f798"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:16:02Z","duration":0,"status":"PASSED"},{"id":"EID6eec04af-0175-1000-e384-4fa0f7a8d5b5","parent":{"ref":"EID6eec041e-0175-1000-3b6b-6ede4560f798"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:16:02Z","duration":0,"status":"PASSED"},{"id":"EID6eec04af-0175-1000-c18c-cf0fdbab8582","parent":{"ref":"EID6eec041e-0175-1000-3b6b-6ede4560f798"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:16:02Z","duration":0,"status":"PASSED"},{"id":"EID6eec04af-0175-1000-b514-c5155fa95a6e","parent":{"ref":"EID6eec041e-0175-1000-3b6b-6ede4560f798"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:16:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf73535ea-b041-46b7-9614-077fc9e53395"},{"ref":"EID44328df0-2458-4dd0-af93-e2f4aa63a073"},{"ref":"EIDd9119c46-e446-4320-85ed-594f2f710910"}]},"parent":{"ref":"EID6eec03fa-0175-1000-f2b6-bcc463604b0d"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:16:02Z","duration":64,"status":"PASSED"}]},"parent":{"ref":"EID6eec03fa-0175-1000-600e-ca0441b0657d"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:16:02Z","duration":190,"status":"PASSED"},{"id":"EID6eec04b8-0175-1000-1914-2fd5b4925e19","testStepResults":{"TestStepResult":{"id":"EID6eec04b8-0175-1000-9277-b6138e7becf9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0553-0175-1000-9eb4-c687ef62486c","parent":{"ref":"EID6eec04b8-0175-1000-9277-b6138e7becf9"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec0553-0175-1000-351f-df0d486e162a","parent":{"ref":"EID6eec04b8-0175-1000-9277-b6138e7becf9"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec0553-0175-1000-34d3-a5d6487c3027","parent":{"ref":"EID6eec04b8-0175-1000-9277-b6138e7becf9"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID420ba700-43c6-4e91-a0d9-f730c7f9e3c6"},{"ref":"EID546b5083-113a-4596-bed6-d4f66d4c6235"},{"ref":"EIDd6381037-166c-4fba-8859-39796671bdf3"}]},"parent":{"ref":"EID6eec04b8-0175-1000-1914-2fd5b4925e19"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:16:02Z","duration":64,"status":"PASSED"}},"parent":{"ref":"EID6eec03fa-0175-1000-600e-ca0441b0657d"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:16:02Z","duration":155,"status":"PASSED"}]},"parent":{"ref":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:16:02Z","duration":353,"status":"PASSED"},{"id":"EID6eec055b-0175-1000-d692-2f051edcb328","testCaseResults":{"TestCaseResult":[{"id":"EID6eec055b-0175-1000-015e-935d590dd79a","testStepResults":{"TestStepResult":[{"id":"EID6eec055b-0175-1000-2a3a-70dde2831f63","parent":{"ref":"EID6eec055b-0175-1000-015e-935d590dd79a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:16:03Z","duration":64,"status":"PASSED"},{"id":"EID6eec055b-0175-1000-7e22-1c93dcad94cf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec05e4-0175-1000-930a-c4dc3d3e89c5","parent":{"ref":"EID6eec055b-0175-1000-7e22-1c93dcad94cf"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec05e4-0175-1000-1371-95eae74c4bdf","parent":{"ref":"EID6eec055b-0175-1000-7e22-1c93dcad94cf"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec05e4-0175-1000-1fda-ae643594e927","parent":{"ref":"EID6eec055b-0175-1000-7e22-1c93dcad94cf"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec05e4-0175-1000-4b2d-6830589c3a81","parent":{"ref":"EID6eec055b-0175-1000-7e22-1c93dcad94cf"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec05e4-0175-1000-0d82-ba05ef524406","parent":{"ref":"EID6eec055b-0175-1000-7e22-1c93dcad94cf"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7d271f53-592c-4c01-875d-e6da31a77206"},{"ref":"EID4c51d7a1-1799-492e-ad1a-e888d14636dd"},{"ref":"EID36d0dc72-0972-41b9-b7e8-7567eedf3199"}]},"parent":{"ref":"EID6eec055b-0175-1000-015e-935d590dd79a"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:16:03Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:16:03Z","duration":156,"status":"PASSED"},{"id":"EID6eec05f7-0175-1000-5416-503574e068e3","testStepResults":{"TestStepResult":[{"id":"EID6eec05f7-0175-1000-11fd-ffbbd2863f76","attachments":{"attachment":[{"ref":"EIDb7c6708e-6238-490d-99c2-b9fe0b3b11b1"},{"ref":"EID3bd06952-4d1d-4285-b2ba-8e1f50ba1283"}]},"parent":{"ref":"EID6eec05f7-0175-1000-5416-503574e068e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:16:03Z","duration":177,"status":"PASSED"},{"id":"EID6eec06de-0175-1000-cb22-74aff601d3bc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec081a-0175-1000-c8ab-057338572956","parent":{"ref":"EID6eec06de-0175-1000-cb22-74aff601d3bc"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec081a-0175-1000-6c73-76609004a3a2","parent":{"ref":"EID6eec06de-0175-1000-cb22-74aff601d3bc"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec081a-0175-1000-4159-c5cb22bef1c4","parent":{"ref":"EID6eec06de-0175-1000-cb22-74aff601d3bc"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"},{"id":"EID6eec081a-0175-1000-a5da-de79cac90598","parent":{"ref":"EID6eec06de-0175-1000-cb22-74aff601d3bc"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:16:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID34a8a6a4-a889-4aa7-9c21-4615c02cbdea"},{"ref":"EIDf6b66697-d9a4-4864-9129-90b80a039fe5"},{"ref":"EID4f6de133-5c25-4b80-b06d-880eb772509a"}]},"parent":{"ref":"EID6eec05f7-0175-1000-5416-503574e068e3"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:16:03Z","duration":229,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:16:03Z","duration":555,"status":"PASSED"},{"id":"EID6eec0822-0175-1000-fa6c-df1b5c99c7d3","testStepResults":{"TestStepResult":[{"id":"EID6eec0822-0175-1000-ebcc-8f3a0da878eb","attachments":{"attachment":[{"ref":"EIDe6fc5116-c7aa-4cd1-ba9f-af380bce2503"},{"ref":"EIDee325513-a5cb-42df-9533-30529098d4fc"}]},"parent":{"ref":"EID6eec0822-0175-1000-fa6c-df1b5c99c7d3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:16:03Z","duration":100,"status":"PASSED"},{"id":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec09ea-0175-1000-ed75-1ad9b139a63d","parent":{"ref":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec09ea-0175-1000-c4e7-5c74460a96d0","parent":{"ref":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec09ea-0175-1000-3fa4-24ad1d9213e1","parent":{"ref":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec09ea-0175-1000-b43b-1a6bdf3c6877","parent":{"ref":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec09ea-0175-1000-1e99-308238fe4b6a","parent":{"ref":"EID6eec0909-0175-1000-be30-2eb6a1b54d7b"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa969f387-4c79-4f82-8467-808cf3507245"},{"ref":"EID4c827518-3d23-4ae8-b148-39160d663e3d"},{"ref":"EID77928e60-b26c-4a62-8d94-036b0ed56720"}]},"parent":{"ref":"EID6eec0822-0175-1000-fa6c-df1b5c99c7d3"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:16:03Z","duration":107,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:16:03Z","duration":456,"status":"PASSED"},{"id":"EID6eec09ea-0175-1000-31d4-1cfe07166955","testStepResults":{"TestStepResult":[{"id":"EID6eec09ea-0175-1000-6ec3-844c599e447e","attachments":{"attachment":[{"ref":"EID98378b91-34c6-4c2b-8e93-c3ece76424f0"},{"ref":"EID258ef4a7-f430-433e-9ca1-c401c5bce1c1"}]},"parent":{"ref":"EID6eec09ea-0175-1000-31d4-1cfe07166955"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":72,"status":"PASSED"},{"id":"EID6eec0a63-0175-1000-9e5f-0f17b0613b88","parent":{"ref":"EID6eec09ea-0175-1000-31d4-1cfe07166955"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0a63-0175-1000-026c-000444dd28ef","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0af5-0175-1000-9025-06b7342ab09a","parent":{"ref":"EID6eec0a63-0175-1000-026c-000444dd28ef"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0af5-0175-1000-584a-0fcd9798c60b","parent":{"ref":"EID6eec0a63-0175-1000-026c-000444dd28ef"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0af5-0175-1000-ed18-3daf23e08cf3","parent":{"ref":"EID6eec0a63-0175-1000-026c-000444dd28ef"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0af5-0175-1000-e373-1c59da3e3f33","parent":{"ref":"EID6eec0a63-0175-1000-026c-000444dd28ef"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe0c596f3-e540-4c5f-aa41-d994bd466794"},{"ref":"EID1a3554ad-f5ed-4fa0-b807-40f7a72deb83"},{"ref":"EIDd3c5195c-c26a-40b6-b37e-8d0fa12afcd9"}]},"parent":{"ref":"EID6eec09ea-0175-1000-31d4-1cfe07166955"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:16:04Z","duration":23,"status":"PASSED"},{"id":"EID6eec0af5-0175-1000-3bed-12a6af8f8e90","attachments":{"attachment":{"ref":"EID18be8472-13de-4608-9df6-16c0ee96db3a"}},"parent":{"ref":"EID6eec09ea-0175-1000-31d4-1cfe07166955"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":1,"status":"PASSED"},{"id":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0b74-0175-1000-56d3-9666a67faaf2","parent":{"ref":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0b74-0175-1000-aceb-335f70d8d9ae","parent":{"ref":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0b74-0175-1000-08e6-29558e81b858","parent":{"ref":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0b74-0175-1000-8c99-6905dc7e18cc","parent":{"ref":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0b74-0175-1000-fda5-ed3d42d1f62f","parent":{"ref":"EID6eec0b00-0175-1000-7a26-1d8cfa66d5aa"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID199d897c-0422-4cef-a1f8-c4b1b07c4e61"},{"ref":"EID1c5eb94a-a4a0-4464-8742-29dd508b45be"},{"ref":"EIDbf2abd35-a287-47a0-bb90-d26f82615343"}]},"parent":{"ref":"EID6eec09ea-0175-1000-31d4-1cfe07166955"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:16:04Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:16:04Z","duration":402,"status":"PASSED"},{"id":"EID6eec0b7c-0175-1000-3a53-0653c2225d70","testStepResults":{"TestStepResult":[{"id":"EID6eec0b7c-0175-1000-8026-0f50f1b628c9","attachments":{"attachment":[{"ref":"EID3577b97d-0c11-439b-8b77-365a61a3b9c5"},{"ref":"EID2d28603c-541d-4d5b-b291-f8a04c962bde"}]},"parent":{"ref":"EID6eec0b7c-0175-1000-3a53-0653c2225d70"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":122,"status":"PASSED"},{"id":"EID6eec0c20-0175-1000-92ab-135cb2e1d3bb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0cbe-0175-1000-d213-2e6f0f353c4d","parent":{"ref":"EID6eec0c20-0175-1000-92ab-135cb2e1d3bb"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0cbe-0175-1000-532c-f25bb1586799","parent":{"ref":"EID6eec0c20-0175-1000-92ab-135cb2e1d3bb"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0cbe-0175-1000-e1d4-61a906b1a2ee","parent":{"ref":"EID6eec0c20-0175-1000-92ab-135cb2e1d3bb"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0cbe-0175-1000-59a9-33d5f5207011","parent":{"ref":"EID6eec0c20-0175-1000-92ab-135cb2e1d3bb"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID66f1665d-5433-4579-aced-c762c00a3d60"},{"ref":"EIDc273fcec-4690-4324-a908-6c08207a4210"},{"ref":"EIDf7c9efab-a41b-4a0c-8b29-290f0f71e3de"}]},"parent":{"ref":"EID6eec0b7c-0175-1000-3a53-0653c2225d70"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:16:04Z","duration":42,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:16:04Z","duration":327,"status":"PASSED"},{"id":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f","testStepResults":{"TestStepResult":[{"id":"EID6eec0cc3-0175-1000-8d39-08ff66403bdf","attachments":{"attachment":[{"ref":"EIDd0c0ba9c-b62d-4262-ac34-fed2f77aa39d"},{"ref":"EID941fb23a-451b-44d3-b30d-fe99f1e6a42f"}]},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":104,"status":"PASSED"},{"id":"EID6eec0d54-0175-1000-63f3-a272ea9e0486","parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0d54-0175-1000-c41b-f85d6c0b533f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0dc6-0175-1000-f5e5-45382b93df6f","parent":{"ref":"EID6eec0d54-0175-1000-c41b-f85d6c0b533f"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0dc6-0175-1000-95a9-b8ab1df5830b","parent":{"ref":"EID6eec0d54-0175-1000-c41b-f85d6c0b533f"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0dc6-0175-1000-778f-5548d2876883","parent":{"ref":"EID6eec0d54-0175-1000-c41b-f85d6c0b533f"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0dc6-0175-1000-a6cc-55ff06230508","parent":{"ref":"EID6eec0d54-0175-1000-c41b-f85d6c0b533f"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6760cb4a-ba99-49e8-b8e0-92b5acf7ba7b"},{"ref":"EID798b34cb-3e59-42db-8449-6ed1d5d94cfa"},{"ref":"EID6701b7df-4e42-4946-911e-121dde4dd66b"}]},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:16:05Z","duration":28,"status":"PASSED"},{"id":"EID6eec0dc6-0175-1000-4b07-2520dba586f9","attachments":{"attachment":{"ref":"EID6d190dbe-90ab-4782-909c-f2ecdaf688ae"}},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":1,"status":"PASSED"},{"id":"EID6eec0dd0-0175-1000-3015-052d8662597c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0e95-0175-1000-f5e1-2bc6b02b198b","parent":{"ref":"EID6eec0dd0-0175-1000-3015-052d8662597c"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0e95-0175-1000-70c0-496f75f1a603","parent":{"ref":"EID6eec0dd0-0175-1000-3015-052d8662597c"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0e95-0175-1000-e4dc-dd0b318d236d","parent":{"ref":"EID6eec0dd0-0175-1000-3015-052d8662597c"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID299b382b-f52a-447d-a573-21d17768d6f5"},{"ref":"EID318a6a24-a385-4198-a7e6-5fca46647cc6"},{"ref":"EID63fb2f9b-1d44-46c8-a257-5efed604fe94"}]},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:16:05Z","duration":121,"status":"PASSED"},{"id":"EID6eec0e95-0175-1000-9024-503db23aada2","attachments":{"attachment":{"ref":"EID537a4868-84d7-497b-a4e6-556a5ea4f71f"}},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0ea2-0175-1000-f73f-420e85c2547a","attachments":{"attachment":{"ref":"EID2e857136-6bb9-4a8f-8327-a5e790fe3b21"}},"parent":{"ref":"EID6eec0cc3-0175-1000-1ed7-a2ffac0ee25f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:16:04Z","duration":503,"status":"PASSED"},{"id":"EID6eec0ebb-0175-1000-514e-a7826bcdb61c","testStepResults":{"TestStepResult":[{"id":"EID6eec0ebb-0175-1000-f120-160786a060b0","attachments":{"attachment":[{"ref":"EID19293e15-49e7-41c2-9e8d-c51e40d0efb5"},{"ref":"EID39791d3c-5e9a-4a38-933e-1052908553ad"}]},"parent":{"ref":"EID6eec0ebb-0175-1000-514e-a7826bcdb61c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":74,"status":"PASSED"},{"id":"EID6eec0f29-0175-1000-9144-b1f0d494ee84","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0f85-0175-1000-bde5-6b45be72dade","parent":{"ref":"EID6eec0f29-0175-1000-9144-b1f0d494ee84"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f85-0175-1000-11ac-7db331bf2b13","parent":{"ref":"EID6eec0f29-0175-1000-9144-b1f0d494ee84"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f85-0175-1000-f566-1c716c18869b","parent":{"ref":"EID6eec0f29-0175-1000-9144-b1f0d494ee84"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f85-0175-1000-b5d9-e144fc7a0a3b","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec0f29-0175-1000-9144-b1f0d494ee84"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDb1eeab00-baf5-4606-ab6d-64cc2f70eef0"},{"ref":"EID46edd7d9-72f5-4358-90f2-ae8884673682"},{"ref":"EID790e6ac9-39af-47ed-909b-a3513f6fae85"}]},"parent":{"ref":"EID6eec0ebb-0175-1000-514e-a7826bcdb61c"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:16:05Z","duration":22,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:16:05Z","duration":202,"status":"PASSED_MANUAL"},{"id":"EID6eec0f85-0175-1000-8eeb-8e142c4f557a","testStepResults":{"TestStepResult":{"id":"EID6eec0f85-0175-1000-6196-029fcd80d6fb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1036-0175-1000-09cf-845f1ba6837b","parent":{"ref":"EID6eec0f85-0175-1000-6196-029fcd80d6fb"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec1036-0175-1000-c5b5-ac98fa06bc74","parent":{"ref":"EID6eec0f85-0175-1000-6196-029fcd80d6fb"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec1036-0175-1000-8bfb-1127c01186c3","parent":{"ref":"EID6eec0f85-0175-1000-6196-029fcd80d6fb"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec1036-0175-1000-e8f5-168991d81ebd","parent":{"ref":"EID6eec0f85-0175-1000-6196-029fcd80d6fb"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2a2473dd-b51d-4a26-a6dc-52f96e3ca2f9"},{"ref":"EIDe9290460-56f3-4c06-a3b5-59e6dd91f6a2"},{"ref":"EID07510543-c41a-4552-990d-4cc8b1b02b19"}]},"parent":{"ref":"EID6eec0f85-0175-1000-8eeb-8e142c4f557a"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:16:05Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:16:05Z","duration":177,"status":"PASSED"},{"id":"EID6eec1037-0175-1000-c757-de32f18dc68f","testStepResults":{"TestStepResult":{"id":"EID6eec1037-0175-1000-59d6-02326ff82cf2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec109e-0175-1000-a095-57b1a9f84d66","parent":{"ref":"EID6eec1037-0175-1000-59d6-02326ff82cf2"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec109e-0175-1000-0aa7-53d935bd0093","parent":{"ref":"EID6eec1037-0175-1000-59d6-02326ff82cf2"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec109e-0175-1000-17b7-7b0dec4fea8e","parent":{"ref":"EID6eec1037-0175-1000-59d6-02326ff82cf2"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec109e-0175-1000-a1ab-88b7d5bdde0a","parent":{"ref":"EID6eec1037-0175-1000-59d6-02326ff82cf2"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3825c597-0250-4368-8a9b-1d1a39c629ea"},{"ref":"EID7107604a-53f3-453d-88db-72bae1f316ba"},{"ref":"EID54135994-6732-4118-95ff-dc7c9987bcd1"}]},"parent":{"ref":"EID6eec1037-0175-1000-c757-de32f18dc68f"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:16:05Z","duration":33,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:16:05Z","duration":103,"status":"PASSED"},{"id":"EID6eec109e-0175-1000-5dfd-4de7567376c0","testStepResults":{"TestStepResult":[{"id":"EID6eec109e-0175-1000-e6c5-af961d0c6a8d","attachments":{"attachment":[{"ref":"EIDe3ca10e3-397e-4a39-9d2a-af85c72ee216"},{"ref":"EIDe90ed41e-f738-42ff-9fc2-55588b0a0c71"},{"ref":"EID7deaf53b-7107-4352-9f5a-81006e1986bc"},{"ref":"EID966d820f-0ede-42d3-8113-bddcf4ba0cbb"},{"ref":"EID606dcae9-f09c-4548-b4d0-51cb1d0c6a40"},{"ref":"EID329d8ac8-4687-4acf-8500-d88a9ca4d380"},{"ref":"EIDee2032a7-49ec-433e-b680-2cf3f53805a1"},{"ref":"EID95427499-39a7-493d-b68c-17d290f1eb19"},{"ref":"EID382769cc-edb1-45cd-b6a3-12b51ef6a2e5"},{"ref":"EIDdc92fa1b-a066-475f-a6c6-06f7033fc5a5"},{"ref":"EIDdd345b25-1a59-4fe9-9f17-8563f2916cfd"},{"ref":"EID3bf586c8-484d-4c0f-99dd-06b1f74a2cb8"}]},"parent":{"ref":"EID6eec109e-0175-1000-5dfd-4de7567376c0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":285,"status":"PASSED"},{"id":"EID6eec12f7-0175-1000-2109-4158e533301e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec13a7-0175-1000-346a-c7b5d76aeb26","parent":{"ref":"EID6eec12f7-0175-1000-2109-4158e533301e"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec13a7-0175-1000-3116-0580a4876164","parent":{"ref":"EID6eec12f7-0175-1000-2109-4158e533301e"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec13a7-0175-1000-d50f-a9f07bbee10f","parent":{"ref":"EID6eec12f7-0175-1000-2109-4158e533301e"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec13a7-0175-1000-dba6-913e942dc85e","parent":{"ref":"EID6eec12f7-0175-1000-2109-4158e533301e"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec13a7-0175-1000-cf29-e01d12209743","parent":{"ref":"EID6eec12f7-0175-1000-2109-4158e533301e"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7ddc1c13-f794-42d6-8e78-734c1fb9399b"},{"ref":"EID2f43ed0d-6ad8-4fcd-901d-627e2af30f2f"},{"ref":"EIDc475a3b6-052d-45c5-b7ab-474e42bd22e1"}]},"parent":{"ref":"EID6eec109e-0175-1000-5dfd-4de7567376c0"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:16:06Z","duration":24,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:16:05Z","duration":777,"status":"PASSED"},{"id":"EID6eec13a8-0175-1000-b5c8-623bc7126f99","testStepResults":{"TestStepResult":{"id":"EID6eec13a8-0175-1000-425c-0eb861dd7551","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1427-0175-1000-7ceb-392e78ffef5d","parent":{"ref":"EID6eec13a8-0175-1000-425c-0eb861dd7551"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1427-0175-1000-76cc-d4c0a4cc2b72","parent":{"ref":"EID6eec13a8-0175-1000-425c-0eb861dd7551"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1427-0175-1000-0bc1-d65a7d5e49da","parent":{"ref":"EID6eec13a8-0175-1000-425c-0eb861dd7551"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1427-0175-1000-9631-45e38baf0bde","parent":{"ref":"EID6eec13a8-0175-1000-425c-0eb861dd7551"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb57a589b-964c-4808-ba6b-7d8aa922d76c"},{"ref":"EIDed615172-5563-40f7-a40f-1fca0555a6d4"},{"ref":"EIDf948a4e1-d797-4d1f-8f83-e470349abc6e"}]},"parent":{"ref":"EID6eec13a8-0175-1000-b5c8-623bc7126f99"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:16:06Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:16:06Z","duration":127,"status":"PASSED"},{"id":"EID6eec1427-0175-1000-c5d3-7a5a7286d6a0","testStepResults":{"TestStepResult":{"id":"EID6eec1427-0175-1000-9302-62da6e52255a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec14f0-0175-1000-f89e-2f1fb2a6f154","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-87e7-340f06d7f315","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-70a6-1d3a24925fa0","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-3dd3-6a851b80b5b4","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-53ce-71571f81a26b","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-14f4-aaf75a65c9ab","parent":{"ref":"EID6eec1427-0175-1000-9302-62da6e52255a"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4b8a9c02-f3a5-4fe8-bf27-67f6c025f7f0"},{"ref":"EID7b6b4cbf-36a5-410e-be16-53382bb7b3fe"},{"ref":"EIDb831fbef-e304-40b8-aab2-7cc5207e61fb"}]},"parent":{"ref":"EID6eec1427-0175-1000-c5d3-7a5a7286d6a0"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:16:06Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:16:06Z","duration":201,"status":"PASSED"},{"id":"EID6eec14f0-0175-1000-6d1c-96094bc7a64a","testStepResults":{"TestStepResult":{"id":"EID6eec14f0-0175-1000-3186-e74158638ece","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec157c-0175-1000-b0ce-c5cc3b4d8735","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-1c4a-69fee501b527","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-56bb-3945c65a5b7d","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-74dc-787291d30309","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-7c7d-75cfa71839fd","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-7cdd-aeaa91c2e865","parent":{"ref":"EID6eec14f0-0175-1000-3186-e74158638ece"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe728f612-4e53-47e2-a434-fea99107195e"},{"ref":"EIDae863c33-884b-4a9c-be3d-7d5376b4017b"},{"ref":"EID14a21820-5983-432f-9773-6e02b30300ab"}]},"parent":{"ref":"EID6eec14f0-0175-1000-6d1c-96094bc7a64a"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:16:07Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:16:07Z","duration":140,"status":"PASSED"},{"id":"EID6eec157c-0175-1000-954b-803467a6ef8f","testStepResults":{"TestStepResult":{"id":"EID6eec157c-0175-1000-23df-79e1b558735b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec160f-0175-1000-caa4-f7b83ea017c1","parent":{"ref":"EID6eec157c-0175-1000-23df-79e1b558735b"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec160f-0175-1000-77c4-5525d95b7a14","parent":{"ref":"EID6eec157c-0175-1000-23df-79e1b558735b"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec160f-0175-1000-e3aa-5d5aa3f78cc9","parent":{"ref":"EID6eec157c-0175-1000-23df-79e1b558735b"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec160f-0175-1000-79d4-ac3b46c20dce","parent":{"ref":"EID6eec157c-0175-1000-23df-79e1b558735b"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID44344dbb-8cc6-44ad-a501-c8abc3553f70"},{"ref":"EIDd5cd5598-d616-41f8-b207-8fe7b363a894"},{"ref":"EID8484ba10-7a29-4ebd-8598-f3e2ab284b0e"}]},"parent":{"ref":"EID6eec157c-0175-1000-954b-803467a6ef8f"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:16:07Z","duration":24,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:16:07Z","duration":147,"status":"PASSED"},{"id":"EID6eec1618-0175-1000-e10b-0b5e275e62b5","testStepResults":{"TestStepResult":[{"id":"EID6eec1618-0175-1000-0084-88bf42998b38","attachments":{"attachment":[{"ref":"EID83ada865-18ab-4747-8917-c6e4eb3eac03"},{"ref":"EIDff909781-bef5-45ba-ac14-fdc88792f049"},{"ref":"EID7f20d94b-f420-4b25-97e8-5a3f138e6267"},{"ref":"EID57c9ef27-2979-48c6-b58f-f3fd43926aaa"}]},"parent":{"ref":"EID6eec1618-0175-1000-e10b-0b5e275e62b5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":238,"status":"PASSED"},{"id":"EID6eec1733-0175-1000-8d5c-a104c0fde1e6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec17a0-0175-1000-8f04-6d8df3ffdbff","parent":{"ref":"EID6eec1733-0175-1000-8d5c-a104c0fde1e6"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17a0-0175-1000-2596-e69d88c334be","parent":{"ref":"EID6eec1733-0175-1000-8d5c-a104c0fde1e6"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17a0-0175-1000-987a-04673a76bda8","parent":{"ref":"EID6eec1733-0175-1000-8d5c-a104c0fde1e6"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17a0-0175-1000-8f9b-6dc27ecbbc98","parent":{"ref":"EID6eec1733-0175-1000-8d5c-a104c0fde1e6"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3be2c3b0-95a8-41e3-bc44-d3a41eb5b525"},{"ref":"EID8a0222b0-5592-49ce-a971-72d92455ad87"},{"ref":"EID47d8246d-77f1-4809-b8d1-d43db81175ff"}]},"parent":{"ref":"EID6eec1618-0175-1000-e10b-0b5e275e62b5"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:16:07Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:16:07Z","duration":393,"status":"PASSED"},{"id":"EID6eec17a1-0175-1000-1363-81ce892421a0","testStepResults":{"TestStepResult":{"id":"EID6eec17a1-0175-1000-7560-71da140d41f8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec17f8-0175-1000-4c72-e335292ffa91","parent":{"ref":"EID6eec17a1-0175-1000-7560-71da140d41f8"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f8-0175-1000-eeca-bce41c547403","parent":{"ref":"EID6eec17a1-0175-1000-7560-71da140d41f8"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f8-0175-1000-ad5c-6b55c7a10af6","parent":{"ref":"EID6eec17a1-0175-1000-7560-71da140d41f8"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f8-0175-1000-12ba-947725676b31","parent":{"ref":"EID6eec17a1-0175-1000-7560-71da140d41f8"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfad05102-d28f-40c9-a5c0-112556ac0909"},{"ref":"EID19421bc6-8e62-422d-b5a0-f7fae10aae4a"},{"ref":"EID1fd48e67-c5fe-4787-9494-5d7dcb9f755e"}]},"parent":{"ref":"EID6eec17a1-0175-1000-1363-81ce892421a0"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:16:07Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:16:07Z","duration":97,"status":"PASSED"},{"id":"EID6eec1802-0175-1000-6de6-00e21f1f88f1","testStepResults":{"TestStepResult":[{"id":"EID6eec1802-0175-1000-fd8b-f30431c12340","parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec1802-0175-1000-8a3b-535f2d1dab5b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1879-0175-1000-488a-915e1336206b","parent":{"ref":"EID6eec1802-0175-1000-8a3b-535f2d1dab5b"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec1879-0175-1000-ab64-ea4e5153741d","parent":{"ref":"EID6eec1802-0175-1000-8a3b-535f2d1dab5b"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec187a-0175-1000-06de-847b1a21b3dc","parent":{"ref":"EID6eec1802-0175-1000-8a3b-535f2d1dab5b"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec187a-0175-1000-1bfe-828b277c4bbd","parent":{"ref":"EID6eec1802-0175-1000-8a3b-535f2d1dab5b"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe5b60878-a297-4f94-84e7-d9cece2953f0"},{"ref":"EID2f4134ae-eafa-47ba-ac97-62e94c667b44"},{"ref":"EID2bc7c7f4-4123-4128-b4eb-86ba0eb2ce08"}]},"parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:16:07Z","duration":22,"status":"PASSED"},{"id":"EID6eec187a-0175-1000-997e-737c33be935e","attachments":{"attachment":{"ref":"EID5f021af5-21ca-4831-b048-5fcbd1ab1654"}},"parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec18a3-0175-1000-3e2b-5df8e31a423b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1936-0175-1000-c900-a9e98d44b856","parent":{"ref":"EID6eec18a3-0175-1000-3e2b-5df8e31a423b"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1936-0175-1000-f68d-695c8cec091e","parent":{"ref":"EID6eec18a3-0175-1000-3e2b-5df8e31a423b"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1936-0175-1000-d1f4-8a423c91b9f3","parent":{"ref":"EID6eec18a3-0175-1000-3e2b-5df8e31a423b"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1936-0175-1000-fcee-5c8a26fffac9","parent":{"ref":"EID6eec18a3-0175-1000-3e2b-5df8e31a423b"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaf3b626f-4696-4e1b-8945-79154fa09bab"},{"ref":"EIDd8ab392e-cb48-4c8b-ac90-4dc9dfe06883"},{"ref":"EIDbe288fe7-2125-4ded-8ce3-a88df981169f"}]},"parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:16:07Z","duration":75,"status":"PASSED"},{"id":"EID6eec1936-0175-1000-7302-24b299c016a4","attachments":{"attachment":{"ref":"EID29055247-43ab-4bec-b7b4-b57cba7815a7"}},"parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":1,"status":"PASSED"},{"id":"EID6eec1942-0175-1000-3c98-38be701fc312","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec19d4-0175-1000-9ba5-f624e26520ca","parent":{"ref":"EID6eec1942-0175-1000-3c98-38be701fc312"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19d4-0175-1000-464c-c94b96f57d14","parent":{"ref":"EID6eec1942-0175-1000-3c98-38be701fc312"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19d4-0175-1000-633b-137d667482ae","parent":{"ref":"EID6eec1942-0175-1000-3c98-38be701fc312"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19d4-0175-1000-12a2-0a7992045a44","parent":{"ref":"EID6eec1942-0175-1000-3c98-38be701fc312"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb91560fa-2d9f-4aa6-923b-3dc0c1e7cb71"},{"ref":"EIDff43dba5-bdc3-40cc-a358-1d7752b127a9"},{"ref":"EIDc479f8a8-c7ba-4769-81c7-015e698bb0d1"}]},"parent":{"ref":"EID6eec1802-0175-1000-6de6-00e21f1f88f1"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:16:08Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec055b-0175-1000-d692-2f051edcb328"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:16:07Z","duration":466,"status":"PASSED"}]},"parent":{"ref":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:16:03Z","duration":5241,"status":"PASSED_MANUAL"},{"id":"EID6eec19d4-0175-1000-4266-451f0b438db5","testCaseResults":{"TestCaseResult":[{"id":"EID6eec19d4-0175-1000-df83-9aac409c26c2","testStepResults":{"TestStepResult":[{"id":"EID6eec19d4-0175-1000-b918-d6b30215c8d2","parent":{"ref":"EID6eec19d4-0175-1000-df83-9aac409c26c2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19d4-0175-1000-1cf7-99c0c3903ef1","parent":{"ref":"EID6eec19d4-0175-1000-df83-9aac409c26c2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":22,"status":"PASSED"},{"id":"EID6eec19d4-0175-1000-318a-1f2c783f723b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1a2a-0175-1000-1647-9abc47efca49","parent":{"ref":"EID6eec19d4-0175-1000-318a-1f2c783f723b"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a2a-0175-1000-e8f3-05060e81e85f","parent":{"ref":"EID6eec19d4-0175-1000-318a-1f2c783f723b"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a2a-0175-1000-2394-8ba683864f6b","parent":{"ref":"EID6eec19d4-0175-1000-318a-1f2c783f723b"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfb661084-d1ab-4df4-87c6-7a669683ec75"},{"ref":"EIDfe879b1d-3b8c-47a7-9e8e-ac59bbc80983"},{"ref":"EIDc6f00d20-fcdd-4d07-86d7-f117f8f326f5"}]},"parent":{"ref":"EID6eec19d4-0175-1000-df83-9aac409c26c2"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:16:08Z","duration":25,"status":"PASSED"},{"id":"EID6eec1a2a-0175-1000-51c7-02cd87112e16","attachments":{"attachment":{"ref":"EID61886424-dc5e-40c8-8169-be532fc9a750"}},"parent":{"ref":"EID6eec19d4-0175-1000-df83-9aac409c26c2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a34-0175-1000-aee6-b7b36fc8f575","parent":{"ref":"EID6eec19d4-0175-1000-df83-9aac409c26c2"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:16:08Z","duration":18,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:16:08Z","duration":114,"status":"PASSED"},{"id":"EID6eec1a47-0175-1000-e4da-6fe744f0fe1a","testStepResults":{"TestStepResult":[{"id":"EID6eec1a47-0175-1000-9539-47a405460697","parent":{"ref":"EID6eec1a47-0175-1000-e4da-6fe744f0fe1a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":64,"status":"PASSED"},{"id":"EID6eec1a47-0175-1000-d79e-11898f4b21b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1a9d-0175-1000-6a12-e46b4cf187e6","parent":{"ref":"EID6eec1a47-0175-1000-d79e-11898f4b21b5"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a9d-0175-1000-1994-380da747febc","parent":{"ref":"EID6eec1a47-0175-1000-d79e-11898f4b21b5"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a9d-0175-1000-c933-60139702fa6f","parent":{"ref":"EID6eec1a47-0175-1000-d79e-11898f4b21b5"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a9d-0175-1000-42a3-ec696a0d90bb","parent":{"ref":"EID6eec1a47-0175-1000-d79e-11898f4b21b5"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a9d-0175-1000-37f8-88e1e5c5998f","parent":{"ref":"EID6eec1a47-0175-1000-d79e-11898f4b21b5"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDab960a0a-5c48-4811-a667-748c29b4a61a"},{"ref":"EID442ab680-7b8c-4f3f-a7bb-0b4873d600a7"},{"ref":"EID1869a4eb-08d5-4895-83d7-b593328822c8"}]},"parent":{"ref":"EID6eec1a47-0175-1000-e4da-6fe744f0fe1a"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:16:08Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:16:08Z","duration":86,"status":"PASSED"},{"id":"EID6eec1a9d-0175-1000-7332-f1f5b2184171","testStepResults":{"TestStepResult":[{"id":"EID6eec1a9d-0175-1000-8d9a-8ab70efdaa82","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1af3-0175-1000-4637-a077e664547e","parent":{"ref":"EID6eec1a9d-0175-1000-8d9a-8ab70efdaa82"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1af3-0175-1000-8082-82b9059ab138","parent":{"ref":"EID6eec1a9d-0175-1000-8d9a-8ab70efdaa82"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1af3-0175-1000-d8ff-da5e0a15da5a","parent":{"ref":"EID6eec1a9d-0175-1000-8d9a-8ab70efdaa82"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9fa6cdac-f770-4a53-b2b8-54623c13b0c8"},{"ref":"EID1e0df0ff-c8b7-4d7a-b571-0cfc11575134"},{"ref":"EIDbc571fca-af68-4d6e-ade3-cdd3cdc680bc"}]},"parent":{"ref":"EID6eec1a9d-0175-1000-7332-f1f5b2184171"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:16:08Z","duration":26,"status":"PASSED"},{"id":"EID6eec1af3-0175-1000-c604-293280979e6f","attachments":{"attachment":{"ref":"EIDdcf626ee-2953-4487-ba11-1e4f0549b4a9"}},"parent":{"ref":"EID6eec1a9d-0175-1000-7332-f1f5b2184171"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b00-0175-1000-147a-a34847b85e89","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1b7e-0175-1000-42ed-b5b878674afd","parent":{"ref":"EID6eec1b00-0175-1000-147a-a34847b85e89"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b7e-0175-1000-14a6-1ac8ef0ec50c","parent":{"ref":"EID6eec1b00-0175-1000-147a-a34847b85e89"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b7e-0175-1000-9cef-618cfb5cd46d","parent":{"ref":"EID6eec1b00-0175-1000-147a-a34847b85e89"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b7e-0175-1000-0c9b-df6e6eff0b1a","parent":{"ref":"EID6eec1b00-0175-1000-147a-a34847b85e89"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b7e-0175-1000-310e-2c47b864aece","parent":{"ref":"EID6eec1b00-0175-1000-147a-a34847b85e89"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID18c814d6-725a-4dcb-9317-5425572803fa"},{"ref":"EIDc9c033a7-6957-418f-bf1c-1034e13f88a6"},{"ref":"EID0d83d34f-3391-419a-9e30-f2625def6b5a"}]},"parent":{"ref":"EID6eec1a9d-0175-1000-7332-f1f5b2184171"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:16:08Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:16:08Z","duration":225,"status":"PASSED"},{"id":"EID6eec1b7e-0175-1000-e4d2-1dff35acdf0f","testStepResults":{"TestStepResult":[{"id":"EID6eec1b7f-0175-1000-106b-c6b47f5c7fc6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1be3-0175-1000-1dc7-d103fa9143a4","parent":{"ref":"EID6eec1b7f-0175-1000-106b-c6b47f5c7fc6"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1be3-0175-1000-54e7-c7f754a516ed","parent":{"ref":"EID6eec1b7f-0175-1000-106b-c6b47f5c7fc6"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1be3-0175-1000-0fb6-f489a88cb261","parent":{"ref":"EID6eec1b7f-0175-1000-106b-c6b47f5c7fc6"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1be3-0175-1000-70bc-90f5a36b1758","parent":{"ref":"EID6eec1b7f-0175-1000-106b-c6b47f5c7fc6"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDed4d47cf-6254-43e4-8fcd-4171a95e7c98"},{"ref":"EIDc21d00c2-a1b3-497d-ac29-f2ebc2012d11"},{"ref":"EID09307ed0-f2cd-4ef5-8de5-87cdab8e3a63"}]},"parent":{"ref":"EID6eec1b7e-0175-1000-e4d2-1dff35acdf0f"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:16:08Z","duration":22,"status":"PASSED"},{"id":"EID6eec1be3-0175-1000-484f-b2267bd4714f","attachments":{"attachment":{"ref":"EID4232153a-a463-4742-acb8-344cc70584d4"}},"parent":{"ref":"EID6eec1b7e-0175-1000-e4d2-1dff35acdf0f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":1,"status":"PASSED"},{"id":"EID6eec1bf0-0175-1000-417c-81f87cd82673","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1c1b-0175-1000-a62b-c93a78730ff0","parent":{"ref":"EID6eec1bf0-0175-1000-417c-81f87cd82673"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1c1b-0175-1000-bdfa-6688a327b413","parent":{"ref":"EID6eec1bf0-0175-1000-417c-81f87cd82673"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID591ec227-1758-4938-8919-3a8eb92ff0a6"},{"ref":"EID7646a5ba-6f71-45de-be0f-a9d67b53834b"}]},"parent":{"ref":"EID6eec1b7e-0175-1000-e4d2-1dff35acdf0f"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:16:08Z","duration":39,"status":"PASSED"},{"id":"EID6eec1c1b-0175-1000-86d9-b775dd1f3f73","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1ca0-0175-1000-49f2-3b9fabb7afca","parent":{"ref":"EID6eec1c1b-0175-1000-86d9-b775dd1f3f73"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1ca0-0175-1000-4c53-65a1d2ab7a23","parent":{"ref":"EID6eec1c1b-0175-1000-86d9-b775dd1f3f73"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1ca0-0175-1000-aff5-b403abdebf7d","parent":{"ref":"EID6eec1c1b-0175-1000-86d9-b775dd1f3f73"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1ca0-0175-1000-11ac-5c9935842e21","parent":{"ref":"EID6eec1c1b-0175-1000-86d9-b775dd1f3f73"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdec00980-49d0-47da-906f-c8cea6d911a7"},{"ref":"EIDfdd1871f-85b8-4fb0-ab2f-609f6e1e64b2"},{"ref":"EID547d23bb-7196-4911-ae33-b2d81833e92f"}]},"parent":{"ref":"EID6eec1b7e-0175-1000-e4d2-1dff35acdf0f"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:16:08Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:16:08Z","duration":290,"status":"PASSED"},{"id":"EID6eec1ca1-0175-1000-bc72-1eea5ed6cb34","testStepResults":{"TestStepResult":{"id":"EID6eec1ca1-0175-1000-48ff-c697cbd95f52","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1d23-0175-1000-99db-94e348a3f231","parent":{"ref":"EID6eec1ca1-0175-1000-48ff-c697cbd95f52"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d23-0175-1000-5e66-c0b7936bf49a","parent":{"ref":"EID6eec1ca1-0175-1000-48ff-c697cbd95f52"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d23-0175-1000-a863-8ef427cd3d43","parent":{"ref":"EID6eec1ca1-0175-1000-48ff-c697cbd95f52"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaeaf2f67-0ef5-4e2e-860e-ee496a5f850d"},{"ref":"EIDf24d2d9f-090c-4c45-91c6-543738c300e7"},{"ref":"EID465bf049-ad9c-4dd3-a3e8-244693301ae5"}]},"parent":{"ref":"EID6eec1ca1-0175-1000-bc72-1eea5ed6cb34"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:16:08Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:16:08Z","duration":130,"status":"PASSED"},{"id":"EID6eec1d2a-0175-1000-5143-c0b78cc62449","testStepResults":{"TestStepResult":{"id":"EID6eec1d2b-0175-1000-495f-4c05bf3da25b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1d79-0175-1000-76b8-12ffba29b3d5","parent":{"ref":"EID6eec1d2b-0175-1000-495f-4c05bf3da25b"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-49e4-a88027f92d5f","parent":{"ref":"EID6eec1d2b-0175-1000-495f-4c05bf3da25b"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-81e4-b4e215f5feca","parent":{"ref":"EID6eec1d2b-0175-1000-495f-4c05bf3da25b"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc6e46cb1-2f49-40a6-a25d-6003b956be54"},{"ref":"EID8a2bb45f-a8ff-41a6-9322-9a3f27545517"},{"ref":"EID1f0c3ec1-d642-4db0-ac79-589ab3a57d38"}]},"parent":{"ref":"EID6eec1d2a-0175-1000-5143-c0b78cc62449"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:16:09Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:16:09Z","duration":79,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-776a-4c3208bb623e","testStepResults":{"TestStepResult":{"id":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1df4-0175-1000-cea2-527435512c44","parent":{"ref":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1df4-0175-1000-bc9e-54b7fe0da007","parent":{"ref":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1df4-0175-1000-5e94-d08dd1d1eeae","parent":{"ref":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1df4-0175-1000-1d42-89d38ce58ff1","parent":{"ref":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1df4-0175-1000-ca71-de5a7c008a80","parent":{"ref":"EID6eec1d79-0175-1000-40e8-0f2269f2f8fd"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID47803c64-ee4a-4fa1-92d4-1dffc1e45657"},{"ref":"EID189a8e99-1a02-4a4b-acbb-c7e1419f3276"},{"ref":"EID8bae48f0-bbe3-4df8-8d08-2840a3ce6e1b"}]},"parent":{"ref":"EID6eec1d79-0175-1000-776a-4c3208bb623e"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:16:09Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:16:09Z","duration":130,"status":"PASSED"},{"id":"EID6eec1dfb-0175-1000-ab6a-77214652af2c","testStepResults":{"TestStepResult":{"id":"EID6eec1dfb-0175-1000-91e9-052798566d96","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1e63-0175-1000-cbb8-0d4c8f0525c3","parent":{"ref":"EID6eec1dfb-0175-1000-91e9-052798566d96"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1e63-0175-1000-5c4e-38e16dc7fef9","parent":{"ref":"EID6eec1dfb-0175-1000-91e9-052798566d96"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1e63-0175-1000-003e-fcc8bfd113d3","parent":{"ref":"EID6eec1dfb-0175-1000-91e9-052798566d96"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1a32cf27-823a-4656-ac07-b394b22fa368"},{"ref":"EIDa9eed03a-6e0d-4efd-8295-90c277dc8446"},{"ref":"EIDdb312a23-5676-4f9f-8055-492754844f8a"}]},"parent":{"ref":"EID6eec1dfb-0175-1000-ab6a-77214652af2c"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:16:09Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:16:09Z","duration":104,"status":"PASSED"},{"id":"EID6eec1e63-0175-1000-3cb2-bf6d8c72fc74","testStepResults":{"TestStepResult":{"id":"EID6eec1e63-0175-1000-e545-85cd3a5abb3a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1ef6-0175-1000-b69a-aa5a355c9d66","parent":{"ref":"EID6eec1e63-0175-1000-e545-85cd3a5abb3a"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1ef6-0175-1000-23f3-c49d82ef108d","parent":{"ref":"EID6eec1e63-0175-1000-e545-85cd3a5abb3a"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1ef6-0175-1000-8a5d-c6b5556e8ed8","parent":{"ref":"EID6eec1e63-0175-1000-e545-85cd3a5abb3a"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDec68e4a9-ff04-4a61-bd38-58ca6abf8380"},{"ref":"EID9f9e447f-7c18-4be7-9813-081fb0463e9d"},{"ref":"EID25171f32-c6a7-4ea0-b812-9aa56094ad6b"}]},"parent":{"ref":"EID6eec1e63-0175-1000-3cb2-bf6d8c72fc74"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:16:09Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:16:09Z","duration":147,"status":"PASSED"},{"id":"EID6eec1ef6-0175-1000-54f4-fe12ab9fe750","testStepResults":{"TestStepResult":{"id":"EID6eec1ef6-0175-1000-77cd-273bb13f1cd1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1f53-0175-1000-6b42-b053aa7a2d60","parent":{"ref":"EID6eec1ef6-0175-1000-77cd-273bb13f1cd1"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f53-0175-1000-13a4-acb63b221ce9","parent":{"ref":"EID6eec1ef6-0175-1000-77cd-273bb13f1cd1"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f53-0175-1000-2489-6be5571fe9b3","parent":{"ref":"EID6eec1ef6-0175-1000-77cd-273bb13f1cd1"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f53-0175-1000-02e2-30a02ec56e1b","parent":{"ref":"EID6eec1ef6-0175-1000-77cd-273bb13f1cd1"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID71a410d0-6fb8-4dca-83b6-b9e342835319"},{"ref":"EID0b283953-11be-4e9b-8542-e26dabdc7c57"},{"ref":"EID811abe7a-f582-4bee-b2c8-de451bf183b4"}]},"parent":{"ref":"EID6eec1ef6-0175-1000-54f4-fe12ab9fe750"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:16:09Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:16:09Z","duration":93,"status":"PASSED"},{"id":"EID6eec1f53-0175-1000-1513-b8e1da76f244","testStepResults":{"TestStepResult":{"id":"EID6eec1f5b-0175-1000-d492-360c7e7521df","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1fb5-0175-1000-a127-8c8ba0b88d48","parent":{"ref":"EID6eec1f5b-0175-1000-d492-360c7e7521df"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1fb5-0175-1000-d13c-44c4bb50a278","parent":{"ref":"EID6eec1f5b-0175-1000-d492-360c7e7521df"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1fb5-0175-1000-c987-13031a3d71a5","parent":{"ref":"EID6eec1f5b-0175-1000-d492-360c7e7521df"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1fb5-0175-1000-5d17-52b6dc7b6a8a","parent":{"ref":"EID6eec1f5b-0175-1000-d492-360c7e7521df"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID37037e52-7fa4-4004-bb97-45e82d540a83"},{"ref":"EIDa0a1bb70-1b40-4bf3-9e6a-3cce1d557fef"},{"ref":"EIDb0f3b2b1-ce27-4f50-97dd-615f0eb64e57"}]},"parent":{"ref":"EID6eec1f53-0175-1000-1513-b8e1da76f244"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:16:09Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:16:09Z","duration":98,"status":"PASSED"},{"id":"EID6eec1fb5-0175-1000-548d-d1553d24daa4","testStepResults":{"TestStepResult":[{"id":"EID6eec1fb5-0175-1000-89d0-df8ce6e921ef","parent":{"ref":"EID6eec1fb5-0175-1000-548d-d1553d24daa4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1fb6-0175-1000-0d6f-63b730aca2e4","parent":{"ref":"EID6eec1fb5-0175-1000-548d-d1553d24daa4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":86,"status":"PASSED"},{"id":"EID6eec1fb6-0175-1000-a437-a69b510e33ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2018-0175-1000-8fad-5c116dfb9a91","parent":{"ref":"EID6eec1fb6-0175-1000-a437-a69b510e33ca"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec2018-0175-1000-83c5-0afe40bb31db","parent":{"ref":"EID6eec1fb6-0175-1000-a437-a69b510e33ca"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec2018-0175-1000-222e-04bf007e8cd6","parent":{"ref":"EID6eec1fb6-0175-1000-a437-a69b510e33ca"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec2018-0175-1000-240e-a2022efa9914","parent":{"ref":"EID6eec1fb6-0175-1000-a437-a69b510e33ca"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4d9bceed-b015-4ef4-9043-e325adf40ae0"},{"ref":"EIDbefe99c7-9226-4b28-9877-0cb49a238306"},{"ref":"EIDbaddc72a-45f0-4d85-bf97-f0b5478ce1e2"}]},"parent":{"ref":"EID6eec1fb5-0175-1000-548d-d1553d24daa4"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:16:09Z","duration":26,"status":"PASSED"},{"id":"EID6eec2018-0175-1000-4bb6-0b952d0ba890","attachments":{"attachment":{"ref":"EID4ea0657e-7ef0-4a9c-ae09-29a3f7eaf6be"}},"parent":{"ref":"EID6eec1fb5-0175-1000-548d-d1553d24daa4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":1,"status":"PASSED"},{"id":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2126-0175-1000-1623-59245a074043","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-ab2f-2a158d1f52f4","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-f6e7-983a87001551","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-3656-55a8e28dc227","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-5e25-31b056e8a268","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-9e1f-d167d913c585","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2126-0175-1000-5ab9-c05fb876193c","parent":{"ref":"EID6eec203d-0175-1000-3cdb-7fc2ab2dcb6d"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID38455abd-1162-4982-a16d-a161f1cb2669"},{"ref":"EID5e3aec48-878d-42c3-b391-dd89b2b2c2d6"},{"ref":"EID123ce0f4-edca-4c7b-94b3-c13b72c03ed0"}]},"parent":{"ref":"EID6eec1fb5-0175-1000-548d-d1553d24daa4"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:16:09Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:16:09Z","duration":370,"status":"PASSED"},{"id":"EID6eec2127-0175-1000-9d2e-442236873a62","testStepResults":{"TestStepResult":[{"id":"EID6eec2127-0175-1000-2cad-41729b850776","parent":{"ref":"EID6eec2127-0175-1000-9d2e-442236873a62"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2127-0175-1000-39f5-a06c19325efa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec222a-0175-1000-292d-84e41beed6eb","parent":{"ref":"EID6eec2127-0175-1000-39f5-a06c19325efa"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec222a-0175-1000-1cc1-72c483e76fc9","parent":{"ref":"EID6eec2127-0175-1000-39f5-a06c19325efa"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec222a-0175-1000-dfb1-a23fc93a9d10","parent":{"ref":"EID6eec2127-0175-1000-39f5-a06c19325efa"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec222a-0175-1000-c74f-6dfa09204619","parent":{"ref":"EID6eec2127-0175-1000-39f5-a06c19325efa"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd976f999-6469-487e-9b95-fd8690f9264b"},{"ref":"EID46a8a1d9-412e-4796-ace5-554e54197301"},{"ref":"EIDdcfd06cd-0493-4627-870c-eb1954042f93"}]},"parent":{"ref":"EID6eec2127-0175-1000-9d2e-442236873a62"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:16:10Z","duration":142,"status":"PASSED"},{"id":"EID6eec222a-0175-1000-e759-75ac9a46edad","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eec223c-0175-1000-f215-5453466b851b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2332-0175-1000-ac23-6f0c038d2558","parent":{"ref":"EID6eec223c-0175-1000-f215-5453466b851b"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2332-0175-1000-ada9-f81026602009","parent":{"ref":"EID6eec223c-0175-1000-f215-5453466b851b"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2332-0175-1000-7bc5-d741577aeaa0","parent":{"ref":"EID6eec223c-0175-1000-f215-5453466b851b"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID77b50e34-803c-4937-8416-2626c82b6830"},{"ref":"EIDf47035b9-52eb-4001-a829-7598a5f04b2a"},{"ref":"EID3710ed5c-fd0b-4639-a18d-3cf0acb41602"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:10Z","duration":146,"status":"PASSED"},{"id":"EID6eec2334-0175-1000-0bb2-46e572efbed9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec23fd-0175-1000-f250-ce619192961b","parent":{"ref":"EID6eec2334-0175-1000-0bb2-46e572efbed9"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec23fd-0175-1000-5f39-974c5d2c56a4","parent":{"ref":"EID6eec2334-0175-1000-0bb2-46e572efbed9"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec23fd-0175-1000-e02d-c07fc5c5c308","parent":{"ref":"EID6eec2334-0175-1000-0bb2-46e572efbed9"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb460d6b8-478c-49a0-be1d-741fceda393f"},{"ref":"EIDbf93968d-42b2-45dc-a7ac-529e6a71d211"},{"ref":"EID129887ea-061b-4412-8c11-798f7122ab96"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:10Z","duration":147,"status":"PASSED"},{"id":"EID6eec23ff-0175-1000-f6b6-3ff5e38ba349","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec245a-0175-1000-3a00-95b050468854","parent":{"ref":"EID6eec23ff-0175-1000-f6b6-3ff5e38ba349"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec245a-0175-1000-c905-6d9390268d38","parent":{"ref":"EID6eec23ff-0175-1000-f6b6-3ff5e38ba349"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec245a-0175-1000-cbcf-d82c2a58c181","parent":{"ref":"EID6eec23ff-0175-1000-f6b6-3ff5e38ba349"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID33d8531c-4096-4478-bfaf-960fef1114e1"},{"ref":"EID3d398126-b52d-46e5-8a34-31dddc6fadff"},{"ref":"EIDcdd6524e-0e95-4553-8983-09e5f303949a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:10Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6eec2127-0175-1000-9d2e-442236873a62"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:16:10Z","duration":561,"status":"PASSED"},{"id":"EID6eec245b-0175-1000-3d5b-d9cbf160cbdc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec24b2-0175-1000-4a59-692d03b1a4d1","parent":{"ref":"EID6eec245b-0175-1000-3d5b-d9cbf160cbdc"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec24b2-0175-1000-9333-c7cec52c58bb","parent":{"ref":"EID6eec245b-0175-1000-3d5b-d9cbf160cbdc"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec24b2-0175-1000-db83-0e241a9ddc05","parent":{"ref":"EID6eec245b-0175-1000-3d5b-d9cbf160cbdc"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec24b2-0175-1000-ba3b-3293cf4b4c6e","parent":{"ref":"EID6eec245b-0175-1000-3d5b-d9cbf160cbdc"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55423b65-0aad-41ed-a383-04641cd97a56"},{"ref":"EIDb1672e4a-1eaa-4858-8e84-0e6609ed47e4"},{"ref":"EIDe8a7bfa8-8e3a-4ee9-9e7d-212e96b43724"}]},"parent":{"ref":"EID6eec2127-0175-1000-9d2e-442236873a62"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:16:10Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:16:10Z","duration":907,"status":"PASSED"},{"id":"EID6eec24b2-0175-1000-53ff-4b16aac77ec4","testStepResults":{"TestStepResult":{"id":"EID6eec24b2-0175-1000-f193-6b0a2a1f7a4e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec251a-0175-1000-5d57-21b661d7322a","parent":{"ref":"EID6eec24b2-0175-1000-f193-6b0a2a1f7a4e"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec251a-0175-1000-4cf0-78213f9b3a28","parent":{"ref":"EID6eec24b2-0175-1000-f193-6b0a2a1f7a4e"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec251a-0175-1000-6234-511b51e083ea","parent":{"ref":"EID6eec24b2-0175-1000-f193-6b0a2a1f7a4e"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec251a-0175-1000-8372-4caf68583253","parent":{"ref":"EID6eec24b2-0175-1000-f193-6b0a2a1f7a4e"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9f061e47-2e8e-46ba-8c87-010c339bb195"},{"ref":"EID65736a28-48b9-434b-a02a-21ad0de281ac"},{"ref":"EIDfd9262b9-380c-4689-88f1-8885f51cf7b4"}]},"parent":{"ref":"EID6eec24b2-0175-1000-53ff-4b16aac77ec4"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:16:11Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6eec19d4-0175-1000-4266-451f0b438db5"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:16:11Z","duration":113,"status":"PASSED"}]},"parent":{"ref":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:16:08Z","duration":2895,"status":"PASSED"},{"id":"EID6eec2523-0175-1000-6713-5853ed1f9485","testCaseResults":{"TestCaseResult":[{"id":"EID6eec2523-0175-1000-8640-f796f8882f04","testStepResults":{"TestStepResult":[{"id":"EID6eec2523-0175-1000-47b4-9d1d8caab0b8","parent":{"ref":"EID6eec2523-0175-1000-8640-f796f8882f04"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":255,"status":"PASSED"},{"id":"EID6eec2524-0175-1000-78f9-32268a4b9ae0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2575-0175-1000-8eb2-baf2961f8e35","parent":{"ref":"EID6eec2524-0175-1000-78f9-32268a4b9ae0"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2575-0175-1000-6ee8-f0c1899e6cd2","parent":{"ref":"EID6eec2524-0175-1000-78f9-32268a4b9ae0"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2575-0175-1000-fe80-3e47609b1f96","parent":{"ref":"EID6eec2524-0175-1000-78f9-32268a4b9ae0"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID009423a6-166d-44a3-9a98-826fac532400"},{"ref":"EIDfc33e7d3-7c89-4d61-b99b-46185995fbb7"},{"ref":"EID863bf145-b30b-425d-a286-7fbe39532572"}]},"parent":{"ref":"EID6eec2523-0175-1000-8640-f796f8882f04"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:16:11Z","duration":22,"status":"PASSED"},{"id":"EID6eec2576-0175-1000-8df1-d9bdd7c59f1e","attachments":{"attachment":{"ref":"EID9de2d406-73b8-49e7-8f92-d476228872df"}},"parent":{"ref":"EID6eec2523-0175-1000-8640-f796f8882f04"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:16:11Z","duration":100,"status":"PASSED"},{"id":"EID6eec2587-0175-1000-9e6f-500d3ac6338e","testStepResults":{"TestStepResult":[{"id":"EID6eec2587-0175-1000-d4e1-c68f083483b6","parent":{"ref":"EID6eec2587-0175-1000-9e6f-500d3ac6338e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":254,"status":"PASSED"},{"id":"EID6eec2588-0175-1000-478a-157f09b05361","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec26cb-0175-1000-0d6f-b324108289cc","parent":{"ref":"EID6eec2588-0175-1000-478a-157f09b05361"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec26cb-0175-1000-dc2a-c81f35d59495","parent":{"ref":"EID6eec2588-0175-1000-478a-157f09b05361"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec26cb-0175-1000-5c0d-bf90ed7f48a8","parent":{"ref":"EID6eec2588-0175-1000-478a-157f09b05361"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec26cb-0175-1000-66ae-c9f8484351e9","parent":{"ref":"EID6eec2588-0175-1000-478a-157f09b05361"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8c26f72b-6ef9-42d1-bbb9-8c1dd2ef5853"},{"ref":"EID073ac30d-d113-4925-91de-3af86c034ab5"},{"ref":"EID6fa9a29d-be8a-4fbb-ab46-dcce597bda4d"}]},"parent":{"ref":"EID6eec2587-0175-1000-9e6f-500d3ac6338e"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:16:11Z","duration":190,"status":"PASSED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:16:11Z","duration":324,"status":"PASSED"},{"id":"EID6eec26cb-0175-1000-3fa7-27ed71fbe3ba","testStepResults":{"TestStepResult":[{"id":"EID6eec26cb-0175-1000-af90-3a29309aff86","parent":{"ref":"EID6eec26cb-0175-1000-3fa7-27ed71fbe3ba"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":254,"status":"PASSED"},{"id":"EID6eec26cb-0175-1000-a36b-567d3dbe1bf2","parent":{"ref":"EID6eec26cb-0175-1000-3fa7-27ed71fbe3ba"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":10,"status":"PASSED"},{"id":"EID6eec26d5-0175-1000-95e5-cda29cf18e74","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec27df-0175-1000-4335-74115d82a24f","parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-bf00-f030b97d134f","parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-1232-1aadc5397fb6","parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-76de-71b7aee9a439","parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-795b-0e6c3d00a604","parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-cb9e-43c01649a212","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"FAILED"},{"id":"EID6eec27df-0175-1000-2a7b-20a1550dfe66","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eec26d5-0175-1000-95e5-cda29cf18e74"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID22091a52-1cf6-44c6-8f00-9b5fbc20f277"},{"ref":"EIDf24840ea-e4ac-488f-9d47-c4e97e1eaf8a"},{"ref":"EIDdeea7d56-ccce-4d75-a9be-ff498f789210"}]},"parent":{"ref":"EID6eec26cb-0175-1000-3fa7-27ed71fbe3ba"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:16:11Z","duration":82,"status":"FAILED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:16:11Z","duration":276,"status":"FAILED"},{"id":"EID6eec27df-0175-1000-be7b-0b319824e0e6","testStepResults":{"TestStepResult":[{"id":"EID6eec27df-0175-1000-5aea-a13ef5fb88e7","parent":{"ref":"EID6eec27df-0175-1000-be7b-0b319824e0e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":254,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-8d02-8a62fc6d63a7","parent":{"ref":"EID6eec27df-0175-1000-be7b-0b319824e0e6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec27df-0175-1000-9157-027a6efd614a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2888-0175-1000-91dc-274ffa579f1b","parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-c1ee-92acd3b2bd19","parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-8d7b-122b347f7817","parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-5673-707dbcc036fd","parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-90ed-d0158ea270ed","parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-7247-1d3f5272fb50","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eec27df-0175-1000-9157-027a6efd614a"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID0a68ca01-9a20-492d-af24-119ec0fb34bb"},{"ref":"EID5393fa52-ecf0-4863-a044-aaff13d79583"},{"ref":"EIDa709755b-17b3-4da5-90c6-14092894f727"}]},"parent":{"ref":"EID6eec27df-0175-1000-be7b-0b319824e0e6"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:16:11Z","duration":73,"status":"FAILED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:16:11Z","duration":169,"status":"FAILED"},{"id":"EID6eec2888-0175-1000-8fd5-2e2cb1caba22","testStepResults":{"TestStepResult":[{"id":"EID6eec2888-0175-1000-67b2-51970491a9f0","parent":{"ref":"EID6eec2888-0175-1000-8fd5-2e2cb1caba22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:16:12Z","duration":254,"status":"PASSED"},{"id":"EID6eec2888-0175-1000-56a8-e0ca594e1a64","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EIDce84e542-2dfc-4417-933c-56147b81e64d"},{"ref":"EID63d2b188-005d-4b98-b087-0ed02a8d67de"},{"ref":"EIDa85b61e6-1aaf-4de5-8186-adf707eabb8e"},{"ref":"EID7d27f92f-5a02-4a1a-b5ae-efcfbbb81765"},{"ref":"EID589e783a-6085-4417-bf9a-d42365a79686"},{"ref":"EID77570ea0-e8b7-42f0-b871-209d67ca67e5"},{"ref":"EIDa87a3f19-6f2e-4cce-9dec-71f768403ccc"},{"ref":"EID54f8e919-a89d-4e8e-881c-82a230113c32"},{"ref":"EID2a8ac840-b4c7-49fd-aeb0-507163193750"},{"ref":"EID51d768cd-7b7e-4da6-9cbe-b3307aa17812"},{"ref":"EID86ef1b66-9448-4112-82ee-e29921a13b04"},{"ref":"EID67cb3890-fce0-4979-a859-f659ea30b3ac"},{"ref":"EID26a39516-ca68-491c-bfe0-323b2228296b"},{"ref":"EID04fc9d11-61e2-4eb9-89e3-a91b0fc1c6ba"},{"ref":"EIDfc253cd7-db77-47f1-a73c-c2d5d18a5fe3"}]},"parent":{"ref":"EID6eec2888-0175-1000-8fd5-2e2cb1caba22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:16:12Z","duration":456,"status":"SKIPPED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:16:12Z","duration":809,"status":"SKIPPED"},{"id":"EID6eec2bba-0175-1000-f1c2-f8609f790156","testStepResults":{"TestStepResult":[{"id":"EID6eec2bba-0175-1000-5810-530351bee1ba","parent":{"ref":"EID6eec2bba-0175-1000-f1c2-f8609f790156"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:16:12Z","duration":254,"status":"PASSED"},{"id":"EID6eec2bba-0175-1000-8754-73d309efa6e6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2c5c-0175-1000-4b7a-6a76ca1c5bfd","parent":{"ref":"EID6eec2bba-0175-1000-8754-73d309efa6e6"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2c5c-0175-1000-8e74-90e2f1fda088","parent":{"ref":"EID6eec2bba-0175-1000-8754-73d309efa6e6"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2c5c-0175-1000-c887-434a4a737686","parent":{"ref":"EID6eec2bba-0175-1000-8754-73d309efa6e6"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2c5c-0175-1000-8d99-cce4eec95376","parent":{"ref":"EID6eec2bba-0175-1000-8754-73d309efa6e6"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID87c30fdc-c6cd-4d13-a8ec-f41c0b1915a1"},{"ref":"EID25616b27-68f0-4204-8347-a73af336237a"},{"ref":"EID77426744-ef7c-40ca-bbae-c5b56799cba2"}]},"parent":{"ref":"EID6eec2bba-0175-1000-f1c2-f8609f790156"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:16:12Z","duration":86,"status":"PASSED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:16:12Z","duration":162,"status":"PASSED"},{"id":"EID6eec2c5c-0175-1000-0283-286cd8f78d28","testStepResults":{"TestStepResult":[{"id":"EID6eec2c5c-0175-1000-c845-d1781b451c57","parent":{"ref":"EID6eec2c5c-0175-1000-0283-286cd8f78d28"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":255,"status":"PASSED"},{"id":"EID6eec2c5d-0175-1000-2562-4c224aa69260","parent":{"ref":"EID6eec2c5c-0175-1000-0283-286cd8f78d28"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2c5d-0175-1000-38f9-4aa33695d48d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2d3d-0175-1000-fea1-04be9e0b06cb","parent":{"ref":"EID6eec2c5d-0175-1000-38f9-4aa33695d48d"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d3d-0175-1000-310c-7b39cccbd8ca","parent":{"ref":"EID6eec2c5d-0175-1000-38f9-4aa33695d48d"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d3d-0175-1000-f864-91b170e173d7","parent":{"ref":"EID6eec2c5d-0175-1000-38f9-4aa33695d48d"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d3d-0175-1000-5252-3385820d64e9","parent":{"ref":"EID6eec2c5d-0175-1000-38f9-4aa33695d48d"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8653c02-5f59-4e3e-ac1b-3cc6b4e48446"},{"ref":"EID07d468a9-959f-4bc0-bafb-4ba80f1210c0"},{"ref":"EID9c7f36ea-1e92-43e5-8563-044d675bb6cf"}]},"parent":{"ref":"EID6eec2c5c-0175-1000-0283-286cd8f78d28"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:16:13Z","duration":78,"status":"PASSED"},{"id":"EID6eec2d46-0175-1000-a874-acc2fb8e5dbd","attachments":{"attachment":{"ref":"EID5e5a82ab-c781-4a08-8d5a-342782e8aecc"}},"parent":{"ref":"EID6eec2c5c-0175-1000-0283-286cd8f78d28"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":1,"status":"PASSED"},{"id":"EID6eec2d5a-0175-1000-3ca1-0e241cea58fb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2d62-0175-1000-7f66-6b9f8aace0ae","parent":{"ref":"EID6eec2d5a-0175-1000-3ca1-0e241cea58fb"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d62-0175-1000-74b9-172d777ebb9f","parent":{"ref":"EID6eec2d5a-0175-1000-3ca1-0e241cea58fb"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d62-0175-1000-72d5-3595aecd6d4c","parent":{"ref":"EID6eec2d5a-0175-1000-3ca1-0e241cea58fb"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID84de1665-1c62-4e9d-95e6-b78598f190d8"},{"ref":"EIDa682d8a7-604a-4077-ba54-c8428a3a1f09"}]},"parent":{"ref":"EID6eec2c5c-0175-1000-0283-286cd8f78d28"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eec2523-0175-1000-6713-5853ed1f9485"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:16:13Z","duration":262,"status":"PASSED"}]},"parent":{"ref":"EID7640be29-454f-4399-ba51-2fd76ca8a7f0"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:16:11Z","duration":2111,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceEndpoint","id":"EID4d9bceed-b015-4ef4-9043-e325adf40ae0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDbaddc72a-45f0-4d85-bf97-f0b5478ce1e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDd0c0ba9c-b62d-4262-ac34-fed2f77aa39d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDd0c0ba9c-b62d-4262-ac34-fed2f77aa39d"}},{"type":"Message","id":"EID589e783a-6085-4417-bf9a-d42365a79686","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID589e783a-6085-4417-bf9a-d42365a79686"}},{"type":"ServiceEndpoint","id":"EID9f061e47-2e8e-46ba-8c87-010c339bb195","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID8a2bb45f-a8ff-41a6-9322-9a3f27545517","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID8a2bb45f-a8ff-41a6-9322-9a3f27545517"}},{"type":"ServiceEndpoint","id":"EID55423b65-0aad-41ed-a383-04641cd97a56","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID44328df0-2458-4dd0-af93-e2f4aa63a073","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID44328df0-2458-4dd0-af93-e2f4aa63a073"}},{"type":"GetParameter","id":"EIDbf2abd35-a287-47a0-bb90-d26f82615343","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID547d23bb-7196-4911-ae33-b2d81833e92f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EIDdd345b25-1a59-4fe9-9f17-8563f2916cfd","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDdd345b25-1a59-4fe9-9f17-8563f2916cfd"}},{"type":"ServiceResponse","id":"EID1e0df0ff-c8b7-4d7a-b571-0cfc11575134","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID1e0df0ff-c8b7-4d7a-b571-0cfc11575134"}},{"type":"Message","id":"EIDce84e542-2dfc-4417-933c-56147b81e64d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDce84e542-2dfc-4417-933c-56147b81e64d"}},{"type":"Message","id":"EIDe3ca10e3-397e-4a39-9d2a-af85c72ee216","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDe3ca10e3-397e-4a39-9d2a-af85c72ee216"}},{"type":"Message","id":"EID4232153a-a463-4742-acb8-344cc70584d4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID4232153a-a463-4742-acb8-344cc70584d4"}},{"type":"GetParameter","id":"EID6701b7df-4e42-4946-911e-121dde4dd66b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID4f6de133-5c25-4b80-b06d-880eb772509a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDe9290460-56f3-4c06-a3b5-59e6dd91f6a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDe9290460-56f3-4c06-a3b5-59e6dd91f6a2"}},{"type":"Message","id":"EID54f8e919-a89d-4e8e-881c-82a230113c32","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID54f8e919-a89d-4e8e-881c-82a230113c32"}},{"type":"GetParameter","id":"EID54135994-6732-4118-95ff-dc7c9987bcd1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID8484ba10-7a29-4ebd-8598-f3e2ab284b0e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID87c30fdc-c6cd-4d13-a8ec-f41c0b1915a1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID22091a52-1cf6-44c6-8f00-9b5fbc20f277","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDd6381037-166c-4fba-8859-39796671bdf3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID6d190dbe-90ab-4782-909c-f2ecdaf688ae","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID6d190dbe-90ab-4782-909c-f2ecdaf688ae"}},{"type":"ServiceResponse","id":"EIDae863c33-884b-4a9c-be3d-7d5376b4017b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDae863c33-884b-4a9c-be3d-7d5376b4017b"}},{"type":"ServiceEndpoint","id":"EID7d271f53-592c-4c01-875d-e6da31a77206","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDb7c6708e-6238-490d-99c2-b9fe0b3b11b1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDb7c6708e-6238-490d-99c2-b9fe0b3b11b1"}},{"type":"ServiceEndpoint","id":"EIDdec00980-49d0-47da-906f-c8cea6d911a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceEndpoint","id":"EID3be2c3b0-95a8-41e3-bc44-d3a41eb5b525","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID1a32cf27-823a-4656-ac07-b394b22fa368","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDe0c596f3-e540-4c5f-aa41-d994bd466794","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDec68e4a9-ff04-4a61-bd38-58ca6abf8380","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EID3710ed5c-fd0b-4639-a18d-3cf0acb41602","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EIDdcfd06cd-0493-4627-870c-eb1954042f93","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID7deaf53b-7107-4352-9f5a-81006e1986bc","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID7deaf53b-7107-4352-9f5a-81006e1986bc"}},{"type":"ServiceEndpoint","id":"EID9fa6cdac-f770-4a53-b2b8-54623c13b0c8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID29055247-43ab-4bec-b7b4-b57cba7815a7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID29055247-43ab-4bec-b7b4-b57cba7815a7"}},{"type":"GetParameter","id":"EID9c7f36ea-1e92-43e5-8563-044d675bb6cf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID8a0222b0-5592-49ce-a971-72d92455ad87","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID8a0222b0-5592-49ce-a971-72d92455ad87"}},{"type":"ServiceResponse","id":"EID0b283953-11be-4e9b-8542-e26dabdc7c57","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID0b283953-11be-4e9b-8542-e26dabdc7c57"}},{"type":"ServiceResponse","id":"EID19421bc6-8e62-422d-b5a0-f7fae10aae4a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID19421bc6-8e62-422d-b5a0-f7fae10aae4a"}},{"type":"GetParameter","id":"EID36d0dc72-0972-41b9-b7e8-7567eedf3199","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID8c26f72b-6ef9-42d1-bbb9-8c1dd2ef5853","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID63fb2f9b-1d44-46c8-a257-5efed604fe94","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID7646a5ba-6f71-45de-be0f-a9d67b53834b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2Rvd25sb2Fkcy9jYWRhc3RyYWxwYXJjZWxzLnppcA=="},{"type":"ServiceEndpoint","id":"EID34a8a6a4-a889-4aa7-9c21-4615c02cbdea","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID0a68ca01-9a20-492d-af24-119ec0fb34bb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID47d8246d-77f1-4809-b8d1-d43db81175ff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID2f4134ae-eafa-47ba-ac97-62e94c667b44","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID2f4134ae-eafa-47ba-ac97-62e94c667b44"}},{"type":"GetParameter","id":"EIDe8a7bfa8-8e3a-4ee9-9e7d-212e96b43724","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID5e3aec48-878d-42c3-b391-dd89b2b2c2d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID5e3aec48-878d-42c3-b391-dd89b2b2c2d6"}},{"type":"GetParameter","id":"EID1869a4eb-08d5-4895-83d7-b593328822c8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID04fc9d11-61e2-4eb9-89e3-a91b0fc1c6ba","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID04fc9d11-61e2-4eb9-89e3-a91b0fc1c6ba"}},{"type":"GetParameter","id":"EIDa709755b-17b3-4da5-90c6-14092894f727","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDdb312a23-5676-4f9f-8055-492754844f8a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID57c9ef27-2979-48c6-b58f-f3fd43926aaa","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID57c9ef27-2979-48c6-b58f-f3fd43926aaa"}},{"type":"GetParameter","id":"EID0d83d34f-3391-419a-9e30-f2625def6b5a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EID09307ed0-f2cd-4ef5-8de5-87cdab8e3a63","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb57a589b-964c-4808-ba6b-7d8aa922d76c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID863bf145-b30b-425d-a286-7fbe39532572","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID1a3554ad-f5ed-4fa0-b807-40f7a72deb83","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID1a3554ad-f5ed-4fa0-b807-40f7a72deb83"}},{"type":"ServiceEndpoint","id":"EIDaeaf2f67-0ef5-4e2e-860e-ee496a5f850d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EIDcdd6524e-0e95-4553-8983-09e5f303949a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDbf93968d-42b2-45dc-a7ac-529e6a71d211","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDbf93968d-42b2-45dc-a7ac-529e6a71d211"}},{"type":"ServiceResponse","id":"EIDb1672e4a-1eaa-4858-8e84-0e6609ed47e4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDb1672e4a-1eaa-4858-8e84-0e6609ed47e4"}},{"type":"ServiceEndpoint","id":"EID420ba700-43c6-4e91-a0d9-f730c7f9e3c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDa9eed03a-6e0d-4efd-8295-90c277dc8446","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDa9eed03a-6e0d-4efd-8295-90c277dc8446"}},{"type":"Message","id":"EID382769cc-edb1-45cd-b6a3-12b51ef6a2e5","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID382769cc-edb1-45cd-b6a3-12b51ef6a2e5"}},{"type":"ServiceResponse","id":"EIDc9c033a7-6957-418f-bf1c-1034e13f88a6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDc9c033a7-6957-418f-bf1c-1034e13f88a6"}},{"type":"GetParameter","id":"EIDa682d8a7-604a-4077-ba54-c8428a3a1f09","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID5393fa52-ecf0-4863-a044-aaff13d79583","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID5393fa52-ecf0-4863-a044-aaff13d79583"}},{"type":"Message","id":"EID3bf586c8-484d-4c0f-99dd-06b1f74a2cb8","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID3bf586c8-484d-4c0f-99dd-06b1f74a2cb8"}},{"type":"ServiceEndpoint","id":"EID44344dbb-8cc6-44ad-a501-c8abc3553f70","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID77570ea0-e8b7-42f0-b871-209d67ca67e5","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID77570ea0-e8b7-42f0-b871-209d67ca67e5"}},{"type":"ServiceResponse","id":"EIDbefe99c7-9226-4b28-9877-0cb49a238306","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDbefe99c7-9226-4b28-9877-0cb49a238306"}},{"type":"Message","id":"EID2d28603c-541d-4d5b-b291-f8a04c962bde","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID2d28603c-541d-4d5b-b291-f8a04c962bde"}},{"type":"GetParameter","id":"EIDfd9262b9-380c-4689-88f1-8885f51cf7b4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID1c5eb94a-a4a0-4464-8742-29dd508b45be","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID1c5eb94a-a4a0-4464-8742-29dd508b45be"}},{"type":"ServiceEndpoint","id":"EIDe728f612-4e53-47e2-a434-fea99107195e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDc21d00c2-a1b3-497d-ac29-f2ebc2012d11","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDc21d00c2-a1b3-497d-ac29-f2ebc2012d11"}},{"type":"GetParameter","id":"EIDb831fbef-e304-40b8-aab2-7cc5207e61fb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID83ada865-18ab-4747-8917-c6e4eb3eac03","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID83ada865-18ab-4747-8917-c6e4eb3eac03"}},{"type":"ServiceResponse","id":"EID189a8e99-1a02-4a4b-acbb-c7e1419f3276","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID189a8e99-1a02-4a4b-acbb-c7e1419f3276"}},{"type":"GetParameter","id":"EID77426744-ef7c-40ca-bbae-c5b56799cba2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID8bae48f0-bbe3-4df8-8d08-2840a3ce6e1b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID7f20d94b-f420-4b25-97e8-5a3f138e6267","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID7f20d94b-f420-4b25-97e8-5a3f138e6267"}},{"type":"Message","id":"EID26a39516-ca68-491c-bfe0-323b2228296b","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID26a39516-ca68-491c-bfe0-323b2228296b"}},{"type":"ServiceResponse","id":"EIDf24840ea-e4ac-488f-9d47-c4e97e1eaf8a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDf24840ea-e4ac-488f-9d47-c4e97e1eaf8a"}},{"type":"GetParameter","id":"EID1f0c3ec1-d642-4db0-ac79-589ab3a57d38","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EIDd5cd5598-d616-41f8-b207-8fe7b363a894","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDd5cd5598-d616-41f8-b207-8fe7b363a894"}},{"type":"GetParameter","id":"EID1fd48e67-c5fe-4787-9494-5d7dcb9f755e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID3825c597-0250-4368-8a9b-1d1a39c629ea","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb1eeab00-baf5-4606-ab6d-64cc2f70eef0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDfe879b1d-3b8c-47a7-9e8e-ac59bbc80983","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDfe879b1d-3b8c-47a7-9e8e-ac59bbc80983"}},{"type":"ServiceResponse","id":"EID798b34cb-3e59-42db-8449-6ed1d5d94cfa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID798b34cb-3e59-42db-8449-6ed1d5d94cfa"}},{"type":"Message","id":"EID61886424-dc5e-40c8-8169-be532fc9a750","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID61886424-dc5e-40c8-8169-be532fc9a750"}},{"type":"GetParameter","id":"EIDc6f00d20-fcdd-4d07-86d7-f117f8f326f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID258ef4a7-f430-433e-9ca1-c401c5bce1c1","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID258ef4a7-f430-433e-9ca1-c401c5bce1c1"}},{"type":"Message","id":"EID537a4868-84d7-497b-a4e6-556a5ea4f71f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID537a4868-84d7-497b-a4e6-556a5ea4f71f"}},{"type":"ServiceResponse","id":"EID7107604a-53f3-453d-88db-72bae1f316ba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID7107604a-53f3-453d-88db-72bae1f316ba"}},{"type":"Message","id":"EIDa87a3f19-6f2e-4cce-9dec-71f768403ccc","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDa87a3f19-6f2e-4cce-9dec-71f768403ccc"}},{"type":"ServiceEndpoint","id":"EID84de1665-1c62-4e9d-95e6-b78598f190d8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EIDff909781-bef5-45ba-ac14-fdc88792f049","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDff909781-bef5-45ba-ac14-fdc88792f049"}},{"type":"ServiceEndpoint","id":"EIDfb661084-d1ab-4df4-87c6-7a669683ec75","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID07510543-c41a-4552-990d-4cc8b1b02b19","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb91560fa-2d9f-4aa6-923b-3dc0c1e7cb71","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID25171f32-c6a7-4ea0-b812-9aa56094ad6b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EIDf7c9efab-a41b-4a0c-8b29-290f0f71e3de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID39791d3c-5e9a-4a38-933e-1052908553ad","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID39791d3c-5e9a-4a38-933e-1052908553ad"}},{"type":"ServiceResponse","id":"EIDf24d2d9f-090c-4c45-91c6-543738c300e7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDf24d2d9f-090c-4c45-91c6-543738c300e7"}},{"type":"ServiceResponse","id":"EID25616b27-68f0-4204-8347-a73af336237a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID25616b27-68f0-4204-8347-a73af336237a"}},{"type":"LogFile","id":"EID137cf0f1-48f3-404c-8350-a88560112fc1","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID137cf0f1-48f3-404c-8350-a88560112fc1"}},{"type":"GetParameter","id":"EIDbe288fe7-2125-4ded-8ce3-a88df981169f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"ServiceEndpoint","id":"EID77b50e34-803c-4937-8416-2626c82b6830","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID6fa9a29d-be8a-4fbb-ab46-dcce597bda4d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID2a8ac840-b4c7-49fd-aeb0-507163193750","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID2a8ac840-b4c7-49fd-aeb0-507163193750"}},{"type":"Message","id":"EIDa85b61e6-1aaf-4de5-8186-adf707eabb8e","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDa85b61e6-1aaf-4de5-8186-adf707eabb8e"}},{"type":"ServiceResponse","id":"EIDff43dba5-bdc3-40cc-a358-1d7752b127a9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDff43dba5-bdc3-40cc-a358-1d7752b127a9"}},{"type":"ServiceEndpoint","id":"EIDd976f999-6469-487e-9b95-fd8690f9264b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EIDe90ed41e-f738-42ff-9fc2-55588b0a0c71","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDe90ed41e-f738-42ff-9fc2-55588b0a0c71"}},{"type":"GetParameter","id":"EIDdeea7d56-ccce-4d75-a9be-ff498f789210","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID7b6b4cbf-36a5-410e-be16-53382bb7b3fe","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID7b6b4cbf-36a5-410e-be16-53382bb7b3fe"}},{"type":"Message","id":"EIDfc253cd7-db77-47f1-a73c-c2d5d18a5fe3","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDfc253cd7-db77-47f1-a73c-c2d5d18a5fe3"}},{"type":"ServiceResponse","id":"EID9f9e447f-7c18-4be7-9813-081fb0463e9d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID9f9e447f-7c18-4be7-9813-081fb0463e9d"}},{"type":"Message","id":"EID3577b97d-0c11-439b-8b77-365a61a3b9c5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID3577b97d-0c11-439b-8b77-365a61a3b9c5"}},{"type":"ServiceEndpoint","id":"EID37037e52-7fa4-4004-bb97-45e82d540a83","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb460d6b8-478c-49a0-be1d-741fceda393f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID95427499-39a7-493d-b68c-17d290f1eb19","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID95427499-39a7-493d-b68c-17d290f1eb19"}},{"type":"GetParameter","id":"EID14a21820-5983-432f-9773-6e02b30300ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDfc33e7d3-7c89-4d61-b99b-46185995fbb7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDfc33e7d3-7c89-4d61-b99b-46185995fbb7"}},{"type":"ServiceResponse","id":"EIDf6b66697-d9a4-4864-9129-90b80a039fe5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDf6b66697-d9a4-4864-9129-90b80a039fe5"}},{"type":"ServiceEndpoint","id":"EID33d8531c-4096-4478-bfaf-960fef1114e1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID318a6a24-a385-4198-a7e6-5fca46647cc6","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID318a6a24-a385-4198-a7e6-5fca46647cc6"}},{"type":"ServiceEndpoint","id":"EID591ec227-1758-4938-8919-3a8eb92ff0a6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2Rvd25sb2Fkcy9jYWRhc3RyYWxwYXJjZWxzLnppcA=="},{"type":"Message","id":"EID5f021af5-21ca-4831-b048-5fcbd1ab1654","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID5f021af5-21ca-4831-b048-5fcbd1ab1654"}},{"type":"Message","id":"EID86ef1b66-9448-4112-82ee-e29921a13b04","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID86ef1b66-9448-4112-82ee-e29921a13b04"}},{"type":"GetParameter","id":"EIDbc571fca-af68-4d6e-ade3-cdd3cdc680bc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDed4d47cf-6254-43e4-8fcd-4171a95e7c98","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID19293e15-49e7-41c2-9e8d-c51e40d0efb5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID19293e15-49e7-41c2-9e8d-c51e40d0efb5"}},{"type":"Message","id":"EIDdc92fa1b-a066-475f-a6c6-06f7033fc5a5","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDdc92fa1b-a066-475f-a6c6-06f7033fc5a5"}},{"type":"ServiceEndpoint","id":"EIDab960a0a-5c48-4811-a667-748c29b4a61a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EIDf47035b9-52eb-4001-a829-7598a5f04b2a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDf47035b9-52eb-4001-a829-7598a5f04b2a"}},{"type":"Message","id":"EID7d27f92f-5a02-4a1a-b5ae-efcfbbb81765","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID7d27f92f-5a02-4a1a-b5ae-efcfbbb81765"}},{"type":"Message","id":"EID3bd06952-4d1d-4285-b2ba-8e1f50ba1283","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID3bd06952-4d1d-4285-b2ba-8e1f50ba1283"}},{"type":"ServiceEndpoint","id":"EID66f1665d-5433-4579-aced-c762c00a3d60","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID606dcae9-f09c-4548-b4d0-51cb1d0c6a40","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID606dcae9-f09c-4548-b4d0-51cb1d0c6a40"}},{"type":"ServiceResponse","id":"EID3d398126-b52d-46e5-8a34-31dddc6fadff","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID3d398126-b52d-46e5-8a34-31dddc6fadff"}},{"type":"GetParameter","id":"EIDc479f8a8-c7ba-4769-81c7-015e698bb0d1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID546b5083-113a-4596-bed6-d4f66d4c6235","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID546b5083-113a-4596-bed6-d4f66d4c6235"}},{"type":"ServiceEndpoint","id":"EIDc6e46cb1-2f49-40a6-a25d-6003b956be54","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID67cb3890-fce0-4979-a859-f659ea30b3ac","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID67cb3890-fce0-4979-a859-f659ea30b3ac"}},{"type":"GetParameter","id":"EIDf948a4e1-d797-4d1f-8f83-e470349abc6e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID073ac30d-d113-4925-91de-3af86c034ab5","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID073ac30d-d113-4925-91de-3af86c034ab5"}},{"type":"ServiceEndpoint","id":"EID2a2473dd-b51d-4a26-a6dc-52f96e3ca2f9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDb0f3b2b1-ce27-4f50-97dd-615f0eb64e57","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID442ab680-7b8c-4f3f-a7bb-0b4873d600a7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID442ab680-7b8c-4f3f-a7bb-0b4873d600a7"}},{"type":"ServiceEndpoint","id":"EIDaf3b626f-4696-4e1b-8945-79154fa09bab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"ServiceResponse","id":"EIDc273fcec-4690-4324-a908-6c08207a4210","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDc273fcec-4690-4324-a908-6c08207a4210"}},{"type":"ServiceResponse","id":"EID46edd7d9-72f5-4358-90f2-ae8884673682","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID46edd7d9-72f5-4358-90f2-ae8884673682"}},{"type":"GetParameter","id":"EID790e6ac9-39af-47ed-909b-a3513f6fae85","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDe6fc5116-c7aa-4cd1-ba9f-af380bce2503","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDe6fc5116-c7aa-4cd1-ba9f-af380bce2503"}},{"type":"ServiceEndpoint","id":"EIDd8653c02-5f59-4e3e-ac1b-3cc6b4e48446","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID18be8472-13de-4608-9df6-16c0ee96db3a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID18be8472-13de-4608-9df6-16c0ee96db3a"}},{"type":"ServiceEndpoint","id":"EID38455abd-1162-4982-a16d-a161f1cb2669","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EID123ce0f4-edca-4c7b-94b3-c13b72c03ed0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"GetParameter","id":"EID129887ea-061b-4412-8c11-798f7122ab96","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID77928e60-b26c-4a62-8d94-036b0ed56720","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID18c814d6-725a-4dcb-9317-5425572803fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EIDee2032a7-49ec-433e-b680-2cf3f53805a1","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDee2032a7-49ec-433e-b680-2cf3f53805a1"}},{"type":"ServiceEndpoint","id":"EIDfad05102-d28f-40c9-a5c0-112556ac0909","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDa0a1bb70-1b40-4bf3-9e6a-3cce1d557fef","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDa0a1bb70-1b40-4bf3-9e6a-3cce1d557fef"}},{"type":"ServiceEndpoint","id":"EIDf73535ea-b041-46b7-9614-077fc9e53395","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID6760cb4a-ba99-49e8-b8e0-92b5acf7ba7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID2f43ed0d-6ad8-4fcd-901d-627e2af30f2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID2f43ed0d-6ad8-4fcd-901d-627e2af30f2f"}},{"type":"ServiceEndpoint","id":"EID47803c64-ee4a-4fa1-92d4-1dffc1e45657","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EIDed615172-5563-40f7-a40f-1fca0555a6d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDed615172-5563-40f7-a40f-1fca0555a6d4"}},{"type":"Message","id":"EID9de2d406-73b8-49e7-8f92-d476228872df","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID9de2d406-73b8-49e7-8f92-d476228872df"}},{"type":"GetParameter","id":"EIDd3c5195c-c26a-40b6-b37e-8d0fa12afcd9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID465bf049-ad9c-4dd3-a3e8-244693301ae5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"Message","id":"EID5e5a82ab-c781-4a08-8d5a-342782e8aecc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID5e5a82ab-c781-4a08-8d5a-342782e8aecc"}},{"type":"Message","id":"EID98378b91-34c6-4c2b-8e93-c3ece76424f0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID98378b91-34c6-4c2b-8e93-c3ece76424f0"}},{"type":"ServiceEndpoint","id":"EID71a410d0-6fb8-4dca-83b6-b9e342835319","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID65736a28-48b9-434b-a02a-21ad0de281ac","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID65736a28-48b9-434b-a02a-21ad0de281ac"}},{"type":"GetParameter","id":"EIDd9119c46-e446-4320-85ed-594f2f710910","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID46a8a1d9-412e-4796-ace5-554e54197301","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID46a8a1d9-412e-4796-ace5-554e54197301"}},{"type":"ServiceResponse","id":"EIDfdd1871f-85b8-4fb0-ab2f-609f6e1e64b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDfdd1871f-85b8-4fb0-ab2f-609f6e1e64b2"}},{"type":"Message","id":"EID941fb23a-451b-44d3-b30d-fe99f1e6a42f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID941fb23a-451b-44d3-b30d-fe99f1e6a42f"}},{"type":"Message","id":"EID51d768cd-7b7e-4da6-9cbe-b3307aa17812","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID51d768cd-7b7e-4da6-9cbe-b3307aa17812"}},{"type":"ServiceEndpoint","id":"EID7ddc1c13-f794-42d6-8e78-734c1fb9399b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID009423a6-166d-44a3-9a98-826fac532400","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID2e857136-6bb9-4a8f-8327-a5e790fe3b21","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID2e857136-6bb9-4a8f-8327-a5e790fe3b21"}},{"type":"Message","id":"EIDdcf626ee-2953-4487-ba11-1e4f0549b4a9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDdcf626ee-2953-4487-ba11-1e4f0549b4a9"}},{"type":"GetParameter","id":"EID811abe7a-f582-4bee-b2c8-de451bf183b4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2NwLnhtbA=="},{"type":"ServiceResponse","id":"EID4c827518-3d23-4ae8-b148-39160d663e3d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID4c827518-3d23-4ae8-b148-39160d663e3d"}},{"type":"GetParameter","id":"EID2bc7c7f4-4123-4128-b4eb-86ba0eb2ce08","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDee325513-a5cb-42df-9533-30529098d4fc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDee325513-a5cb-42df-9533-30529098d4fc"}},{"type":"ServiceResponse","id":"EIDd8ab392e-cb48-4c8b-ac90-4dc9dfe06883","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EIDd8ab392e-cb48-4c8b-ac90-4dc9dfe06883"}},{"type":"ServiceEndpoint","id":"EID199d897c-0422-4cef-a1f8-c4b1b07c4e61","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID4c51d7a1-1799-492e-ad1a-e888d14636dd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID4c51d7a1-1799-492e-ad1a-e888d14636dd"}},{"type":"Message","id":"EID63d2b188-005d-4b98-b087-0ed02a8d67de","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID63d2b188-005d-4b98-b087-0ed02a8d67de"}},{"type":"ServiceEndpoint","id":"EIDa969f387-4c79-4f82-8467-808cf3507245","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID07d468a9-959f-4bc0-bafb-4ba80f1210c0","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID07d468a9-959f-4bc0-bafb-4ba80f1210c0"}},{"type":"ServiceEndpoint","id":"EID4b8a9c02-f3a5-4fe8-bf27-67f6c025f7f0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDc475a3b6-052d-45c5-b7ab-474e42bd22e1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID329d8ac8-4687-4acf-8500-d88a9ca4d380","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID329d8ac8-4687-4acf-8500-d88a9ca4d380"}},{"type":"ServiceEndpoint","id":"EID299b382b-f52a-447d-a573-21d17768d6f5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjIyNjQ4ZC1kMTllLTRhOTktYTY3ZC0yYWYxYzlhYWJkNzUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID4ea0657e-7ef0-4a9c-ae09-29a3f7eaf6be","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID4ea0657e-7ef0-4a9c-ae09-29a3f7eaf6be"}},{"type":"Message","id":"EID966d820f-0ede-42d3-8113-bddcf4ba0cbb","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7640be29-454f-4399-ba51-2fd76ca8a7f0/Attachments/EID966d820f-0ede-42d3-8113-bddcf4ba0cbb"}},{"type":"ServiceEndpoint","id":"EIDe5b60878-a297-4f94-84e7-d9cece2953f0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwva2FkYXN0ZXIvY3AvYXRvbS92MV8wL2luZGV4LnhtbA=="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:16:02Z","duration":10658,"status":"FAILED"}}}}}
11:16:22.904 [print] EIDa739edde-614a-425e-b278-48801e78b28a
11:16:22.904 [print] FAILED
11:16:22.904 [print] FAILED
11:16:22.904 [print] Conformance Class Download Service - Pre-defined Atom
11:16:22.905 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a739edde-614a-425e-b278-48801e78b28a.json
11:16:22.905 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a739edde-614a-425e-b278-48801e78b28a.json
11:16:22.905 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa739edde-614a-425e-b278-48801e78b28a/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:22.923 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:16:22.923 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:58.902 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/hy-n/wfs?request=GetCapabilities&service=WFS"}}}
11:12:58.903 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 290
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/hy-n/wfs?request=GetCapabilities&service=WFS"}}}
11:13:02.460 response time in milliseconds: 3451.71
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:02 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883582281","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:02.460 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:53.791 [print] testing url:https://geodata.nationaalgeoregister.nl/windkaart/wfs?request=GetCapabilities
11:16:53.791 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/windkaart/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:54.244 response time in milliseconds: 452.30 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:53 GMT 1 < X-Cnection: [close, close]
11:16:54.252 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/windkaart/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:54.668 response time in milliseconds: 415.28 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:54 GMT 1 < X-Cnection: [close, close]
11:16:54.670 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:15:23.797 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn-ra/wfs?request=GetCapabilities&service=WFS
11:15:23.798 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-ra/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:24.200 response time in milliseconds: 401.87 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:24 GMT 1 < ETag: "1a4aa-5af58ad530e96-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:24.203 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-ra/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:24.597 response time in milliseconds: 393.77 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:24 GMT 1 < ETag: "1a4aa-5af58a653b16e-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:24.597 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:13.863 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholetmaal/v2/wfs?request=GetCapabilities"}}}
11:12:13.870 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 301
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholetmaal/v2/wfs?request=GetCapabilities"}}}
11:12:17.143 response time in milliseconds: 3168.31
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:16 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883536962","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:17.144 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:51.504 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-a/wfs?request=GetCapabilities"}}}
11:16:51.504 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 279
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-a/wfs?request=GetCapabilities"}}}
11:16:53.209 response time in milliseconds: 1597.15
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:53 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883813040","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:53.209 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:53.215 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/windkaart/wfs?request=GetCapabilities"}}}
11:16:53.216 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 276
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/windkaart/wfs?request=GetCapabilities"}}}
11:16:55.020 response time in milliseconds: 1698.29
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:54 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883814856","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:55.020 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:31.389 [print] testing url:https://geodata.nationaalgeoregister.nl/schelpdierwater/wfs?request=GetCapabilities&service=WFS
11:14:31.390 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/schelpdierwater/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:31.785 response time in milliseconds: 394.39 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:31 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:14:31.789 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/schelpdierwater/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:32.198 response time in milliseconds: 408.57 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:32 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:14:32.198 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:04:54.975 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/su-vector/wfs?&request=GetCapabilities&service=WFS
11:04:54.976 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/su-vector/wfs?&request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:55.384 response time in milliseconds: 407.77 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:55 GMT 1 < ETag: "18264-5af58ad52204f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:04:55.394 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/su-vector/wfs?&request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:55.815 response time in milliseconds: 418.11 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:55 GMT 1 < ETag: "18264-5af58ad52204f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:04:55.817 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:05:24.807 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCapabilities&service=wcs"}}}
11:05:24.811 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 283
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCapabilities&service=wcs"}}}
11:05:26.386 response time in milliseconds: 1469.76
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:05:26 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883126212","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:05:26.388 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:09.411 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities"}}}
11:13:09.412 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 300
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities"}}}
11:13:14.963 response time in milliseconds: 5444.14
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:14 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883594789","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:14.964 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:17.500 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml
11:09:17.500 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:18.288 response time in milliseconds: 787.25 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4327 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:18 GMT 1 < Etag: "2b808852de163596115b571d04ab8e33-1" 1 < Last-Modified: Tue, 26 Nov 2019 15:47:04 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642236A9ABDFF34 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:09:18.292 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:18.809 response time in milliseconds: 516.99 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4327 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:09:18 GMT 1 < Etag: "2b808852de163596115b571d04ab8e33-1" 1 < Last-Modified: Tue, 26 Nov 2019 15:47:04 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642236AC48EC9F8 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:24.554 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nhi/wfs?request=GetCapabilities"}}}
11:09:24.555 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nhi/wfs?request=GetCapabilities"}}}
11:09:28.839 response time in milliseconds: 4179.33
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:28 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883368672","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:28.840 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:03.654 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:10:03.654 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:04.058 response time in milliseconds: 403.16 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:10:03 GMT 1 < X-Cnection: [close, close]
11:10:04.068 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:04.467 response time in milliseconds: 399.18 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:10:04 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:17.337 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}}}
11:09:17.338 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 297
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}}}
11:09:27.493 response time in milliseconds: 9394.08
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:26 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:09:23 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/2b27741c-b36b-41ef-8773-554f0e1c2b23.json","testRuns":{"TestRun":{"id":"EID2b27741c-b36b-41ef-8773-554f0e1c2b23","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:09:22.988Z","testTasks":{"TestTask":{"id":"EID54f81559-935d-4cd0-9715-a2b48f022973","parent":{"ref":"EID2b27741c-b36b-41ef-8773-554f0e1c2b23"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7e340ffb-4b78-4a34-ad34-15c41fcb30f9"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7e340ffb-4b78-4a34-ad34-15c41fcb30f9","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:17.778Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:09:19.192Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:09:27.496 [print] EID2b27741c-b36b-41ef-8773-554f0e1c2b23
11:09:27.498 [print] UNDEFINED
11:09:27.500 [print] Conformance Class Download Service - Pre-defined Atom
11:09:27.502 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/2b27741c-b36b-41ef-8773-554f0e1c2b23.json
11:09:27.503 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/log
11:09:27.503 [print] statuspath TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23
11:09:27.503 [print] progresspath TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
11:09:27.504 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:28.021 response time in milliseconds: 516.28
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:09:27 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized"]}
11:09:28.021 [print] {
"val": "30",
"max": "31",
"log": [
"28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)",
"28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:09:23 - Preparing 1 Test Task:",
"28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)",
"28.10.2020 11:09:23 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:09:23 - with parameters: ",
"28.10.2020 11:09:23 - etf.testcases = *",
"28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:09:23 - Setting state to CREATED",
"28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z",
"28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:09:25 - Project Properties: ",
"28.10.2020 11:09:25 - etf.testcases - * ",
"28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ",
"28.10.2020 11:09:25 - username - ",
"28.10.2020 11:09:25 - authUser - ",
"28.10.2020 11:09:25 - authMethod - basic ",
"28.10.2020 11:09:25 - TestRunTask initialized"
]
}
11:09:28.022 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:28.546 response time in milliseconds: 523.64
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:09:28 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"34","max":"35","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized"]}
11:09:28.552 retry condition not satisfied: response.val == response.max
11:09:28.552 sleeping before retry #1
11:09:33.553 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:34.070 response time in milliseconds: 516.39
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:09:34 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"101","max":"102","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:09:34.071 retry condition not satisfied: response.val == response.max
11:09:34.071 sleeping before retry #2
11:09:39.072 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:39.593 response time in milliseconds: 520.64
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:09:39 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"164","max":"165","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:09:39.599 retry condition not satisfied: response.val == response.max
11:09:39.600 sleeping before retry #3
11:09:44.601 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:45.115 response time in milliseconds: 512.89
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:09:45 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:45.115 retry condition not satisfied: response.val == response.max
11:09:45.115 sleeping before retry #4
11:09:50.116 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:50.650 response time in milliseconds: 525.74
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:09:50 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:50.651 retry condition not satisfied: response.val == response.max
11:09:50.651 sleeping before retry #5
11:09:55.652 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:56.176 response time in milliseconds: 524.18
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:09:56 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:56.177 retry condition not satisfied: response.val == response.max
11:09:56.177 sleeping before retry #6
11:10:01.178 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:01.697 response time in milliseconds: 518.40
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:10:01 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:09:23 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:22 UTC 2020)","28.10.2020 11:09:23 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:23 - Preparing 1 Test Task:","28.10.2020 11:09:23 - TestTask 1 (54f81559-935d-4cd0-9715-a2b48f022973)","28.10.2020 11:09:23 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:23 - with parameters: ","28.10.2020 11:09:23 - etf.testcases = *","28.10.2020 11:09:23 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:23 - Setting state to CREATED","28.10.2020 11:09:23 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:23 - Starting TestRun.2b27741c-b36b-41ef-8773-554f0e1c2b23 at 2020-10-28T11:09:25Z","28.10.2020 11:09:25 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:25 - Project Properties: ","28.10.2020 11:09:25 - etf.testcases - * ","28.10.2020 11:09:25 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:09:25 - username - ","28.10.2020 11:09:25 - authUser - ","28.10.2020 11:09:25 - authMethod - basic ","28.10.2020 11:09:25 - TestRunTask initialized","28.10.2020 11:09:33 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:40 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:10:01.697 retry condition not satisfied: response.val == response.max
11:10:01.697 sleeping before retry #7
11:10:06.698 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:08.705 response time in milliseconds: 2006.44
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:10:08 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:10:08.706 retry condition satisfied
11:10:08.706 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:10:08.707 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:13.118 response time in milliseconds: 3336.87
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Cache-Control: public, max-age=120
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:10:11 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Last-Modified: Wed, 28 Oct 2020 11:10:09 GMT
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/2b27741c-b36b-41ef-8773-554f0e1c2b23.json","testRuns":{"TestRun":{"id":"EID2b27741c-b36b-41ef-8773-554f0e1c2b23","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:09:22.988Z","testTasks":{"TestTask":{"id":"EID54f81559-935d-4cd0-9715-a2b48f022973","parent":{"ref":"EID2b27741c-b36b-41ef-8773-554f0e1c2b23"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7e340ffb-4b78-4a34-ad34-15c41fcb30f9"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7e340ffb-4b78-4a34-ad34-15c41fcb30f9","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:17.778Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:09:19.192Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684","testObject":{"ref":"EID7e340ffb-4b78-4a34-ad34-15c41fcb30f9"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee5f3d2-0175-1000-5dc5-0ab5e38f3ab3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee5f3d2-0175-1000-f6d9-be3be1fc63ad","testStepResults":{"TestStepResult":[{"id":"EID6ee5f3d3-0175-1000-f04a-9bba6a5218f7","parent":{"ref":"EID6ee5f3d2-0175-1000-f6d9-be3be1fc63ad"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:09:25Z","duration":25,"status":"PASSED"},{"id":"EID6ee5f3ed-0175-1000-f241-a5e549de1324","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5f48c-0175-1000-601c-13ce8b4afe46","parent":{"ref":"EID6ee5f3ed-0175-1000-f241-a5e549de1324"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f48c-0175-1000-1d74-8f30ebf9d872","parent":{"ref":"EID6ee5f3ed-0175-1000-f241-a5e549de1324"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f48c-0175-1000-88e1-f42db646bfee","parent":{"ref":"EID6ee5f3ed-0175-1000-f241-a5e549de1324"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f48c-0175-1000-e62d-3f155a9ba4ad","parent":{"ref":"EID6ee5f3ed-0175-1000-f241-a5e549de1324"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda04b0f7-ed4b-42d0-bdf8-efb7fb5673fa"},{"ref":"EID7e64000c-e646-4dfa-9fbd-02cacdd86eab"},{"ref":"EIDd9d9065b-92c9-48e4-b9be-b7f6a126cc51"}]},"parent":{"ref":"EID6ee5f3d2-0175-1000-f6d9-be3be1fc63ad"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:09:25Z","duration":51,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f3d2-0175-1000-5dc5-0ab5e38f3ab3"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:09:25Z","duration":213,"status":"PASSED"},{"id":"EID6ee5f4b0-0175-1000-6296-092e70b58fc0","testStepResults":{"TestStepResult":{"id":"EID6ee5f4b0-0175-1000-8c05-639a3565a4e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5f52c-0175-1000-bc12-97c4d535f54c","parent":{"ref":"EID6ee5f4b0-0175-1000-8c05-639a3565a4e2"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f52d-0175-1000-1e76-6703ea8c806e","parent":{"ref":"EID6ee5f4b0-0175-1000-8c05-639a3565a4e2"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f52d-0175-1000-ef28-5f4d9f39a64e","parent":{"ref":"EID6ee5f4b0-0175-1000-8c05-639a3565a4e2"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID00974278-3427-4615-9aac-3f7f0f7edafa"},{"ref":"EID79e7f231-eb94-44c6-9d12-73fec3dda4c1"},{"ref":"EIDd8eac0ad-599b-4871-8e20-e6fa48b49227"}]},"parent":{"ref":"EID6ee5f4b0-0175-1000-6296-092e70b58fc0"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:09:25Z","duration":51,"status":"PASSED"}},"parent":{"ref":"EID6ee5f3d2-0175-1000-5dc5-0ab5e38f3ab3"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:09:25Z","duration":125,"status":"PASSED"}]},"parent":{"ref":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:09:25Z","duration":347,"status":"PASSED"},{"id":"EID6ee5f52d-0175-1000-af71-d134a968a88c","testCaseResults":{"TestCaseResult":[{"id":"EID6ee5f52d-0175-1000-6a6c-738b3d3af267","testStepResults":{"TestStepResult":[{"id":"EID6ee5f52d-0175-1000-74d3-db52e4148d2f","parent":{"ref":"EID6ee5f52d-0175-1000-6a6c-738b3d3af267"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:09:25Z","duration":60,"status":"PASSED"},{"id":"EID6ee5f536-0175-1000-907b-32ee0830b60f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5f639-0175-1000-21f9-19a840f8cb12","parent":{"ref":"EID6ee5f536-0175-1000-907b-32ee0830b60f"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f639-0175-1000-547d-dd13275a08c9","parent":{"ref":"EID6ee5f536-0175-1000-907b-32ee0830b60f"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f639-0175-1000-93ea-5fc9e1a4a70c","parent":{"ref":"EID6ee5f536-0175-1000-907b-32ee0830b60f"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f639-0175-1000-6c94-8d91635a1a99","parent":{"ref":"EID6ee5f536-0175-1000-907b-32ee0830b60f"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f639-0175-1000-7c20-42faab626aa8","parent":{"ref":"EID6ee5f536-0175-1000-907b-32ee0830b60f"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:09:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe243fb12-3eb8-4c3d-b7c1-6010a2fc6ed5"},{"ref":"EID3bdfbf3f-15e7-4d4c-a7d1-4973815da9d3"},{"ref":"EID4d725f4d-6990-4fd1-9749-aa4fb0036f14"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-6a6c-738b3d3af267"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:09:25Z","duration":160,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:09:25Z","duration":268,"status":"PASSED"},{"id":"EID6ee5f639-0175-1000-349e-9ef27e2ff4b3","testStepResults":{"TestStepResult":[{"id":"EID6ee5f642-0175-1000-2a11-ded1dcdc75f4","attachments":{"attachment":[{"ref":"EID29786666-7080-43cd-9aba-db1782b9f851"},{"ref":"EIDe65f7200-4b2f-41e3-a96c-3f0543770b4a"}]},"parent":{"ref":"EID6ee5f639-0175-1000-349e-9ef27e2ff4b3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:09:25Z","duration":108,"status":"PASSED"},{"id":"EID6ee5f6e1-0175-1000-faf7-b9fec61d1174","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5f7b4-0175-1000-f0d8-c019dc211a99","parent":{"ref":"EID6ee5f6e1-0175-1000-faf7-b9fec61d1174"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f7b4-0175-1000-7d60-153ff348ff95","parent":{"ref":"EID6ee5f6e1-0175-1000-faf7-b9fec61d1174"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f7b4-0175-1000-166e-19f946a0942c","parent":{"ref":"EID6ee5f6e1-0175-1000-faf7-b9fec61d1174"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5f7b4-0175-1000-aaaa-a8c1d21f849d","parent":{"ref":"EID6ee5f6e1-0175-1000-faf7-b9fec61d1174"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc9554709-884e-40ee-9824-c44d599d9186"},{"ref":"EIDbe6d03ca-485b-48db-9205-1c85c0b19e0f"},{"ref":"EIDc5e976ed-b0ec-4d59-b619-939c300e486c"}]},"parent":{"ref":"EID6ee5f639-0175-1000-349e-9ef27e2ff4b3"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:09:26Z","duration":43,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:09:25Z","duration":379,"status":"PASSED"},{"id":"EID6ee5f7b4-0175-1000-4ba3-a953faa1b1c2","testStepResults":{"TestStepResult":[{"id":"EID6ee5f7be-0175-1000-2634-5a1a5a49f297","attachments":{"attachment":[{"ref":"EIDd946cc95-6433-4445-a44c-7ea17dc050cc"},{"ref":"EID6b737448-31d8-4425-8ca8-a7d15ba57465"}]},"parent":{"ref":"EID6ee5f7b4-0175-1000-4ba3-a953faa1b1c2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:09:26Z","duration":178,"status":"PASSED"},{"id":"EID6ee5f896-0175-1000-913c-ea71f45f04c9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5fa3b-0175-1000-a8d3-64aa22fba505","parent":{"ref":"EID6ee5f896-0175-1000-913c-ea71f45f04c9"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fa3b-0175-1000-3db3-84df69c7a915","parent":{"ref":"EID6ee5f896-0175-1000-913c-ea71f45f04c9"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fa3b-0175-1000-d01e-82226454d914","parent":{"ref":"EID6ee5f896-0175-1000-913c-ea71f45f04c9"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fa3b-0175-1000-ca7c-1191dbfbfa39","parent":{"ref":"EID6ee5f896-0175-1000-913c-ea71f45f04c9"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fa3b-0175-1000-9cdf-9749121e5510","parent":{"ref":"EID6ee5f896-0175-1000-913c-ea71f45f04c9"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:09:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2cf81120-5195-485e-9498-63a703cdcd79"},{"ref":"EID2948cd8e-6344-4459-8515-b3222c8a07fd"},{"ref":"EIDd5c2f3df-00da-41af-8b42-28c126a78b6c"}]},"parent":{"ref":"EID6ee5f7b4-0175-1000-4ba3-a953faa1b1c2"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:09:26Z","duration":328,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:09:26Z","duration":654,"status":"PASSED"},{"id":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18","testStepResults":{"TestStepResult":[{"id":"EID6ee5fa43-0175-1000-347d-e8fcf9539319","attachments":{"attachment":[{"ref":"EIDce667cdf-7809-4e56-9979-c0c27e2c1ff3"},{"ref":"EID1a986391-d060-4bd7-a249-16654f2b07a3"}]},"parent":{"ref":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:09:26Z","duration":135,"status":"PASSED"},{"id":"EID6ee5faed-0175-1000-fc48-99538d20ecbb","parent":{"ref":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5faed-0175-1000-1b68-1d77ff186317","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5fc53-0175-1000-e0f3-f427846a2d63","parent":{"ref":"EID6ee5faed-0175-1000-1b68-1d77ff186317"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fc53-0175-1000-4046-8dd3b81237eb","parent":{"ref":"EID6ee5faed-0175-1000-1b68-1d77ff186317"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fc53-0175-1000-7899-c4d5b3e800e2","parent":{"ref":"EID6ee5faed-0175-1000-1b68-1d77ff186317"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fc53-0175-1000-c542-abd009ec93e6","parent":{"ref":"EID6ee5faed-0175-1000-1b68-1d77ff186317"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID986ffc5e-7a45-403f-a47d-f5480a3512cd"},{"ref":"EID99c3d680-fe81-4fca-ab68-4c1ba681220c"},{"ref":"EID13455f3d-36e0-47a6-9bed-dc2a35d95663"}]},"parent":{"ref":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:09:27Z","duration":244,"status":"PASSED"},{"id":"EID6ee5fc53-0175-1000-ae04-a643a6258926","attachments":{"attachment":{"ref":"EID3ab6d182-8c0f-4cda-84e0-ae2955a0bed3"}},"parent":{"ref":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:09:27Z","duration":1,"status":"PASSED"},{"id":"EID6ee5fc5e-0175-1000-7638-7fd39953487e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5fd23-0175-1000-cc39-90d9b61dbe16","parent":{"ref":"EID6ee5fc5e-0175-1000-7638-7fd39953487e"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fd23-0175-1000-8473-833194247d3e","parent":{"ref":"EID6ee5fc5e-0175-1000-7638-7fd39953487e"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fd23-0175-1000-88f4-08681d85cfa0","parent":{"ref":"EID6ee5fc5e-0175-1000-7638-7fd39953487e"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fd23-0175-1000-32e8-5aae4d47b1fe","parent":{"ref":"EID6ee5fc5e-0175-1000-7638-7fd39953487e"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee5fd23-0175-1000-ab1c-c445a9931512","parent":{"ref":"EID6ee5fc5e-0175-1000-7638-7fd39953487e"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:09:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa7178120-2b8a-4d08-9545-af8e7c7d0076"},{"ref":"EIDfd423fbd-5ff9-43bf-afdf-9a4cfbe61a7c"},{"ref":"EID95bce398-6748-4de2-9663-aba85d13fb12"}]},"parent":{"ref":"EID6ee5fa43-0175-1000-c54e-9f50be4fca18"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:09:27Z","duration":71,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:09:26Z","duration":736,"status":"PASSED"},{"id":"EID6ee5fd23-0175-1000-1cf1-353fecb63054","testStepResults":{"TestStepResult":[{"id":"EID6ee5fd23-0175-1000-c340-35bc5e601da9","attachments":{"attachment":[{"ref":"EIDd8057b5f-9bdc-4a9d-96f6-8a4efb505212"},{"ref":"EID133369d9-6460-4f87-8ccb-580092d7b74c"}]},"parent":{"ref":"EID6ee5fd23-0175-1000-1cf1-353fecb63054"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:09:27Z","duration":214,"status":"PASSED"},{"id":"EID6ee5fe26-0175-1000-35aa-d316ae14a04a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5ff53-0175-1000-fc7c-90a47739b667","parent":{"ref":"EID6ee5fe26-0175-1000-35aa-d316ae14a04a"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee5ff53-0175-1000-536c-78e14204b450","parent":{"ref":"EID6ee5fe26-0175-1000-35aa-d316ae14a04a"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee5ff53-0175-1000-09b5-3a4d8d55f929","parent":{"ref":"EID6ee5fe26-0175-1000-35aa-d316ae14a04a"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee5ff53-0175-1000-61b5-53488d512074","parent":{"ref":"EID6ee5fe26-0175-1000-35aa-d316ae14a04a"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID340f9678-8cf6-461a-846c-de46108617a0"},{"ref":"EID30e78332-881e-4758-a9cc-c20ad075892c"},{"ref":"EIDf7deafe6-0d18-40f7-bfa3-db476526419a"}]},"parent":{"ref":"EID6ee5fd23-0175-1000-1cf1-353fecb63054"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:09:27Z","duration":215,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:09:27Z","duration":560,"status":"PASSED"},{"id":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8","testStepResults":{"TestStepResult":[{"id":"EID6ee5ff5b-0175-1000-408e-0ec1548550d0","attachments":{"attachment":[{"ref":"EIDd9fcc632-9c43-4df2-b654-878b5fe4e3d1"},{"ref":"EIDe9b580b0-fd9e-4599-ab57-949950a696c3"}]},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:09:28Z","duration":145,"status":"PASSED"},{"id":"EID6ee60016-0175-1000-a3bc-cb8c2a89df9e","parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:09:28Z","duration":1,"status":"PASSED"},{"id":"EID6ee60017-0175-1000-0305-a78135a59342","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60109-0175-1000-7221-82945dc7907c","parent":{"ref":"EID6ee60017-0175-1000-0305-a78135a59342"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee60109-0175-1000-035c-b5ce6bd3a862","parent":{"ref":"EID6ee60017-0175-1000-0305-a78135a59342"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee60109-0175-1000-4abc-90cb4fe7249b","parent":{"ref":"EID6ee60017-0175-1000-0305-a78135a59342"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee60109-0175-1000-02e2-ba7f34f6efb0","parent":{"ref":"EID6ee60017-0175-1000-0305-a78135a59342"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:09:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID42e4b90f-3bcd-4ee2-ae8b-28d5a909330b"},{"ref":"EID08533b56-9150-4282-b189-b9897686627b"},{"ref":"EIDe4d6a003-f284-48c2-a91f-c637f5696900"}]},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:09:28Z","duration":151,"status":"PASSED"},{"id":"EID6ee6010a-0175-1000-8313-a4ec978d5400","attachments":{"attachment":{"ref":"EIDbe6a3aa0-a5c5-44e9-89e1-4a737c8377ff"}},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:09:28Z","duration":5,"status":"PASSED"},{"id":"EID6ee6012e-0175-1000-e9bd-2fbbbf3ea30d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60238-0175-1000-76c4-fbc404172043","parent":{"ref":"EID6ee6012e-0175-1000-e9bd-2fbbbf3ea30d"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee60238-0175-1000-6008-620966c7d56c","parent":{"ref":"EID6ee6012e-0175-1000-e9bd-2fbbbf3ea30d"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee60238-0175-1000-cffa-8aca76225462","parent":{"ref":"EID6ee6012e-0175-1000-e9bd-2fbbbf3ea30d"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID480f8d35-b75c-4d2b-b193-52ba9bcae7c3"},{"ref":"EID6773ca23-75e3-4ad2-8ad9-8a24717411a2"},{"ref":"EID033b9b3b-2dc9-453b-8351-acd06c081e54"}]},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:09:28Z","duration":198,"status":"PASSED"},{"id":"EID6ee60238-0175-1000-523e-5581da1828c9","attachments":{"attachment":{"ref":"EIDbb7c51d2-5f5e-4f77-88bd-7f47cd800006"}},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee60244-0175-1000-a412-b1116c7dadd2","attachments":{"attachment":{"ref":"EID9bd28478-4052-47e6-af02-66bb4b5b260c"}},"parent":{"ref":"EID6ee5ff53-0175-1000-0753-c2a2fc04b8f8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:09:29Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:09:28Z","duration":764,"status":"PASSED"},{"id":"EID6ee6024f-0175-1000-eed0-3b67c1b96f59","testStepResults":{"TestStepResult":[{"id":"EID6ee6024f-0175-1000-57a8-9266daca02d7","attachments":{"attachment":[{"ref":"EID86d26009-79ca-43e2-991c-82af89bbdb91"},{"ref":"EID2638b651-293e-4558-a269-93e3de5d4803"}]},"parent":{"ref":"EID6ee6024f-0175-1000-eed0-3b67c1b96f59"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:09:29Z","duration":155,"status":"PASSED"},{"id":"EID6ee60317-0175-1000-fea3-3bda8351ac02","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6047a-0175-1000-4324-80b3d9d6fa15","parent":{"ref":"EID6ee60317-0175-1000-fea3-3bda8351ac02"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee6047a-0175-1000-dde9-97e81e56260d","parent":{"ref":"EID6ee60317-0175-1000-fea3-3bda8351ac02"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee6047a-0175-1000-d09f-17a71f5b2765","parent":{"ref":"EID6ee60317-0175-1000-fea3-3bda8351ac02"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee6047a-0175-1000-4add-67c6572f8419","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee60317-0175-1000-fea3-3bda8351ac02"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID89c7afae-08f1-46cb-99c3-70929cd59c59"},{"ref":"EIDf7530bf8-ecf1-4009-8d10-10614f101bc3"},{"ref":"EIDb8d9dbe1-4e7a-4fff-9233-b74d322ea384"}]},"parent":{"ref":"EID6ee6024f-0175-1000-eed0-3b67c1b96f59"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:09:29Z","duration":245,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:09:29Z","duration":564,"status":"PASSED_MANUAL"},{"id":"EID6ee60484-0175-1000-bb67-ee90c450a1ec","testStepResults":{"TestStepResult":{"id":"EID6ee60484-0175-1000-bc72-795d08902252","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee604fe-0175-1000-d32b-048fe43c676a","parent":{"ref":"EID6ee60484-0175-1000-bc72-795d08902252"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee604fe-0175-1000-c069-1306911d17e3","parent":{"ref":"EID6ee60484-0175-1000-bc72-795d08902252"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee604fe-0175-1000-26be-4aefcd3820cf","parent":{"ref":"EID6ee60484-0175-1000-bc72-795d08902252"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee604fe-0175-1000-c683-9e98b09d9fa8","parent":{"ref":"EID6ee60484-0175-1000-bc72-795d08902252"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7f3c15e0-f01e-42fe-bf1c-856db0ef5ee6"},{"ref":"EID9a24d9d5-65e8-46cb-820d-e5a8b980e50d"},{"ref":"EID3aa69c9b-6958-4e51-b5d8-8ef4fb1bcbb1"}]},"parent":{"ref":"EID6ee60484-0175-1000-bb67-ee90c450a1ec"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:09:29Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:09:29Z","duration":201,"status":"PASSED"},{"id":"EID6ee6054e-0175-1000-6752-f1cd65fb1c13","testStepResults":{"TestStepResult":{"id":"EID6ee6054e-0175-1000-ca3d-80a47aebd828","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee605e0-0175-1000-325c-5afbc5988f46","parent":{"ref":"EID6ee6054e-0175-1000-ca3d-80a47aebd828"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee605e0-0175-1000-0d81-9ff73b1d0ec2","parent":{"ref":"EID6ee6054e-0175-1000-ca3d-80a47aebd828"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee605e0-0175-1000-6938-d72ab57678e6","parent":{"ref":"EID6ee6054e-0175-1000-ca3d-80a47aebd828"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee605e0-0175-1000-e1c3-616796070a25","parent":{"ref":"EID6ee6054e-0175-1000-ca3d-80a47aebd828"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:09:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID788c02c6-81e2-4a3c-8686-517821ad123d"},{"ref":"EIDe0827896-6da6-49fe-ae09-b536bddf6236"},{"ref":"EID3fbc7f81-7745-49e5-82ce-868a69d27f26"}]},"parent":{"ref":"EID6ee6054e-0175-1000-6752-f1cd65fb1c13"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:09:29Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:09:29Z","duration":155,"status":"PASSED"},{"id":"EID6ee605e9-0175-1000-dfc6-91458a61b170","testStepResults":{"TestStepResult":[{"id":"EID6ee605e9-0175-1000-a9c5-1bd303ab0805","attachments":{"attachment":[{"ref":"EID7ebd57ac-0b3e-4b61-ae15-24e455a6cbdb"},{"ref":"EIDd3e2fb98-f383-4521-8cd3-3c17425d1421"},{"ref":"EIDd815817e-9620-41df-94bd-cd073166dc57"},{"ref":"EIDcc2f6153-8848-4473-b36c-6d2736cb1220"},{"ref":"EID76af43f6-f44b-4915-9d1e-2dd3a0afc899"},{"ref":"EID5f66f36b-fbdf-46a9-a04b-7591dd8e44b0"},{"ref":"EID1678a2ba-fe55-4329-b642-d5bf525e4460"},{"ref":"EIDd0006387-d93e-4221-8c9c-e02df8512d56"},{"ref":"EID10281d19-4bb6-4c97-a863-1d533b830d62"},{"ref":"EIDbbcd1006-b35d-42b7-b49b-2cf1069420b7"},{"ref":"EIDc32f1612-e921-4b72-9fbd-010cb44db91e"},{"ref":"EID52263b15-9d9a-4b37-9b6d-65c99ffd0614"}]},"parent":{"ref":"EID6ee605e9-0175-1000-dfc6-91458a61b170"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:09:29Z","duration":661,"status":"PASSED"},{"id":"EID6ee60919-0175-1000-28d1-4c1bd2d90239","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee609af-0175-1000-6983-4862da66620a","parent":{"ref":"EID6ee60919-0175-1000-28d1-4c1bd2d90239"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:09:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee609af-0175-1000-b6eb-d6423ff2557d","parent":{"ref":"EID6ee60919-0175-1000-28d1-4c1bd2d90239"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:09:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee609af-0175-1000-836b-f30ee0540e0c","parent":{"ref":"EID6ee60919-0175-1000-28d1-4c1bd2d90239"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:09:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee609af-0175-1000-a412-5836b8da53b8","parent":{"ref":"EID6ee60919-0175-1000-28d1-4c1bd2d90239"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:09:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee609af-0175-1000-8e7e-2f6756496d7d","parent":{"ref":"EID6ee60919-0175-1000-28d1-4c1bd2d90239"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:09:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3daf3e33-0ca5-4749-bc59-082e940e83f7"},{"ref":"EID9b45d8c3-5432-4559-9007-e1805ccf8e64"},{"ref":"EID98ec0570-4cb9-44cc-8e81-4deba16ed6c0"}]},"parent":{"ref":"EID6ee605e9-0175-1000-dfc6-91458a61b170"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:09:30Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:09:29Z","duration":976,"status":"PASSED"},{"id":"EID6ee609b9-0175-1000-58a0-e0c818200234","testStepResults":{"TestStepResult":{"id":"EID6ee609b9-0175-1000-6865-9590178c2026","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60a8f-0175-1000-bcfb-d3b4db0336e3","parent":{"ref":"EID6ee609b9-0175-1000-6865-9590178c2026"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60a8f-0175-1000-f562-0b8d1105ce16","parent":{"ref":"EID6ee609b9-0175-1000-6865-9590178c2026"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60a8f-0175-1000-46fe-1e955715f56e","parent":{"ref":"EID6ee609b9-0175-1000-6865-9590178c2026"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60a8f-0175-1000-160c-5ebe85961cd6","parent":{"ref":"EID6ee609b9-0175-1000-6865-9590178c2026"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDefd98410-5a1d-4f8f-bdc1-79d7bedab3cc"},{"ref":"EID774adbb1-b7b6-497a-9759-7fe9519e577e"},{"ref":"EID1e136243-7fa9-4e4b-b3c1-a288086425c8"}]},"parent":{"ref":"EID6ee609b9-0175-1000-58a0-e0c818200234"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:09:30Z","duration":54,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:09:30Z","duration":235,"status":"PASSED"},{"id":"EID6ee60aa4-0175-1000-d71b-57f676ee098d","testStepResults":{"TestStepResult":{"id":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60c0f-0175-1000-2762-2cc7bca57299","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60c0f-0175-1000-94de-02096184f452","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60c0f-0175-1000-5a6d-bffa5dbd745e","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60c0f-0175-1000-dc0d-4aeb57b887df","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60c0f-0175-1000-b81a-e064d0e16135","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60c0f-0175-1000-c525-075f2d40ab05","parent":{"ref":"EID6ee60aa4-0175-1000-ad0c-71ae527243e1"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDce494568-2afa-4bb5-ac01-abd981ae7626"},{"ref":"EIDf5bc61a9-05ff-411b-8cb5-7fd82b0203e4"},{"ref":"EID2503d490-a829-46e8-b56e-7717c85641f5"}]},"parent":{"ref":"EID6ee60aa4-0175-1000-d71b-57f676ee098d"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:09:31Z","duration":121,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:09:31Z","duration":373,"status":"PASSED"},{"id":"EID6ee60c19-0175-1000-b3c0-38e888437152","testStepResults":{"TestStepResult":{"id":"EID6ee60c19-0175-1000-e31b-99260d97f685","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60d08-0175-1000-31f6-ded4d41f3b5a","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-43a5-57b69f392c0e","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-8cf2-e28bdd92a239","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-3aae-4b859f630a3b","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-d441-c6643bb74c31","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-dd9d-d988bfb0ebbf","parent":{"ref":"EID6ee60c19-0175-1000-e31b-99260d97f685"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:09:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9dc40c4d-ce5c-409c-a64a-145be7f23ba3"},{"ref":"EIDa80636af-c170-4cbf-9c8f-af10f5c8831d"},{"ref":"EID427fcc28-8564-48d9-8a56-ba4b2f81e730"}]},"parent":{"ref":"EID6ee60c19-0175-1000-b3c0-38e888437152"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:09:31Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:09:31Z","duration":240,"status":"PASSED"},{"id":"EID6ee60d09-0175-1000-21be-ffd110f3f735","testStepResults":{"TestStepResult":{"id":"EID6ee60d09-0175-1000-262b-22f68941a5de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee60e5d-0175-1000-e7ec-e6c1b61e3e77","parent":{"ref":"EID6ee60d09-0175-1000-262b-22f68941a5de"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee60e5d-0175-1000-a3b1-1d5206c95a1e","parent":{"ref":"EID6ee60d09-0175-1000-262b-22f68941a5de"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee60e5d-0175-1000-c7e2-b74a617aa53e","parent":{"ref":"EID6ee60d09-0175-1000-262b-22f68941a5de"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee60e5d-0175-1000-735d-a6a863822f3e","parent":{"ref":"EID6ee60d09-0175-1000-262b-22f68941a5de"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDff1fc50b-9a79-44ca-a80f-1fcf4444d186"},{"ref":"EIDf3f9f918-2451-48fb-aa4a-090b309825bf"},{"ref":"EIDb1fbd21a-f2b7-4971-8cc8-00cd1e9a8de5"}]},"parent":{"ref":"EID6ee60d09-0175-1000-21be-ffd110f3f735"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:09:31Z","duration":209,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:09:31Z","duration":341,"status":"PASSED"},{"id":"EID6ee60e5e-0175-1000-9ce6-8982aa31fafd","testStepResults":{"TestStepResult":[{"id":"EID6ee60e5e-0175-1000-4b87-1a1503bb2567","attachments":{"attachment":[{"ref":"EIDd90c3042-2a50-4190-95ea-b9cdcc3c724b"},{"ref":"EIDbc89c7fd-3821-48d0-a489-97b2cfbfc050"},{"ref":"EIDf9d04031-87e0-4c1d-bca6-6dbbdfa79607"},{"ref":"EID91509428-b4b8-4e13-9b58-c97916b855a5"}]},"parent":{"ref":"EID6ee60e5e-0175-1000-9ce6-8982aa31fafd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:09:32Z","duration":441,"status":"PASSED"},{"id":"EID6ee610b4-0175-1000-fbd4-63ae52b06ca1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61136-0175-1000-e128-288acc0379a1","parent":{"ref":"EID6ee610b4-0175-1000-fbd4-63ae52b06ca1"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee61136-0175-1000-c2e1-ca9f06d3d72a","parent":{"ref":"EID6ee610b4-0175-1000-fbd4-63ae52b06ca1"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee61136-0175-1000-f839-f9d4f8e44c87","parent":{"ref":"EID6ee610b4-0175-1000-fbd4-63ae52b06ca1"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee61136-0175-1000-855f-74572b142f7d","parent":{"ref":"EID6ee610b4-0175-1000-fbd4-63ae52b06ca1"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc67f592a-4046-4d07-9b56-7816c1c1af80"},{"ref":"EID176be30c-bef7-4b3a-a19e-dd4aff8f0722"},{"ref":"EID88200048-008c-40aa-add2-d43e61e2e5ca"}]},"parent":{"ref":"EID6ee60e5e-0175-1000-9ce6-8982aa31fafd"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:09:32Z","duration":43,"status":"PASSED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:09:32Z","duration":729,"status":"PASSED"},{"id":"EID6ee61137-0175-1000-74a0-d9d7aa01803e","testStepResults":{"TestStepResult":{"id":"EID6ee6113f-0175-1000-8511-00f2012a1377","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee611c0-0175-1000-b1df-f61ae39601a3","parent":{"ref":"EID6ee6113f-0175-1000-8511-00f2012a1377"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee611c0-0175-1000-91cc-ddc32264d845","parent":{"ref":"EID6ee6113f-0175-1000-8511-00f2012a1377"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee611c0-0175-1000-f80c-ef8987cef0c3","parent":{"ref":"EID6ee6113f-0175-1000-8511-00f2012a1377"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee611c0-0175-1000-fe94-b6bd1122a9f2","parent":{"ref":"EID6ee6113f-0175-1000-8511-00f2012a1377"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeea8dd9b-3688-41b6-a01d-5ef966dbe564"},{"ref":"EIDa7104e52-353e-4ad6-830f-9b2348b5f937"},{"ref":"EIDca521b6f-6fc1-4957-aa03-9276ed52ffa9"}]},"parent":{"ref":"EID6ee61137-0175-1000-74a0-d9d7aa01803e"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:09:32Z","duration":44,"status":"PASSED"}},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:09:32Z","duration":137,"status":"PASSED"},{"id":"EID6ee611c1-0175-1000-ccc4-447599cc5c8f","testStepResults":{"TestStepResult":[{"id":"EID6ee611c1-0175-1000-f379-1a13aef29041","parent":{"ref":"EID6ee611c1-0175-1000-ccc4-447599cc5c8f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:09:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee611c1-0175-1000-1b6b-d6dfe54585d0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61273-0175-1000-b3a1-322315116cbc","parent":{"ref":"EID6ee611c1-0175-1000-1b6b-d6dfe54585d0"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61274-0175-1000-4121-12f70339dd58","parent":{"ref":"EID6ee611c1-0175-1000-1b6b-d6dfe54585d0"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61274-0175-1000-10f9-b9904e70460c","parent":{"ref":"EID6ee611c1-0175-1000-1b6b-d6dfe54585d0"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61274-0175-1000-3284-79de34f7317a","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee611c1-0175-1000-1b6b-d6dfe54585d0"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDdf9e8275-90c2-480e-9b33-e27cfaf42875"},{"ref":"EIDefcf1c55-788a-4bf0-a6e5-c5fbe51e7aa5"},{"ref":"EID2f02e7a3-d59f-445e-95e0-bf523c5947d8"}]},"parent":{"ref":"EID6ee611c1-0175-1000-ccc4-447599cc5c8f"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:09:32Z","duration":90,"status":"FAILED"}]},"parent":{"ref":"EID6ee5f52d-0175-1000-af71-d134a968a88c"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:09:32Z","duration":179,"status":"FAILED"}]},"parent":{"ref":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:09:25Z","duration":7495,"status":"FAILED"},{"id":"EID6ee61274-0175-1000-b99c-8dad0683748b","testCaseResults":{"TestCaseResult":[{"id":"EID6ee61274-0175-1000-7c6c-94b0f650bebb","testStepResults":{"TestStepResult":[{"id":"EID6ee61274-0175-1000-7034-83217bff8417","parent":{"ref":"EID6ee61274-0175-1000-7c6c-94b0f650bebb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61274-0175-1000-58a6-93c8ad6a17c9","parent":{"ref":"EID6ee61274-0175-1000-7c6c-94b0f650bebb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:09:33Z","duration":44,"status":"PASSED"},{"id":"EID6ee61274-0175-1000-9eb7-60c713a1df29","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61391-0175-1000-858b-1e3eed3418ab","parent":{"ref":"EID6ee61274-0175-1000-9eb7-60c713a1df29"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61391-0175-1000-340a-24d542709725","parent":{"ref":"EID6ee61274-0175-1000-9eb7-60c713a1df29"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee61391-0175-1000-d692-15af36e95939","parent":{"ref":"EID6ee61274-0175-1000-9eb7-60c713a1df29"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID193f829c-10a6-4792-8e74-a8e350a6808b"},{"ref":"EID264c0cc8-b67f-4c2e-b7fa-b66407cabf7b"},{"ref":"EID0c0ebcbd-6c73-431d-be35-79b31cb393d4"}]},"parent":{"ref":"EID6ee61274-0175-1000-7c6c-94b0f650bebb"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:09:33Z","duration":212,"status":"PASSED"},{"id":"EID6ee61391-0175-1000-efc1-f84041bdddf2","attachments":{"attachment":{"ref":"EIDa1519fc7-d2f1-4225-93ce-ef9971720986"}},"parent":{"ref":"EID6ee61274-0175-1000-7c6c-94b0f650bebb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee6139c-0175-1000-6578-523d99bad2cf","parent":{"ref":"EID6ee61274-0175-1000-7c6c-94b0f650bebb"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:09:33Z","duration":11,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:09:33Z","duration":308,"status":"PASSED"},{"id":"EID6ee613a8-0175-1000-5576-745efef104cd","testStepResults":{"TestStepResult":[{"id":"EID6ee613a8-0175-1000-0336-9adc85b4ad3d","parent":{"ref":"EID6ee613a8-0175-1000-5576-745efef104cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:09:33Z","duration":51,"status":"PASSED"},{"id":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6145b-0175-1000-a639-5dce5aee6701","parent":{"ref":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee6145c-0175-1000-db48-3f9475a251fc","parent":{"ref":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee6145c-0175-1000-7c3c-ed66df98ccb7","parent":{"ref":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee6145c-0175-1000-fefd-7587e9754665","parent":{"ref":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee6145c-0175-1000-622a-4514b9af73d0","parent":{"ref":"EID6ee613a9-0175-1000-9140-1ecdf6e0145a"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbe955154-44a7-4b2f-9a1f-190a9bdffb29"},{"ref":"EID1ff04305-a5a8-4fd6-b766-f85c78fcd025"},{"ref":"EID848ffc2a-46d4-484f-ab3f-1d3aa9ab7c69"}]},"parent":{"ref":"EID6ee613a8-0175-1000-5576-745efef104cd"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:09:33Z","duration":114,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:09:33Z","duration":180,"status":"PASSED"},{"id":"EID6ee6145c-0175-1000-d5d2-acf04ed31970","testStepResults":{"TestStepResult":[{"id":"EID6ee6145c-0175-1000-7f8c-9aa3233aac82","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee614ea-0175-1000-eba4-5c69fe72572d","parent":{"ref":"EID6ee6145c-0175-1000-7f8c-9aa3233aac82"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee614ea-0175-1000-cdf8-3fbc5d6a1eff","parent":{"ref":"EID6ee6145c-0175-1000-7f8c-9aa3233aac82"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee614ea-0175-1000-6e3a-2c0f70d4723d","parent":{"ref":"EID6ee6145c-0175-1000-7f8c-9aa3233aac82"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:09:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3edb90de-5c5b-472f-aeae-00dc4b346254"},{"ref":"EIDae794335-63f6-4b8f-a521-408eb8bcced9"},{"ref":"EID7071bb13-7ea0-4530-986f-2fd87b9d2dcf"}]},"parent":{"ref":"EID6ee6145c-0175-1000-d5d2-acf04ed31970"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:09:33Z","duration":48,"status":"PASSED"},{"id":"EID6ee614ea-0175-1000-633f-97ae669f87e9","attachments":{"attachment":{"ref":"EID62b3e03f-a50d-42b4-8654-27b9b59d896c"}},"parent":{"ref":"EID6ee6145c-0175-1000-d5d2-acf04ed31970"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:09:33Z","duration":1,"status":"PASSED"},{"id":"EID6ee614f5-0175-1000-a819-6ad38f899760","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61662-0175-1000-5fdb-25705d044804","parent":{"ref":"EID6ee614f5-0175-1000-a819-6ad38f899760"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61662-0175-1000-eb3e-f6346fa5a64c","parent":{"ref":"EID6ee614f5-0175-1000-a819-6ad38f899760"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61662-0175-1000-a5b5-f5e4e9bbbb2c","parent":{"ref":"EID6ee614f5-0175-1000-a819-6ad38f899760"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61662-0175-1000-309d-780b6c4b63c0","parent":{"ref":"EID6ee614f5-0175-1000-a819-6ad38f899760"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61662-0175-1000-b6df-ea626b6f8a8a","parent":{"ref":"EID6ee614f5-0175-1000-a819-6ad38f899760"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6557c906-2949-486f-adfe-bf44e691f5e4"},{"ref":"EID9a822e22-79be-486c-b89b-4268f8e5100b"},{"ref":"EID9a548bc5-f329-4256-9854-fb8894b52eec"}]},"parent":{"ref":"EID6ee6145c-0175-1000-d5d2-acf04ed31970"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:09:33Z","duration":275,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:09:33Z","duration":518,"status":"PASSED"},{"id":"EID6ee61662-0175-1000-27a7-1ec578f038d7","testStepResults":{"TestStepResult":[{"id":"EID6ee61662-0175-1000-d3bb-a76d29126e02","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61859-0175-1000-bbf8-33b6aa4c13a1","parent":{"ref":"EID6ee61662-0175-1000-d3bb-a76d29126e02"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61859-0175-1000-2d56-2bc8228910ef","parent":{"ref":"EID6ee61662-0175-1000-d3bb-a76d29126e02"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61859-0175-1000-98aa-33cbb80e3cef","parent":{"ref":"EID6ee61662-0175-1000-d3bb-a76d29126e02"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61859-0175-1000-8ef2-53ac93b00e12","parent":{"ref":"EID6ee61662-0175-1000-d3bb-a76d29126e02"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID76478988-dece-441d-88c6-f9fbc587aeb7"},{"ref":"EIDb94cd2f6-c94b-4b70-bf43-80412d507d0f"},{"ref":"EID75a58d09-f667-4e5f-a5cd-5df2ae6aa939"}]},"parent":{"ref":"EID6ee61662-0175-1000-27a7-1ec578f038d7"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:09:34Z","duration":402,"status":"PASSED"},{"id":"EID6ee61859-0175-1000-2f2d-4e6401a9376e","attachments":{"attachment":{"ref":"EID618755e9-4569-4382-a6d6-b8bcb6665ff5"}},"parent":{"ref":"EID6ee61662-0175-1000-27a7-1ec578f038d7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:09:34Z","duration":1,"status":"PASSED"},{"id":"EID6ee6186b-0175-1000-91b2-cc599a3136c6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61897-0175-1000-ad00-6e782b14fbf6","parent":{"ref":"EID6ee6186b-0175-1000-91b2-cc599a3136c6"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee61897-0175-1000-52f1-3bcec7099979","parent":{"ref":"EID6ee6186b-0175-1000-91b2-cc599a3136c6"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID31c58063-bdda-4a15-be29-a1deebd85fec"},{"ref":"EID01f9925f-235b-40e6-837f-cba50e0b879c"}]},"parent":{"ref":"EID6ee61662-0175-1000-27a7-1ec578f038d7"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:09:34Z","duration":40,"status":"PASSED"},{"id":"EID6ee61897-0175-1000-e67e-320104882724","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6191c-0175-1000-d979-a0d48cc4fb57","parent":{"ref":"EID6ee61897-0175-1000-e67e-320104882724"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee6191c-0175-1000-ff77-739a471dec25","parent":{"ref":"EID6ee61897-0175-1000-e67e-320104882724"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee6191c-0175-1000-33cd-2f423a8ab947","parent":{"ref":"EID6ee61897-0175-1000-e67e-320104882724"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee6191c-0175-1000-daba-4a62f967e0d4","parent":{"ref":"EID6ee61897-0175-1000-e67e-320104882724"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:09:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda93bae7-c45a-4ea3-a1c3-d37b75b57b20"},{"ref":"EID0887b79f-f3c0-45c1-92e2-a061531129a2"},{"ref":"EID04f55f1b-2eb3-430e-9c71-d8034a6e7bd8"}]},"parent":{"ref":"EID6ee61662-0175-1000-27a7-1ec578f038d7"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:09:34Z","duration":38,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:09:34Z","duration":698,"status":"PASSED"},{"id":"EID6ee6191c-0175-1000-c200-2c7a8563441a","testStepResults":{"TestStepResult":{"id":"EID6ee6191c-0175-1000-922e-a4289747f707","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee619eb-0175-1000-b4fa-9039f3dcac01","parent":{"ref":"EID6ee6191c-0175-1000-922e-a4289747f707"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee619eb-0175-1000-481f-ddc281603726","parent":{"ref":"EID6ee6191c-0175-1000-922e-a4289747f707"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee619eb-0175-1000-3b1b-6d90f7a7ef40","parent":{"ref":"EID6ee6191c-0175-1000-922e-a4289747f707"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID94b24b34-0929-4b89-8729-e803dd1ae61c"},{"ref":"EID8ceb46d7-1907-4027-ba66-dbb5075d3e22"},{"ref":"EID4f055fdc-e189-4dd7-ba70-32e2f6fd0415"}]},"parent":{"ref":"EID6ee6191c-0175-1000-c200-2c7a8563441a"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:09:34Z","duration":148,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:09:34Z","duration":208,"status":"PASSED"},{"id":"EID6ee619ec-0175-1000-09dc-fdbdb72b0ffc","testStepResults":{"TestStepResult":{"id":"EID6ee619ec-0175-1000-03bb-682f34300021","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61a98-0175-1000-a24f-753c7ca84fd1","parent":{"ref":"EID6ee619ec-0175-1000-03bb-682f34300021"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61a98-0175-1000-280a-b9dfabc6b62a","parent":{"ref":"EID6ee619ec-0175-1000-03bb-682f34300021"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61a98-0175-1000-aac2-8b17a6b81ab7","parent":{"ref":"EID6ee619ec-0175-1000-03bb-682f34300021"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb59f9995-35c0-4026-b539-8427bb87ac4b"},{"ref":"EIDecfb592a-213c-4fcf-937f-48711f6571c2"},{"ref":"EID185d565b-0156-4cb1-b2c6-3813b6f5f869"}]},"parent":{"ref":"EID6ee619ec-0175-1000-09dc-fdbdb72b0ffc"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:09:35Z","duration":115,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:09:35Z","duration":172,"status":"PASSED"},{"id":"EID6ee61a98-0175-1000-548b-8c5a0e131e91","testStepResults":{"TestStepResult":{"id":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61bad-0175-1000-7b31-ab349d2fdfef","parent":{"ref":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61bad-0175-1000-ab27-649a7abf21c1","parent":{"ref":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61bad-0175-1000-df3c-d23b7a9fa534","parent":{"ref":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61bad-0175-1000-5800-865dcecb2580","parent":{"ref":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61bad-0175-1000-f173-1be24528c3db","parent":{"ref":"EID6ee61a98-0175-1000-cf13-d54dd0fe7224"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID05f5348f-ba85-44ee-968d-c86b301064da"},{"ref":"EID1ef621eb-aac3-4c8f-8194-affd0b4d1efe"},{"ref":"EIDdbb6d29e-5169-406d-9026-3fc810fbe8ab"}]},"parent":{"ref":"EID6ee61a98-0175-1000-548b-8c5a0e131e91"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:09:35Z","duration":125,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:09:35Z","duration":277,"status":"PASSED"},{"id":"EID6ee61bad-0175-1000-498a-40c7da95dcf4","testStepResults":{"TestStepResult":{"id":"EID6ee61bad-0175-1000-f9b5-5415d408915e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61d7f-0175-1000-8128-ed32f3199fdc","parent":{"ref":"EID6ee61bad-0175-1000-f9b5-5415d408915e"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61d7f-0175-1000-ba3f-333a4e021bea","parent":{"ref":"EID6ee61bad-0175-1000-f9b5-5415d408915e"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee61d7f-0175-1000-f6e0-94cd90988800","parent":{"ref":"EID6ee61bad-0175-1000-f9b5-5415d408915e"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:09:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbb731b10-7e7e-4f06-877f-3441968321c3"},{"ref":"EIDb9ab51cd-e815-4c61-be7d-74487a9f1752"},{"ref":"EID6fdb7f20-f360-4841-824d-810cc3d0eab0"}]},"parent":{"ref":"EID6ee61bad-0175-1000-498a-40c7da95dcf4"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:09:35Z","duration":397,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:09:35Z","duration":466,"status":"PASSED"},{"id":"EID6ee61d7f-0175-1000-1d81-c56f92d33a56","testStepResults":{"TestStepResult":{"id":"EID6ee61d7f-0175-1000-f971-f37aadbf8440","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61e32-0175-1000-29a6-8217d6d62751","parent":{"ref":"EID6ee61d7f-0175-1000-f971-f37aadbf8440"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61e32-0175-1000-cf8a-44f8b07f08e9","parent":{"ref":"EID6ee61d7f-0175-1000-f971-f37aadbf8440"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61e32-0175-1000-38ad-d796ca451bdb","parent":{"ref":"EID6ee61d7f-0175-1000-f971-f37aadbf8440"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID97c64f8e-c3cf-4a5a-abb7-b28b6d712ec3"},{"ref":"EID20d54230-6d35-4f1a-ad85-1f99b7af6b61"},{"ref":"EIDa780b902-8b4f-4ee9-9783-59a58e64288b"}]},"parent":{"ref":"EID6ee61d7f-0175-1000-1d81-c56f92d33a56"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:09:35Z","duration":93,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:09:35Z","duration":180,"status":"PASSED"},{"id":"EID6ee61e33-0175-1000-2740-4043a44df14a","testStepResults":{"TestStepResult":{"id":"EID6ee61e33-0175-1000-2a04-2f58c2f89cf6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61ef3-0175-1000-8fda-e53b7bc06687","parent":{"ref":"EID6ee61e33-0175-1000-2a04-2f58c2f89cf6"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61ef3-0175-1000-8694-ae1827d0709c","parent":{"ref":"EID6ee61e33-0175-1000-2a04-2f58c2f89cf6"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61ef3-0175-1000-ea85-0082a3a5dfac","parent":{"ref":"EID6ee61e33-0175-1000-2a04-2f58c2f89cf6"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61ef3-0175-1000-8311-345d0b826df3","parent":{"ref":"EID6ee61e33-0175-1000-2a04-2f58c2f89cf6"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID184169aa-7677-478a-ada7-4b7b58aea149"},{"ref":"EIDa5ff17d1-3bc4-40b2-a72b-7dea87f0cd2e"},{"ref":"EID9254e627-bcf8-4720-9e6c-884fba42a080"}]},"parent":{"ref":"EID6ee61e33-0175-1000-2740-4043a44df14a"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:09:36Z","duration":112,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:09:36Z","duration":215,"status":"PASSED"},{"id":"EID6ee61f0a-0175-1000-2b5a-89ab397e8f04","testStepResults":{"TestStepResult":{"id":"EID6ee61f0a-0175-1000-519b-634728899cbf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee61f93-0175-1000-0b6b-3f901349d0ab","parent":{"ref":"EID6ee61f0a-0175-1000-519b-634728899cbf"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61f93-0175-1000-3472-a989aca35817","parent":{"ref":"EID6ee61f0a-0175-1000-519b-634728899cbf"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61f93-0175-1000-3020-2702acb46e62","parent":{"ref":"EID6ee61f0a-0175-1000-519b-634728899cbf"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61f93-0175-1000-6b07-9cb9ceef685b","parent":{"ref":"EID6ee61f0a-0175-1000-519b-634728899cbf"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2258458c-8513-43c3-94cf-bb43a0d2d89e"},{"ref":"EID701529f7-33ca-46a2-bd17-54d863656c9a"},{"ref":"EIDd46bb728-4ded-476d-9c7d-6a4a4b405d3f"}]},"parent":{"ref":"EID6ee61f0a-0175-1000-2b5a-89ab397e8f04"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:09:36Z","duration":57,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:09:36Z","duration":137,"status":"PASSED"},{"id":"EID6ee61f94-0175-1000-7327-cfa846c6cca2","testStepResults":{"TestStepResult":[{"id":"EID6ee61f94-0175-1000-1215-22c893a34864","parent":{"ref":"EID6ee61f94-0175-1000-7327-cfa846c6cca2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee61f94-0175-1000-29e7-831fb0a054f3","parent":{"ref":"EID6ee61f94-0175-1000-7327-cfa846c6cca2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:09:36Z","duration":211,"status":"PASSED"},{"id":"EID6ee61f94-0175-1000-da64-2fce629009fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6202d-0175-1000-baad-c26a7aceb17d","parent":{"ref":"EID6ee61f94-0175-1000-da64-2fce629009fd"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6202d-0175-1000-88e7-1c06e5bd8d92","parent":{"ref":"EID6ee61f94-0175-1000-da64-2fce629009fd"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6202d-0175-1000-4ac4-b585c8a4addf","parent":{"ref":"EID6ee61f94-0175-1000-da64-2fce629009fd"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6202d-0175-1000-4225-d620aa550127","parent":{"ref":"EID6ee61f94-0175-1000-da64-2fce629009fd"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2fbf658c-0b1c-4999-bbc6-08255fee7f66"},{"ref":"EID53bad3c6-25eb-47ef-b823-9221dcc7fdb4"},{"ref":"EIDcb2111ff-c11f-4613-9fc8-3cc5fb3f965f"}]},"parent":{"ref":"EID6ee61f94-0175-1000-7327-cfa846c6cca2"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:09:36Z","duration":44,"status":"PASSED"},{"id":"EID6ee6202d-0175-1000-9149-715aa4ddd13f","attachments":{"attachment":{"ref":"EIDb6bdfc5d-e09e-4c88-9036-cd0c0baf74c6"}},"parent":{"ref":"EID6ee61f94-0175-1000-7327-cfa846c6cca2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:09:36Z","duration":1,"status":"PASSED"},{"id":"EID6ee62039-0175-1000-f2c4-75b6133fda8b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6210a-0175-1000-b997-37da1e1905a1","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-bb81-f215a17fc0cc","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-fb64-16627d85e07c","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-28a5-01496d9718ed","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-089e-86667bc5608a","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-77a9-6353dea129d6","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee6210a-0175-1000-6ff1-f44c56b834df","parent":{"ref":"EID6ee62039-0175-1000-f2c4-75b6133fda8b"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf1b04d41-55c9-4475-8056-67998718479d"},{"ref":"EID853a7dfd-24d2-4277-8ac9-d7870241318e"},{"ref":"EIDab3445ec-308e-40d8-a50a-426d8f31e854"}]},"parent":{"ref":"EID6ee61f94-0175-1000-7327-cfa846c6cca2"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:09:36Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:09:36Z","duration":383,"status":"PASSED"},{"id":"EID6ee62113-0175-1000-1260-1dbb62340b8b","testStepResults":{"TestStepResult":[{"id":"EID6ee62113-0175-1000-80d2-50985401e13d","parent":{"ref":"EID6ee62113-0175-1000-1260-1dbb62340b8b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:09:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee62113-0175-1000-48d9-6b46c315d5a1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee625b2-0175-1000-694d-0f4960a953a6","parent":{"ref":"EID6ee62113-0175-1000-48d9-6b46c315d5a1"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee625b2-0175-1000-cb97-64090f71c0ec","parent":{"ref":"EID6ee62113-0175-1000-48d9-6b46c315d5a1"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee625b2-0175-1000-20e0-3981c3b4bf31","parent":{"ref":"EID6ee62113-0175-1000-48d9-6b46c315d5a1"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee625b2-0175-1000-51f4-a19e10d1307d","parent":{"ref":"EID6ee62113-0175-1000-48d9-6b46c315d5a1"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe5abe546-7dca-4050-9e64-ce1b3165496f"},{"ref":"EIDef3cf282-5f3b-43dc-9b98-fa636a15b387"},{"ref":"EID4d9d64a4-9e6e-4649-8bc5-1f62bd72e37d"}]},"parent":{"ref":"EID6ee62113-0175-1000-1260-1dbb62340b8b"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:09:36Z","duration":1077,"status":"PASSED"},{"id":"EID6ee625bb-0175-1000-147e-756cf927d021","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee625cd-0175-1000-b8ac-1337568b660c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee628a2-0175-1000-c819-cd1a0b43ee17","parent":{"ref":"EID6ee625cd-0175-1000-b8ac-1337568b660c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee628a2-0175-1000-680c-0ba7196e06ea","parent":{"ref":"EID6ee625cd-0175-1000-b8ac-1337568b660c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee628a2-0175-1000-674d-a9938abe5db5","parent":{"ref":"EID6ee625cd-0175-1000-b8ac-1337568b660c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7310ccc6-de1a-4bd4-852e-52190a8939a7"},{"ref":"EIDc130f0aa-4fed-4a55-98a3-eabd2e5b94d6"},{"ref":"EIDccd86ab0-c870-48cf-9bfe-51b55d69fb98"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:38Z","duration":578,"status":"PASSED"},{"id":"EID6ee628a4-0175-1000-dfad-3b0cd67071e9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62904-0175-1000-5c1d-4392a7ed0ce0","parent":{"ref":"EID6ee628a4-0175-1000-dfad-3b0cd67071e9"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee62904-0175-1000-20ac-8b66ffe1af7d","parent":{"ref":"EID6ee628a4-0175-1000-dfad-3b0cd67071e9"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee62904-0175-1000-88f7-682f0417fad5","parent":{"ref":"EID6ee628a4-0175-1000-dfad-3b0cd67071e9"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc952802e-74c1-4d4f-98dd-8a0c6f199c49"},{"ref":"EIDdaace8df-a24e-4a13-b2f6-dcbc0350b3dc"},{"ref":"EID500a82ab-5bbc-4368-8a06-e688e1aa4fab"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:38Z","duration":42,"status":"PASSED"},{"id":"EID6ee62906-0175-1000-16fa-c80891cc9286","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee629ce-0175-1000-6b16-819338feba62","parent":{"ref":"EID6ee62906-0175-1000-16fa-c80891cc9286"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee629ce-0175-1000-7031-5efcca9b1006","parent":{"ref":"EID6ee62906-0175-1000-16fa-c80891cc9286"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee629ce-0175-1000-5bd1-2bee13a8d656","parent":{"ref":"EID6ee62906-0175-1000-16fa-c80891cc9286"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID830512da-1651-4461-80e4-61235204602c"},{"ref":"EID573a1713-46da-47a8-92c8-498c886ba9d4"},{"ref":"EIDfd5bbdc2-f307-460f-9f38-b86ff894d5ee"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:38Z","duration":150,"status":"PASSED"}]},"parent":{"ref":"EID6ee62113-0175-1000-1260-1dbb62340b8b"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:09:38Z","duration":1044,"status":"PASSED"},{"id":"EID6ee629cf-0175-1000-959a-63b2a3e7d5cb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62a93-0175-1000-68f1-285bd1a88d33","parent":{"ref":"EID6ee629cf-0175-1000-959a-63b2a3e7d5cb"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62a93-0175-1000-7f95-f8cab381642f","parent":{"ref":"EID6ee629cf-0175-1000-959a-63b2a3e7d5cb"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:09:39Z","duration":1,"status":"PASSED"},{"id":"EID6ee62a94-0175-1000-6838-172f82807a36","parent":{"ref":"EID6ee629cf-0175-1000-959a-63b2a3e7d5cb"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62a94-0175-1000-3655-6f3edbd28795","parent":{"ref":"EID6ee629cf-0175-1000-959a-63b2a3e7d5cb"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDecb150f3-f070-42b6-9cc4-577b3d7833fe"},{"ref":"EID83d3da64-3569-476f-9c60-118f321d02f1"},{"ref":"EID8bac2b73-64be-44d4-872f-2f71a7753cb0"}]},"parent":{"ref":"EID6ee62113-0175-1000-1260-1dbb62340b8b"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:09:39Z","duration":138,"status":"PASSED"}]},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:09:36Z","duration":2441,"status":"PASSED"},{"id":"EID6ee62a9d-0175-1000-4e98-28fddef4cfe1","testStepResults":{"TestStepResult":{"id":"EID6ee62a9d-0175-1000-19cf-d28661561270","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62b12-0175-1000-1301-2fef0849dce0","parent":{"ref":"EID6ee62a9d-0175-1000-19cf-d28661561270"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62b12-0175-1000-949d-78b5fb7a96ee","parent":{"ref":"EID6ee62a9d-0175-1000-19cf-d28661561270"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62b12-0175-1000-fe8c-dc675a72e42f","parent":{"ref":"EID6ee62a9d-0175-1000-19cf-d28661561270"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62b12-0175-1000-b209-244a36f3df6d","parent":{"ref":"EID6ee62a9d-0175-1000-19cf-d28661561270"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:09:39Z","duration":1,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2adb652c-70f9-4938-b0ae-76e096066db5"},{"ref":"EID6bc1fc8b-ccb9-49c8-91ab-631b975721f9"},{"ref":"EIDb10c2127-7a72-47a5-a087-b18555ec8072"}]},"parent":{"ref":"EID6ee62a9d-0175-1000-4e98-28fddef4cfe1"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:09:39Z","duration":54,"status":"PASSED"}},"parent":{"ref":"EID6ee61274-0175-1000-b99c-8dad0683748b"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:09:39Z","duration":118,"status":"PASSED"}]},"parent":{"ref":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:09:33Z","duration":6303,"status":"PASSED"},{"id":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab","testCaseResults":{"TestCaseResult":[{"id":"EID6ee62b13-0175-1000-5a6a-fe24d8c6fa2c","testStepResults":{"TestStepResult":[{"id":"EID6ee62b13-0175-1000-6413-79394e7935e6","parent":{"ref":"EID6ee62b13-0175-1000-5a6a-fe24d8c6fa2c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:09:39Z","duration":499,"status":"PASSED"},{"id":"EID6ee62b13-0175-1000-ecaa-abd6995ecc45","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62c31-0175-1000-5ac5-8d425a21c63a","parent":{"ref":"EID6ee62b13-0175-1000-ecaa-abd6995ecc45"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62c31-0175-1000-25d6-061de1625fda","parent":{"ref":"EID6ee62b13-0175-1000-ecaa-abd6995ecc45"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62c31-0175-1000-c834-5c394d56c620","parent":{"ref":"EID6ee62b13-0175-1000-ecaa-abd6995ecc45"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID370f509a-b330-4bb0-a7a0-c2ed0f5e545a"},{"ref":"EID429eb302-e92f-4483-ba88-f32f484cf62e"},{"ref":"EIDa0b16ea5-39db-41c5-9776-eb88d9001777"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5a6a-fe24d8c6fa2c"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:09:39Z","duration":211,"status":"PASSED"},{"id":"EID6ee62c32-0175-1000-2a8e-33ae77e5618e","attachments":{"attachment":{"ref":"EIDca3f5d77-2acf-441d-88fa-f8a033bb8c3b"}},"parent":{"ref":"EID6ee62b13-0175-1000-5a6a-fe24d8c6fa2c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:09:39Z","duration":298,"status":"PASSED"},{"id":"EID6ee62c3e-0175-1000-6735-4b830a63dcc2","testStepResults":{"TestStepResult":[{"id":"EID6ee62c3e-0175-1000-59e5-2c338e1e8137","parent":{"ref":"EID6ee62c3e-0175-1000-6735-4b830a63dcc2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:09:39Z","duration":499,"status":"PASSED"},{"id":"EID6ee62c3e-0175-1000-3d25-28d3964901ce","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62cf4-0175-1000-e261-e7987f56a9d1","parent":{"ref":"EID6ee62c3e-0175-1000-3d25-28d3964901ce"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-6bf8-3517b587f88c","parent":{"ref":"EID6ee62c3e-0175-1000-3d25-28d3964901ce"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-f081-bd835f7f44b5","parent":{"ref":"EID6ee62c3e-0175-1000-3d25-28d3964901ce"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-f485-799509e5e832","parent":{"ref":"EID6ee62c3e-0175-1000-3d25-28d3964901ce"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4566e083-9663-48a9-a3ce-9ec81964da13"},{"ref":"EIDb8f4b3cd-e7a9-4a36-80aa-fb9f7818ebee"},{"ref":"EID948b0c24-d7ed-4841-8fc6-36ee289eaad2"}]},"parent":{"ref":"EID6ee62c3e-0175-1000-6735-4b830a63dcc2"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:09:39Z","duration":115,"status":"PASSED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:09:39Z","duration":182,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-8e71-b91fef0cfc09","testStepResults":{"TestStepResult":[{"id":"EID6ee62cf4-0175-1000-f04f-cb501e3da576","parent":{"ref":"EID6ee62cf4-0175-1000-8e71-b91fef0cfc09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:09:39Z","duration":499,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-c722-e5255297b07a","parent":{"ref":"EID6ee62cf4-0175-1000-8e71-b91fef0cfc09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:09:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee62cf4-0175-1000-1151-20afaa348165","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62da9-0175-1000-6f88-d41387979628","parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62da9-0175-1000-8773-1d61426cb173","parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62da9-0175-1000-c001-e8bcb8a2ace2","parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62da9-0175-1000-00a9-f87aefeda4d2","parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62da9-0175-1000-09dd-23087a0d0793","parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62da9-0175-1000-f055-20e1ac2bdb07","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"FAILED"},{"id":"EID6ee62da9-0175-1000-b9e9-74f17f0196fb","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee62cf4-0175-1000-1151-20afaa348165"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID33292371-cbcc-4656-92ad-fe3dfe86992a"},{"ref":"EID6b2681a8-ac9a-44f8-b57b-c67c70c3175b"},{"ref":"EID743c12e5-2814-4516-b211-e3bc785f7424"}]},"parent":{"ref":"EID6ee62cf4-0175-1000-8e71-b91fef0cfc09"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:09:39Z","duration":81,"status":"FAILED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:09:39Z","duration":189,"status":"FAILED"},{"id":"EID6ee62db1-0175-1000-e6db-43ef339f0fb9","testStepResults":{"TestStepResult":[{"id":"EID6ee62db1-0175-1000-2d36-e3d256506ba1","parent":{"ref":"EID6ee62db1-0175-1000-e6db-43ef339f0fb9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:09:40Z","duration":499,"status":"PASSED"},{"id":"EID6ee62db2-0175-1000-a9ad-9a4ed06ecfcb","parent":{"ref":"EID6ee62db1-0175-1000-e6db-43ef339f0fb9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee62e56-0175-1000-3838-9f2ac6aacbad","parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62e56-0175-1000-8dc6-4c0eb5d3741f","parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62e56-0175-1000-aa06-95889d057aef","parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62e56-0175-1000-92bd-17cfec510efe","parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62e56-0175-1000-27ba-7ff11d5ce516","parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee62e56-0175-1000-6f59-3d9cc79f43cf","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee62db2-0175-1000-d0f1-f9e8408aa307"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:09:40Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID74425ccc-afd0-4318-8f35-681b81cadf12"},{"ref":"EIDb4e5e270-5a9b-498d-b286-8562b5fc9d4f"},{"ref":"EID9edafcc9-5e45-4b21-84a4-9529caf94b4a"}]},"parent":{"ref":"EID6ee62db1-0175-1000-e6db-43ef339f0fb9"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:09:40Z","duration":78,"status":"FAILED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:09:40Z","duration":165,"status":"FAILED"},{"id":"EID6ee62e56-0175-1000-61d0-6e5330c6a3b3","testStepResults":{"TestStepResult":[{"id":"EID6ee62e57-0175-1000-d102-1b5a69512509","parent":{"ref":"EID6ee62e56-0175-1000-61d0-6e5330c6a3b3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:09:40Z","duration":499,"status":"PASSED"},{"id":"EID6ee62e57-0175-1000-2f7a-4627989171b0","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID66ac7c65-1ca0-4cdc-8740-5f8ffa39fc25"},{"ref":"EID0d07f964-3bc9-433c-aa88-2c81c2ad0861"},{"ref":"EID663099ee-b8ef-44a1-8b0b-04d3f8db8ae6"},{"ref":"EIDabd55d4a-305a-4bf7-84c8-361f5d20f4fd"},{"ref":"EID594c0e3d-bcc5-47bd-98ab-8797509c0252"},{"ref":"EIDa2e90a3a-4f3e-4a61-a5ce-f672555fd671"},{"ref":"EID81e11f59-2c31-40c2-9905-8ce3759d50b0"},{"ref":"EID750327fc-fa3a-47d6-9a42-d7f1b4641fd6"},{"ref":"EID8f00829c-9587-4b57-8199-de2d2a00a9d6"},{"ref":"EID9d7941b9-ccc3-4904-82c9-f68edb204795"},{"ref":"EID557fd894-896c-4952-8352-26423ced2307"},{"ref":"EID95c65bbb-f551-4d1a-9056-ef003b26a8bb"},{"ref":"EID0e152b06-26d4-40b3-a47e-1f081e76ebd9"},{"ref":"EIDd94f2953-75be-4b23-9f81-6ecec7f50c1e"},{"ref":"EIDab37d5b3-a2e1-40cd-8972-aef21459c3db"}]},"parent":{"ref":"EID6ee62e56-0175-1000-61d0-6e5330c6a3b3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:09:40Z","duration":442,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:09:40Z","duration":683,"status":"SKIPPED"},{"id":"EID6ee63109-0175-1000-a8e3-0b1ef1ae18e4","testStepResults":{"TestStepResult":[{"id":"EID6ee63109-0175-1000-2bbe-68d679ffdbed","parent":{"ref":"EID6ee63109-0175-1000-a8e3-0b1ef1ae18e4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:09:41Z","duration":499,"status":"PASSED"},{"id":"EID6ee63109-0175-1000-857d-8a3c61aa0e08","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee63199-0175-1000-996f-dc5812a4e70a","parent":{"ref":"EID6ee63109-0175-1000-857d-8a3c61aa0e08"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63199-0175-1000-5288-4c7d72dfc787","parent":{"ref":"EID6ee63109-0175-1000-857d-8a3c61aa0e08"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63199-0175-1000-d5ed-da1e2084be86","parent":{"ref":"EID6ee63109-0175-1000-857d-8a3c61aa0e08"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63199-0175-1000-ca95-bfae4b4f740d","parent":{"ref":"EID6ee63109-0175-1000-857d-8a3c61aa0e08"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48a24124-ef8e-4cc9-b8af-5ba89ad11fe4"},{"ref":"EID1bcc32e1-0c01-409c-9537-67f9d36b6e91"},{"ref":"EIDe23112cf-8db8-4cb8-a58e-63e6c0d4cd3d"}]},"parent":{"ref":"EID6ee63109-0175-1000-a8e3-0b1ef1ae18e4"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:09:41Z","duration":75,"status":"PASSED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:09:41Z","duration":145,"status":"PASSED"},{"id":"EID6ee6319a-0175-1000-9912-e83150a8c109","testStepResults":{"TestStepResult":[{"id":"EID6ee6319a-0175-1000-c4a0-c36150130456","parent":{"ref":"EID6ee6319a-0175-1000-9912-e83150a8c109"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:09:41Z","duration":499,"status":"PASSED"},{"id":"EID6ee6319a-0175-1000-fc99-e099b1f77dfd","parent":{"ref":"EID6ee6319a-0175-1000-9912-e83150a8c109"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee6319a-0175-1000-4446-98edd75cf4df","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee63231-0175-1000-38c1-8b03de167862","parent":{"ref":"EID6ee6319a-0175-1000-4446-98edd75cf4df"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63231-0175-1000-2a61-4fb9de2d7edf","parent":{"ref":"EID6ee6319a-0175-1000-4446-98edd75cf4df"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63231-0175-1000-855d-ac9f8024c2e2","parent":{"ref":"EID6ee6319a-0175-1000-4446-98edd75cf4df"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63231-0175-1000-7526-31bc2c756478","parent":{"ref":"EID6ee6319a-0175-1000-4446-98edd75cf4df"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda1b9d1b-f8c4-4db7-86df-7108ce96db32"},{"ref":"EID33818722-8cc6-412f-8e94-085c50df6c90"},{"ref":"EIDf851cb1f-2ef6-4bc8-929b-dc01d89c68df"}]},"parent":{"ref":"EID6ee6319a-0175-1000-9912-e83150a8c109"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:09:41Z","duration":79,"status":"PASSED"},{"id":"EID6ee63231-0175-1000-180e-b247a67ac923","attachments":{"attachment":{"ref":"EID572ed84a-eaf2-4d13-9646-5bec6a3d8693"}},"parent":{"ref":"EID6ee6319a-0175-1000-9912-e83150a8c109"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:09:41Z","duration":1,"status":"PASSED"},{"id":"EID6ee6323d-0175-1000-cf1f-f43cea1ccc2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee63242-0175-1000-a847-58e6028cda5c","parent":{"ref":"EID6ee6323d-0175-1000-cf1f-f43cea1ccc2a"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63242-0175-1000-6394-b0ddb3d7df87","parent":{"ref":"EID6ee6323d-0175-1000-cf1f-f43cea1ccc2a"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee63242-0175-1000-ba59-f816d5d3492a","parent":{"ref":"EID6ee6323d-0175-1000-cf1f-f43cea1ccc2a"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID950fbdaa-9b53-499a-93a2-12eccacadfba"},{"ref":"EID53334a83-bbf5-4fb4-b37c-d7ab854896dc"}]},"parent":{"ref":"EID6ee6319a-0175-1000-9912-e83150a8c109"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:09:41Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee62b13-0175-1000-5e57-3e67a9b10cab"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:09:41Z","duration":168,"status":"PASSED"}]},"parent":{"ref":"EID700f2d4f-ace8-4722-8abf-d09e04eb2684"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:09:39Z","duration":1839,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceEndpoint","id":"EIDc67f592a-4046-4d07-9b56-7816c1c1af80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID83d3da64-3569-476f-9c60-118f321d02f1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID83d3da64-3569-476f-9c60-118f321d02f1"}},{"type":"Message","id":"EID9d7941b9-ccc3-4904-82c9-f68edb204795","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID9d7941b9-ccc3-4904-82c9-f68edb204795"}},{"type":"ServiceEndpoint","id":"EID00974278-3427-4615-9aac-3f7f0f7edafa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDc9554709-884e-40ee-9824-c44d599d9186","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDcb2111ff-c11f-4613-9fc8-3cc5fb3f965f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDa0b16ea5-39db-41c5-9776-eb88d9001777","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDd8eac0ad-599b-4871-8e20-e6fa48b49227","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID176be30c-bef7-4b3a-a19e-dd4aff8f0722","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID176be30c-bef7-4b3a-a19e-dd4aff8f0722"}},{"type":"GetParameter","id":"EID2f02e7a3-d59f-445e-95e0-bf523c5947d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa2e90a3a-4f3e-4a61-a5ce-f672555fd671","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDa2e90a3a-4f3e-4a61-a5ce-f672555fd671"}},{"type":"ServiceEndpoint","id":"EID89c7afae-08f1-46cb-99c3-70929cd59c59","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDdbb6d29e-5169-406d-9026-3fc810fbe8ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDa7178120-2b8a-4d08-9545-af8e7c7d0076","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID31c58063-bdda-4a15-be29-a1deebd85fec","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9kb3dubG9hZHMva3JtX21hcmllbmVyYXBwb3J0YWdlZWVuaGVkZW5fZXUyMDE4X2dwa2cuemlw"},{"type":"ServiceResponse","id":"EID53bad3c6-25eb-47ef-b823-9221dcc7fdb4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID53bad3c6-25eb-47ef-b823-9221dcc7fdb4"}},{"type":"Message","id":"EID8f00829c-9587-4b57-8199-de2d2a00a9d6","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID8f00829c-9587-4b57-8199-de2d2a00a9d6"}},{"type":"Message","id":"EIDd946cc95-6433-4445-a44c-7ea17dc050cc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd946cc95-6433-4445-a44c-7ea17dc050cc"}},{"type":"Message","id":"EID86d26009-79ca-43e2-991c-82af89bbdb91","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID86d26009-79ca-43e2-991c-82af89bbdb91"}},{"type":"ServiceEndpoint","id":"EIDbe955154-44a7-4b2f-9a1f-190a9bdffb29","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDb59f9995-35c0-4026-b539-8427bb87ac4b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EIDa780b902-8b4f-4ee9-9783-59a58e64288b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID853a7dfd-24d2-4277-8ac9-d7870241318e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID853a7dfd-24d2-4277-8ac9-d7870241318e"}},{"type":"ServiceEndpoint","id":"EID3daf3e33-0ca5-4749-bc59-082e940e83f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4d9d64a4-9e6e-4649-8bc5-1f62bd72e37d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID66ac7c65-1ca0-4cdc-8740-5f8ffa39fc25","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID66ac7c65-1ca0-4cdc-8740-5f8ffa39fc25"}},{"type":"Message","id":"EID52263b15-9d9a-4b37-9b6d-65c99ffd0614","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID52263b15-9d9a-4b37-9b6d-65c99ffd0614"}},{"type":"ServiceEndpoint","id":"EID950fbdaa-9b53-499a-93a2-12eccacadfba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EID370f509a-b330-4bb0-a7a0-c2ed0f5e545a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID8ceb46d7-1907-4027-ba66-dbb5075d3e22","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID8ceb46d7-1907-4027-ba66-dbb5075d3e22"}},{"type":"Message","id":"EIDbbcd1006-b35d-42b7-b49b-2cf1069420b7","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDbbcd1006-b35d-42b7-b49b-2cf1069420b7"}},{"type":"GetParameter","id":"EID9a548bc5-f329-4256-9854-fb8894b52eec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID6fdb7f20-f360-4841-824d-810cc3d0eab0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID2948cd8e-6344-4459-8515-b3222c8a07fd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID2948cd8e-6344-4459-8515-b3222c8a07fd"}},{"type":"ServiceEndpoint","id":"EID2cf81120-5195-485e-9498-63a703cdcd79","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID2adb652c-70f9-4938-b0ae-76e096066db5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID48a24124-ef8e-4cc9-b8af-5ba89ad11fe4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa5ff17d1-3bc4-40b2-a72b-7dea87f0cd2e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDa5ff17d1-3bc4-40b2-a72b-7dea87f0cd2e"}},{"type":"Message","id":"EID9bd28478-4052-47e6-af02-66bb4b5b260c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID9bd28478-4052-47e6-af02-66bb4b5b260c"}},{"type":"ServiceResponse","id":"EID701529f7-33ca-46a2-bd17-54d863656c9a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID701529f7-33ca-46a2-bd17-54d863656c9a"}},{"type":"ServiceEndpoint","id":"EID788c02c6-81e2-4a3c-8686-517821ad123d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID5f66f36b-fbdf-46a9-a04b-7591dd8e44b0","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID5f66f36b-fbdf-46a9-a04b-7591dd8e44b0"}},{"type":"Message","id":"EIDb6bdfc5d-e09e-4c88-9036-cd0c0baf74c6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDb6bdfc5d-e09e-4c88-9036-cd0c0baf74c6"}},{"type":"GetParameter","id":"EIDd5c2f3df-00da-41af-8b42-28c126a78b6c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID76478988-dece-441d-88c6-f9fbc587aeb7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID0c0ebcbd-6c73-431d-be35-79b31cb393d4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDbe6a3aa0-a5c5-44e9-89e1-4a737c8377ff","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDbe6a3aa0-a5c5-44e9-89e1-4a737c8377ff"}},{"type":"Message","id":"EID81e11f59-2c31-40c2-9905-8ce3759d50b0","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID81e11f59-2c31-40c2-9905-8ce3759d50b0"}},{"type":"Message","id":"EID6b737448-31d8-4425-8ca8-a7d15ba57465","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID6b737448-31d8-4425-8ca8-a7d15ba57465"}},{"type":"Message","id":"EIDca3f5d77-2acf-441d-88fa-f8a033bb8c3b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDca3f5d77-2acf-441d-88fa-f8a033bb8c3b"}},{"type":"ServiceEndpoint","id":"EIDff1fc50b-9a79-44ca-a80f-1fcf4444d186","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID6bc1fc8b-ccb9-49c8-91ab-631b975721f9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID6bc1fc8b-ccb9-49c8-91ab-631b975721f9"}},{"type":"ServiceEndpoint","id":"EID480f8d35-b75c-4d2b-b193-52ba9bcae7c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID618755e9-4569-4382-a6d6-b8bcb6665ff5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID618755e9-4569-4382-a6d6-b8bcb6665ff5"}},{"type":"GetParameter","id":"EIDe4d6a003-f284-48c2-a91f-c637f5696900","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID429eb302-e92f-4483-ba88-f32f484cf62e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID429eb302-e92f-4483-ba88-f32f484cf62e"}},{"type":"ServiceResponse","id":"EIDb9ab51cd-e815-4c61-be7d-74487a9f1752","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDb9ab51cd-e815-4c61-be7d-74487a9f1752"}},{"type":"ServiceResponse","id":"EID33818722-8cc6-412f-8e94-085c50df6c90","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID33818722-8cc6-412f-8e94-085c50df6c90"}},{"type":"Message","id":"EID2638b651-293e-4558-a269-93e3de5d4803","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID2638b651-293e-4558-a269-93e3de5d4803"}},{"type":"ServiceResponse","id":"EID0887b79f-f3c0-45c1-92e2-a061531129a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID0887b79f-f3c0-45c1-92e2-a061531129a2"}},{"type":"ServiceEndpoint","id":"EID74425ccc-afd0-4318-8f35-681b81cadf12","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDae794335-63f6-4b8f-a521-408eb8bcced9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDae794335-63f6-4b8f-a521-408eb8bcced9"}},{"type":"GetParameter","id":"EID8bac2b73-64be-44d4-872f-2f71a7753cb0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDc32f1612-e921-4b72-9fbd-010cb44db91e","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDc32f1612-e921-4b72-9fbd-010cb44db91e"}},{"type":"ServiceResponse","id":"EIDa7104e52-353e-4ad6-830f-9b2348b5f937","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDa7104e52-353e-4ad6-830f-9b2348b5f937"}},{"type":"LogFile","id":"EID030ed077-ada7-4959-867b-e43c1f68b0b4","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID030ed077-ada7-4959-867b-e43c1f68b0b4"}},{"type":"Message","id":"EID663099ee-b8ef-44a1-8b0b-04d3f8db8ae6","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID663099ee-b8ef-44a1-8b0b-04d3f8db8ae6"}},{"type":"ServiceEndpoint","id":"EID340f9678-8cf6-461a-846c-de46108617a0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID6557c906-2949-486f-adfe-bf44e691f5e4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EIDefcf1c55-788a-4bf0-a6e5-c5fbe51e7aa5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDefcf1c55-788a-4bf0-a6e5-c5fbe51e7aa5"}},{"type":"GetParameter","id":"EIDd9d9065b-92c9-48e4-b9be-b7f6a126cc51","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID7ebd57ac-0b3e-4b61-ae15-24e455a6cbdb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID7ebd57ac-0b3e-4b61-ae15-24e455a6cbdb"}},{"type":"ServiceResponse","id":"EID08533b56-9150-4282-b189-b9897686627b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID08533b56-9150-4282-b189-b9897686627b"}},{"type":"Message","id":"EID62b3e03f-a50d-42b4-8654-27b9b59d896c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID62b3e03f-a50d-42b4-8654-27b9b59d896c"}},{"type":"ServiceResponse","id":"EID30e78332-881e-4758-a9cc-c20ad075892c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID30e78332-881e-4758-a9cc-c20ad075892c"}},{"type":"ServiceResponse","id":"EIDe0827896-6da6-49fe-ae09-b536bddf6236","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDe0827896-6da6-49fe-ae09-b536bddf6236"}},{"type":"ServiceResponse","id":"EID774adbb1-b7b6-497a-9759-7fe9519e577e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID774adbb1-b7b6-497a-9759-7fe9519e577e"}},{"type":"Message","id":"EIDd3e2fb98-f383-4521-8cd3-3c17425d1421","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd3e2fb98-f383-4521-8cd3-3c17425d1421"}},{"type":"ServiceEndpoint","id":"EIDe243fb12-3eb8-4c3d-b7c1-6010a2fc6ed5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDc130f0aa-4fed-4a55-98a3-eabd2e5b94d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDc130f0aa-4fed-4a55-98a3-eabd2e5b94d6"}},{"type":"ServiceResponse","id":"EIDf3f9f918-2451-48fb-aa4a-090b309825bf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDf3f9f918-2451-48fb-aa4a-090b309825bf"}},{"type":"GetParameter","id":"EIDb1fbd21a-f2b7-4971-8cc8-00cd1e9a8de5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDdaace8df-a24e-4a13-b2f6-dcbc0350b3dc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDdaace8df-a24e-4a13-b2f6-dcbc0350b3dc"}},{"type":"Message","id":"EIDe9b580b0-fd9e-4599-ab57-949950a696c3","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDe9b580b0-fd9e-4599-ab57-949950a696c3"}},{"type":"ServiceEndpoint","id":"EID4566e083-9663-48a9-a3ce-9ec81964da13","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa80636af-c170-4cbf-9c8f-af10f5c8831d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDa80636af-c170-4cbf-9c8f-af10f5c8831d"}},{"type":"GetParameter","id":"EID7071bb13-7ea0-4530-986f-2fd87b9d2dcf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID2258458c-8513-43c3-94cf-bb43a0d2d89e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID9a822e22-79be-486c-b89b-4268f8e5100b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID9a822e22-79be-486c-b89b-4268f8e5100b"}},{"type":"ServiceEndpoint","id":"EIDe5abe546-7dca-4050-9e64-ce1b3165496f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID95c65bbb-f551-4d1a-9056-ef003b26a8bb","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID95c65bbb-f551-4d1a-9056-ef003b26a8bb"}},{"type":"GetParameter","id":"EIDd46bb728-4ded-476d-9c7d-6a4a4b405d3f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID133369d9-6460-4f87-8ccb-580092d7b74c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID133369d9-6460-4f87-8ccb-580092d7b74c"}},{"type":"Message","id":"EID29786666-7080-43cd-9aba-db1782b9f851","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID29786666-7080-43cd-9aba-db1782b9f851"}},{"type":"GetParameter","id":"EIDc5e976ed-b0ec-4d59-b619-939c300e486c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDe23112cf-8db8-4cb8-a58e-63e6c0d4cd3d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID3bdfbf3f-15e7-4d4c-a7d1-4973815da9d3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID3bdfbf3f-15e7-4d4c-a7d1-4973815da9d3"}},{"type":"GetParameter","id":"EID3fbc7f81-7745-49e5-82ce-868a69d27f26","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID1e136243-7fa9-4e4b-b3c1-a288086425c8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID1678a2ba-fe55-4329-b642-d5bf525e4460","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID1678a2ba-fe55-4329-b642-d5bf525e4460"}},{"type":"Message","id":"EID750327fc-fa3a-47d6-9a42-d7f1b4641fd6","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID750327fc-fa3a-47d6-9a42-d7f1b4641fd6"}},{"type":"GetParameter","id":"EID948b0c24-d7ed-4841-8fc6-36ee289eaad2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID572ed84a-eaf2-4d13-9646-5bec6a3d8693","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID572ed84a-eaf2-4d13-9646-5bec6a3d8693"}},{"type":"GetParameter","id":"EID033b9b3b-2dc9-453b-8351-acd06c081e54","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID3edb90de-5c5b-472f-aeae-00dc4b346254","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID42e4b90f-3bcd-4ee2-ae8b-28d5a909330b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID99c3d680-fe81-4fca-ab68-4c1ba681220c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID99c3d680-fe81-4fca-ab68-4c1ba681220c"}},{"type":"Message","id":"EID594c0e3d-bcc5-47bd-98ab-8797509c0252","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID594c0e3d-bcc5-47bd-98ab-8797509c0252"}},{"type":"ServiceResponse","id":"EIDf5bc61a9-05ff-411b-8cb5-7fd82b0203e4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDf5bc61a9-05ff-411b-8cb5-7fd82b0203e4"}},{"type":"Message","id":"EID91509428-b4b8-4e13-9b58-c97916b855a5","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID91509428-b4b8-4e13-9b58-c97916b855a5"}},{"type":"Message","id":"EIDe65f7200-4b2f-41e3-a96c-3f0543770b4a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDe65f7200-4b2f-41e3-a96c-3f0543770b4a"}},{"type":"ServiceEndpoint","id":"EIDc952802e-74c1-4d4f-98dd-8a0c6f199c49","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDce667cdf-7809-4e56-9979-c0c27e2c1ff3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDce667cdf-7809-4e56-9979-c0c27e2c1ff3"}},{"type":"Message","id":"EIDd8057b5f-9bdc-4a9d-96f6-8a4efb505212","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd8057b5f-9bdc-4a9d-96f6-8a4efb505212"}},{"type":"ServiceEndpoint","id":"EID9dc40c4d-ce5c-409c-a64a-145be7f23ba3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDda93bae7-c45a-4ea3-a1c3-d37b75b57b20","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID2fbf658c-0b1c-4999-bbc6-08255fee7f66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDb8f4b3cd-e7a9-4a36-80aa-fb9f7818ebee","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDb8f4b3cd-e7a9-4a36-80aa-fb9f7818ebee"}},{"type":"Message","id":"EID1a986391-d060-4bd7-a249-16654f2b07a3","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID1a986391-d060-4bd7-a249-16654f2b07a3"}},{"type":"ServiceResponse","id":"EID6773ca23-75e3-4ad2-8ad9-8a24717411a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID6773ca23-75e3-4ad2-8ad9-8a24717411a2"}},{"type":"ServiceResponse","id":"EIDef3cf282-5f3b-43dc-9b98-fa636a15b387","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDef3cf282-5f3b-43dc-9b98-fa636a15b387"}},{"type":"ServiceResponse","id":"EIDf7530bf8-ecf1-4009-8d10-10614f101bc3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDf7530bf8-ecf1-4009-8d10-10614f101bc3"}},{"type":"GetParameter","id":"EID4d725f4d-6990-4fd1-9749-aa4fb0036f14","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID13455f3d-36e0-47a6-9bed-dc2a35d95663","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID04f55f1b-2eb3-430e-9c71-d8034a6e7bd8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EIDab3445ec-308e-40d8-a50a-426d8f31e854","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDf1b04d41-55c9-4475-8056-67998718479d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDbb731b10-7e7e-4f06-877f-3441968321c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDd0006387-d93e-4221-8c9c-e02df8512d56","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd0006387-d93e-4221-8c9c-e02df8512d56"}},{"type":"Message","id":"EID557fd894-896c-4952-8352-26423ced2307","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID557fd894-896c-4952-8352-26423ced2307"}},{"type":"ServiceResponse","id":"EIDfd423fbd-5ff9-43bf-afdf-9a4cfbe61a7c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDfd423fbd-5ff9-43bf-afdf-9a4cfbe61a7c"}},{"type":"Message","id":"EIDa1519fc7-d2f1-4225-93ce-ef9971720986","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDa1519fc7-d2f1-4225-93ce-ef9971720986"}},{"type":"GetParameter","id":"EIDfd5bbdc2-f307-460f-9f38-b86ff894d5ee","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID6b2681a8-ac9a-44f8-b57b-c67c70c3175b","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID6b2681a8-ac9a-44f8-b57b-c67c70c3175b"}},{"type":"GetParameter","id":"EID185d565b-0156-4cb1-b2c6-3813b6f5f869","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID97c64f8e-c3cf-4a5a-abb7-b28b6d712ec3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDeea8dd9b-3688-41b6-a01d-5ef966dbe564","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4f055fdc-e189-4dd7-ba70-32e2f6fd0415","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EIDccd86ab0-c870-48cf-9bfe-51b55d69fb98","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID193f829c-10a6-4792-8e74-a8e350a6808b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDf7deafe6-0d18-40f7-bfa3-db476526419a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID7e64000c-e646-4dfa-9fbd-02cacdd86eab","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID7e64000c-e646-4dfa-9fbd-02cacdd86eab"}},{"type":"Message","id":"EID3ab6d182-8c0f-4cda-84e0-ae2955a0bed3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID3ab6d182-8c0f-4cda-84e0-ae2955a0bed3"}},{"type":"ServiceResponse","id":"EIDecfb592a-213c-4fcf-937f-48711f6571c2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDecfb592a-213c-4fcf-937f-48711f6571c2"}},{"type":"ServiceResponse","id":"EIDbe6d03ca-485b-48db-9205-1c85c0b19e0f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDbe6d03ca-485b-48db-9205-1c85c0b19e0f"}},{"type":"ServiceEndpoint","id":"EID184169aa-7677-478a-ada7-4b7b58aea149","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID427fcc28-8564-48d9-8a56-ba4b2f81e730","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID76af43f6-f44b-4915-9d1e-2dd3a0afc899","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID76af43f6-f44b-4915-9d1e-2dd3a0afc899"}},{"type":"Message","id":"EIDbc89c7fd-3821-48d0-a489-97b2cfbfc050","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDbc89c7fd-3821-48d0-a489-97b2cfbfc050"}},{"type":"Message","id":"EIDf9d04031-87e0-4c1d-bca6-6dbbdfa79607","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDf9d04031-87e0-4c1d-bca6-6dbbdfa79607"}},{"type":"ServiceResponse","id":"EID79e7f231-eb94-44c6-9d12-73fec3dda4c1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID79e7f231-eb94-44c6-9d12-73fec3dda4c1"}},{"type":"ServiceResponse","id":"EIDb94cd2f6-c94b-4b70-bf43-80412d507d0f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDb94cd2f6-c94b-4b70-bf43-80412d507d0f"}},{"type":"GetParameter","id":"EID9254e627-bcf8-4720-9e6c-884fba42a080","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDda04b0f7-ed4b-42d0-bdf8-efb7fb5673fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDcc2f6153-8848-4473-b36c-6d2736cb1220","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDcc2f6153-8848-4473-b36c-6d2736cb1220"}},{"type":"ServiceResponse","id":"EID9b45d8c3-5432-4559-9007-e1805ccf8e64","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID9b45d8c3-5432-4559-9007-e1805ccf8e64"}},{"type":"Message","id":"EIDbb7c51d2-5f5e-4f77-88bd-7f47cd800006","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDbb7c51d2-5f5e-4f77-88bd-7f47cd800006"}},{"type":"GetParameter","id":"EID2503d490-a829-46e8-b56e-7717c85641f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDab37d5b3-a2e1-40cd-8972-aef21459c3db","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDab37d5b3-a2e1-40cd-8972-aef21459c3db"}},{"type":"GetParameter","id":"EIDb8d9dbe1-4e7a-4fff-9233-b74d322ea384","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID7310ccc6-de1a-4bd4-852e-52190a8939a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID98ec0570-4cb9-44cc-8e81-4deba16ed6c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDd90c3042-2a50-4190-95ea-b9cdcc3c724b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd90c3042-2a50-4190-95ea-b9cdcc3c724b"}},{"type":"ServiceEndpoint","id":"EIDda1b9d1b-f8c4-4db7-86df-7108ce96db32","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID53334a83-bbf5-4fb4-b37c-d7ab854896dc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EIDd9fcc632-9c43-4df2-b654-878b5fe4e3d1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd9fcc632-9c43-4df2-b654-878b5fe4e3d1"}},{"type":"ServiceEndpoint","id":"EID94b24b34-0929-4b89-8729-e803dd1ae61c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID986ffc5e-7a45-403f-a47d-f5480a3512cd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID7f3c15e0-f01e-42fe-bf1c-856db0ef5ee6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDd815817e-9620-41df-94bd-cd073166dc57","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd815817e-9620-41df-94bd-cd073166dc57"}},{"type":"ServiceResponse","id":"EID20d54230-6d35-4f1a-ad85-1f99b7af6b61","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID20d54230-6d35-4f1a-ad85-1f99b7af6b61"}},{"type":"ServiceResponse","id":"EIDb4e5e270-5a9b-498d-b286-8562b5fc9d4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDb4e5e270-5a9b-498d-b286-8562b5fc9d4f"}},{"type":"Message","id":"EIDd94f2953-75be-4b23-9f81-6ecec7f50c1e","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDd94f2953-75be-4b23-9f81-6ecec7f50c1e"}},{"type":"Message","id":"EIDabd55d4a-305a-4bf7-84c8-361f5d20f4fd","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EIDabd55d4a-305a-4bf7-84c8-361f5d20f4fd"}},{"type":"GetParameter","id":"EID01f9925f-235b-40e6-837f-cba50e0b879c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9kb3dubG9hZHMva3JtX21hcmllbmVyYXBwb3J0YWdlZWVuaGVkZW5fZXUyMDE4X2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EIDce494568-2afa-4bb5-ac01-abd981ae7626","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID95bce398-6748-4de2-9663-aba85d13fb12","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDdf9e8275-90c2-480e-9b33-e27cfaf42875","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID05f5348f-ba85-44ee-968d-c86b301064da","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EIDecb150f3-f070-42b6-9cc4-577b3d7833fe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EIDca521b6f-6fc1-4957-aa03-9276ed52ffa9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID0d07f964-3bc9-433c-aa88-2c81c2ad0861","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID0d07f964-3bc9-433c-aa88-2c81c2ad0861"}},{"type":"GetParameter","id":"EID848ffc2a-46d4-484f-ab3f-1d3aa9ab7c69","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID9edafcc9-5e45-4b21-84a4-9529caf94b4a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDf851cb1f-2ef6-4bc8-929b-dc01d89c68df","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID9a24d9d5-65e8-46cb-820d-e5a8b980e50d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID9a24d9d5-65e8-46cb-820d-e5a8b980e50d"}},{"type":"GetParameter","id":"EID743c12e5-2814-4516-b211-e3bc785f7424","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID33292371-cbcc-4656-92ad-fe3dfe86992a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID3aa69c9b-6958-4e51-b5d8-8ef4fb1bcbb1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID88200048-008c-40aa-add2-d43e61e2e5ca","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID1ef621eb-aac3-4c8f-8194-affd0b4d1efe","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID1ef621eb-aac3-4c8f-8194-affd0b4d1efe"}},{"type":"GetParameter","id":"EID500a82ab-5bbc-4368-8a06-e688e1aa4fab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EIDb10c2127-7a72-47a5-a087-b18555ec8072","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID830512da-1651-4461-80e4-61235204602c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID1bcc32e1-0c01-409c-9537-67f9d36b6e91","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID1bcc32e1-0c01-409c-9537-67f9d36b6e91"}},{"type":"Message","id":"EID0e152b06-26d4-40b3-a47e-1f081e76ebd9","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID0e152b06-26d4-40b3-a47e-1f081e76ebd9"}},{"type":"ServiceResponse","id":"EID573a1713-46da-47a8-92c8-498c886ba9d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID573a1713-46da-47a8-92c8-498c886ba9d4"}},{"type":"ServiceEndpoint","id":"EIDefd98410-5a1d-4f8f-bdc1-79d7bedab3cc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID1ff04305-a5a8-4fd6-b766-f85c78fcd025","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID1ff04305-a5a8-4fd6-b766-f85c78fcd025"}},{"type":"GetParameter","id":"EID75a58d09-f667-4e5f-a5cd-5df2ae6aa939","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID10281d19-4bb6-4c97-a863-1d533b830d62","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID10281d19-4bb6-4c97-a863-1d533b830d62"}},{"type":"ServiceResponse","id":"EID264c0cc8-b67f-4c2e-b7fa-b66407cabf7b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID700f2d4f-ace8-4722-8abf-d09e04eb2684/Attachments/EID264c0cc8-b67f-4c2e-b7fa-b66407cabf7b"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:09:25Z","duration":16020,"status":"FAILED"}}}}}
11:10:13.131 [print] EID2b27741c-b36b-41ef-8773-554f0e1c2b23
11:10:13.131 [print] FAILED
11:10:13.131 [print] FAILED
11:10:13.131 [print] Conformance Class Download Service - Pre-defined Atom
11:10:13.131 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/2b27741c-b36b-41ef-8773-554f0e1c2b23.json
11:10:13.131 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/2b27741c-b36b-41ef-8773-554f0e1c2b23.json
11:10:13.132 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID2b27741c-b36b-41ef-8773-554f0e1c2b23/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:13.149 [print] [ "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:10:13.149 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:43.483 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:06:43.484 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:06:49.508 response time in milliseconds: 5265.16
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:48 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:06:46 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/5b0a94c9-969e-418e-9ffe-86bf617c5cab.json","testRuns":{"TestRun":{"id":"EID5b0a94c9-969e-418e-9ffe-86bf617c5cab","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:46.305Z","testTasks":{"TestTask":{"id":"EID5a52191d-4d6f-4e53-95fa-6a902b5c0d90","parent":{"ref":"EID5b0a94c9-969e-418e-9ffe-86bf617c5cab"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDf3f9cfc9-1744-4b86-b60b-3bae80c27c29"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDf3f9cfc9-1744-4b86-b60b-3bae80c27c29","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:43.942Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:45.798Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:06:49.511 [print] EID5b0a94c9-969e-418e-9ffe-86bf617c5cab
11:06:49.511 [print] UNDEFINED
11:06:49.512 [print] Conformance Class Download Service - Pre-defined Atom
11:06:49.514 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/5b0a94c9-969e-418e-9ffe-86bf617c5cab.json
11:06:49.515 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/log
11:06:49.516 [print] statuspath TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab
11:06:49.516 [print] progresspath TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
11:06:49.517 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:50.044 response time in milliseconds: 523.48
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:06:49 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized"]}
11:06:50.045 [print] {
"val": "7",
"max": "8",
"log": [
"28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)",
"28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:06:46 - Preparing 1 Test Task:",
"28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)",
"28.10.2020 11:06:46 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:06:46 - with parameters: ",
"28.10.2020 11:06:46 - etf.testcases = *",
"28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:06:46 - Setting state to CREATED",
"28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z",
"28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:06:48 - Project Properties: ",
"28.10.2020 11:06:48 - etf.testcases - * ",
"28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:06:48 - username - ",
"28.10.2020 11:06:48 - authUser - ",
"28.10.2020 11:06:48 - authMethod - basic ",
"28.10.2020 11:06:48 - TestRunTask initialized"
]
}
11:06:50.046 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:50.549 response time in milliseconds: 502.67
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:06:50 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized"]}
11:06:50.550 retry condition not satisfied: response.val == response.max
11:06:50.550 sleeping before retry #1
11:06:55.551 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:56.066 response time in milliseconds: 514.59
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:06:56 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"34","max":"35","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized"]}
11:06:56.067 retry condition not satisfied: response.val == response.max
11:06:56.067 sleeping before retry #2
11:07:01.068 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:01.588 response time in milliseconds: 520.11
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:07:01 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"62","max":"63","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:07:01.588 retry condition not satisfied: response.val == response.max
11:07:01.588 sleeping before retry #3
11:07:06.590 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:07.109 response time in milliseconds: 517.63
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:07:07 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"86","max":"87","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:07:07.109 retry condition not satisfied: response.val == response.max
11:07:07.109 sleeping before retry #4
11:07:12.111 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:12.635 response time in milliseconds: 523.74
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:07:12 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"141","max":"142","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:12.638 retry condition not satisfied: response.val == response.max
11:07:12.638 sleeping before retry #5
11:07:17.640 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:18.160 response time in milliseconds: 520.33
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:07:18 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:18.161 retry condition not satisfied: response.val == response.max
11:07:18.161 sleeping before retry #6
11:07:23.162 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:23.675 response time in milliseconds: 512.05
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:07:23 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:23.681 retry condition not satisfied: response.val == response.max
11:07:23.681 sleeping before retry #7
11:07:28.682 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:29.198 response time in milliseconds: 515.44
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:07:29 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:29.199 retry condition not satisfied: response.val == response.max
11:07:29.199 sleeping before retry #8
11:07:34.200 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:34.721 response time in milliseconds: 520.14
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:07:34 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:34.722 retry condition not satisfied: response.val == response.max
11:07:34.722 sleeping before retry #9
11:07:39.723 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:40.245 response time in milliseconds: 520.50
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:07:40 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:40.250 retry condition not satisfied: response.val == response.max
11:07:40.250 sleeping before retry #10
11:07:45.252 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:45.782 response time in milliseconds: 526.85
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:07:45 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:45.786 retry condition not satisfied: response.val == response.max
11:07:45.786 sleeping before retry #11
11:07:50.787 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:51.299 response time in milliseconds: 511.35
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:07:51 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:51.306 retry condition not satisfied: response.val == response.max
11:07:51.306 sleeping before retry #12
11:07:56.308 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:56.836 response time in milliseconds: 527.31
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:07:56 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:56.836 retry condition not satisfied: response.val == response.max
11:07:56.836 sleeping before retry #13
11:08:01.837 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:02.353 response time in milliseconds: 515.44
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:08:02 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:02.356 retry condition not satisfied: response.val == response.max
11:08:02.356 sleeping before retry #14
11:08:07.357 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:07.877 response time in milliseconds: 518.56
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:08:07 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:07.877 retry condition not satisfied: response.val == response.max
11:08:07.877 sleeping before retry #15
11:08:12.878 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:13.390 response time in milliseconds: 510.75
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:08:13 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:13.396 retry condition not satisfied: response.val == response.max
11:08:13.396 sleeping before retry #16
11:08:18.397 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:18.907 response time in milliseconds: 509.51
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:08:18 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:18.908 retry condition not satisfied: response.val == response.max
11:08:18.908 sleeping before retry #17
11:08:23.909 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:24.429 response time in milliseconds: 519.48
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:08:24 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:24.429 retry condition not satisfied: response.val == response.max
11:08:24.429 sleeping before retry #18
11:08:29.430 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:29.945 response time in milliseconds: 513.63
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:08:29 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:29.945 retry condition not satisfied: response.val == response.max
11:08:29.951 sleeping before retry #19
11:08:34.952 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID5b0a94c9-969e-418e-9ffe-86bf617c5cab/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:35.465 response time in milliseconds: 511.95
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:08:35 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:46 UTC 2020)","28.10.2020 11:06:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:46 - Preparing 1 Test Task:","28.10.2020 11:06:46 - TestTask 1 (5a52191d-4d6f-4e53-95fa-6a902b5c0d90)","28.10.2020 11:06:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:46 - with parameters: ","28.10.2020 11:06:46 - etf.testcases = *","28.10.2020 11:06:46 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:46 - Setting state to CREATED","28.10.2020 11:06:46 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:46 - Starting TestRun.5b0a94c9-969e-418e-9ffe-86bf617c5cab at 2020-10-28T11:06:48Z","28.10.2020 11:06:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:48 - Project Properties: ","28.10.2020 11:06:48 - etf.testcases - * ","28.10.2020 11:06:48 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:48 - username - ","28.10.2020 11:06:48 - authUser - ","28.10.2020 11:06:48 - authMethod - basic ","28.10.2020 11:06:48 - TestRunTask initialized","28.10.2020 11:07:00 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:07:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:47 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:50 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:35.466 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:04:45.350 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:04:45.359 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:45.753 response time in milliseconds: 393.91 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:45 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232B30FC0C54 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:45.770 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:47.011 response time in milliseconds: 1240.25 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:46 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642232B6A073764 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:04:47.013 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:41.595 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}}}
11:15:41.596 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}}}
11:16:01.055 response time in milliseconds: 18718.79
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:00 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:15:56 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/e5747c96-0de3-452a-8d3f-9b753acc782e.json","testRuns":{"TestRun":{"id":"EIDe5747c96-0de3-452a-8d3f-9b753acc782e","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:15:54.093Z","testTasks":{"TestTask":{"id":"EID0321b080-bce6-445e-9e38-96290c0de808","parent":{"ref":"EIDe5747c96-0de3-452a-8d3f-9b753acc782e"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID1bd895b1-3af9-491b-a847-58340b91720e"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID1bd895b1-3af9-491b-a847-58340b91720e","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:42.034Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:50.389Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:16:01.066 [print] EIDe5747c96-0de3-452a-8d3f-9b753acc782e
11:16:01.067 [print] UNDEFINED
11:16:01.068 [print] Conformance Class Download Service - Pre-defined Atom
11:16:01.068 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e5747c96-0de3-452a-8d3f-9b753acc782e.json
11:16:01.069 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/log
11:16:01.070 [print] statuspath TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e
11:16:01.070 [print] progresspath TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
11:16:01.071 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:01.582 response time in milliseconds: 510.36
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:16:01 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized"]}
11:16:01.582 [print] {
"val": "12",
"max": "13",
"log": [
"28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)",
"28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:15:54 - Preparing 1 Test Task:",
"28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)",
"28.10.2020 11:15:54 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:15:54 - with parameters: ",
"28.10.2020 11:15:54 - etf.testcases = *",
"28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:15:54 - Setting state to CREATED",
"28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z",
"28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:15:58 - Project Properties: ",
"28.10.2020 11:15:58 - etf.testcases - * ",
"28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ",
"28.10.2020 11:15:58 - username - ",
"28.10.2020 11:15:58 - authUser - ",
"28.10.2020 11:15:58 - authMethod - basic ",
"28.10.2020 11:15:58 - TestRunTask initialized"
]
}
11:16:01.583 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:02.100 response time in milliseconds: 516.84
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:16:02 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized"]}
11:16:02.100 retry condition not satisfied: response.val == response.max
11:16:02.100 sleeping before retry #1
11:16:07.101 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:07.619 response time in milliseconds: 516.91
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:16:07 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized"]}
11:16:07.619 retry condition not satisfied: response.val == response.max
11:16:07.619 sleeping before retry #2
11:16:12.620 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:13.132 response time in milliseconds: 511.65
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:16:13 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized"]}
11:16:13.139 retry condition not satisfied: response.val == response.max
11:16:13.139 sleeping before retry #3
11:16:18.140 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:18.655 response time in milliseconds: 510.65
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:16:18 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"74","max":"75","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized"]}
11:16:18.656 retry condition not satisfied: response.val == response.max
11:16:18.656 sleeping before retry #4
11:16:23.656 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:24.257 response time in milliseconds: 600.09
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:16:24 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"101","max":"102","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized","28.10.2020 11:16:22 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:16:24.257 retry condition not satisfied: response.val == response.max
11:16:24.257 sleeping before retry #5
11:16:29.258 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:29.766 response time in milliseconds: 507.59
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:16:29 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"167","max":"168","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized","28.10.2020 11:16:22 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:16:29.766 retry condition not satisfied: response.val == response.max
11:16:29.766 sleeping before retry #6
11:16:34.767 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:35.290 response time in milliseconds: 522.22
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:16:35 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized","28.10.2020 11:16:22 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:16:30 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:16:32 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:16:34 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:16:35.290 retry condition not satisfied: response.val == response.max
11:16:35.290 sleeping before retry #7
11:16:40.291 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:40.808 response time in milliseconds: 516.20
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:16:40 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:15:54 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:54 UTC 2020)","28.10.2020 11:15:54 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:54 - Preparing 1 Test Task:","28.10.2020 11:15:54 - TestTask 1 (0321b080-bce6-445e-9e38-96290c0de808)","28.10.2020 11:15:54 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:54 - with parameters: ","28.10.2020 11:15:54 - etf.testcases = *","28.10.2020 11:15:54 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:54 - Setting state to CREATED","28.10.2020 11:15:54 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:56 - Starting TestRun.e5747c96-0de3-452a-8d3f-9b753acc782e at 2020-10-28T11:15:58Z","28.10.2020 11:15:58 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:58 - Project Properties: ","28.10.2020 11:15:58 - etf.testcases - * ","28.10.2020 11:15:58 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml ","28.10.2020 11:15:58 - username - ","28.10.2020 11:15:58 - authUser - ","28.10.2020 11:15:58 - authMethod - basic ","28.10.2020 11:15:58 - TestRunTask initialized","28.10.2020 11:16:22 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:16:30 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:16:32 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:16:34 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:16:40.808 retry condition not satisfied: response.val == response.max
11:16:40.808 sleeping before retry #8
11:16:45.809 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:47.815 response time in milliseconds: 2005.23
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:16:47 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:16:47.815 retry condition satisfied
11:16:47.815 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:16:47.816 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:56.968 response time in milliseconds: 7958.32
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Cache-Control: public, max-age=120
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:16:55 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Last-Modified: Wed, 28 Oct 2020 11:16:47 GMT
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/e5747c96-0de3-452a-8d3f-9b753acc782e.json","testRuns":{"TestRun":{"id":"EIDe5747c96-0de3-452a-8d3f-9b753acc782e","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:15:54.093Z","testTasks":{"TestTask":{"id":"EID0321b080-bce6-445e-9e38-96290c0de808","parent":{"ref":"EIDe5747c96-0de3-452a-8d3f-9b753acc782e"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID1bd895b1-3af9-491b-a847-58340b91720e"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID1bd895b1-3af9-491b-a847-58340b91720e","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:42.034Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:50.389Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f","testObject":{"ref":"EID1bd895b1-3af9-491b-a847-58340b91720e"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eebf38a-0175-1000-e760-655153cdd313","testCaseResults":{"TestCaseResult":[{"id":"EID6eebf38a-0175-1000-23dc-38f1de116df1","testStepResults":{"TestStepResult":[{"id":"EID6eebf38b-0175-1000-aa69-dba501827ca4","parent":{"ref":"EID6eebf38a-0175-1000-23dc-38f1de116df1"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:15:58Z","duration":61,"status":"PASSED"},{"id":"EID6eebf3c8-0175-1000-03b7-3b4456aabc6a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eebf52a-0175-1000-9642-4f421c1f6a51","parent":{"ref":"EID6eebf3c8-0175-1000-03b7-3b4456aabc6a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:15:58Z","duration":0,"status":"PASSED"},{"id":"EID6eebf52b-0175-1000-565e-93063c6ec76a","parent":{"ref":"EID6eebf3c8-0175-1000-03b7-3b4456aabc6a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:15:58Z","duration":0,"status":"PASSED"},{"id":"EID6eebf52b-0175-1000-43d7-8b44f22165d6","parent":{"ref":"EID6eebf3c8-0175-1000-03b7-3b4456aabc6a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:15:58Z","duration":0,"status":"PASSED"},{"id":"EID6eebf52b-0175-1000-d6cb-2c131b91272a","parent":{"ref":"EID6eebf3c8-0175-1000-03b7-3b4456aabc6a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:15:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb8dab605-af95-4143-adaf-70fe0c7007ab"},{"ref":"EID3874a2d8-a1d4-4f49-a620-161eed46ce19"},{"ref":"EID64b7f1d8-c705-4310-b8f5-e7e5061106aa"}]},"parent":{"ref":"EID6eebf38a-0175-1000-23dc-38f1de116df1"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:15:58Z","duration":256,"status":"PASSED"}]},"parent":{"ref":"EID6eebf38a-0175-1000-e760-655153cdd313"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:15:58Z","duration":417,"status":"PASSED"},{"id":"EID6eebf52b-0175-1000-6f96-518ded339bff","testStepResults":{"TestStepResult":{"id":"EID6eebf52b-0175-1000-4b44-d34354e2ada5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eebf5e1-0175-1000-b267-9ac659377659","parent":{"ref":"EID6eebf52b-0175-1000-4b44-d34354e2ada5"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf5e1-0175-1000-1b41-a011420ab96a","parent":{"ref":"EID6eebf52b-0175-1000-4b44-d34354e2ada5"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf5e1-0175-1000-a1f3-52a29c83dc2c","parent":{"ref":"EID6eebf52b-0175-1000-4b44-d34354e2ada5"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID81404c09-b5a6-49cb-8976-e2d036965941"},{"ref":"EIDfb711e9a-ea45-4918-b691-16ad4b28c412"},{"ref":"EID70048533-f7d2-4752-88b9-56113730de9d"}]},"parent":{"ref":"EID6eebf52b-0175-1000-6f96-518ded339bff"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:15:58Z","duration":105,"status":"PASSED"}},"parent":{"ref":"EID6eebf38a-0175-1000-e760-655153cdd313"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:15:58Z","duration":182,"status":"PASSED"}]},"parent":{"ref":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:15:58Z","duration":599,"status":"PASSED"},{"id":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3","testCaseResults":{"TestCaseResult":[{"id":"EID6eebf5e1-0175-1000-b09c-146a03230ea7","testStepResults":{"TestStepResult":[{"id":"EID6eebf5ea-0175-1000-07c3-5732b30dcfb5","parent":{"ref":"EID6eebf5e1-0175-1000-b09c-146a03230ea7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:15:59Z","duration":105,"status":"PASSED"},{"id":"EID6eebf5eb-0175-1000-3adb-abb53795945d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eebf907-0175-1000-2b0e-2becd4615939","parent":{"ref":"EID6eebf5eb-0175-1000-3adb-abb53795945d"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf907-0175-1000-fbe0-5d760113e7f0","parent":{"ref":"EID6eebf5eb-0175-1000-3adb-abb53795945d"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf907-0175-1000-13bd-8e149265306b","parent":{"ref":"EID6eebf5eb-0175-1000-3adb-abb53795945d"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf907-0175-1000-92c7-3d3af8afde0b","parent":{"ref":"EID6eebf5eb-0175-1000-3adb-abb53795945d"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"},{"id":"EID6eebf907-0175-1000-04ab-91acdb63bcf1","parent":{"ref":"EID6eebf5eb-0175-1000-3adb-abb53795945d"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:15:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3f5ebe23-67c5-41de-b40e-e8bd3ab8a218"},{"ref":"EIDbfb027ff-35b1-47f2-9b6a-d27096a40638"},{"ref":"EID310618ad-45fe-4a0c-81fe-a4f9f466b4b7"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-b09c-146a03230ea7"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:15:59Z","duration":659,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:15:59Z","duration":892,"status":"PASSED"},{"id":"EID6eebf95d-0175-1000-44d0-12b2e751f695","testStepResults":{"TestStepResult":[{"id":"EID6eebf95d-0175-1000-f90f-6e737e9bf23f","attachments":{"attachment":[{"ref":"EID5031822c-e67c-4cdd-b311-7de6417bc9ec"},{"ref":"EID6190741f-fa8f-464f-adc6-b6be3240690e"}]},"parent":{"ref":"EID6eebf95d-0175-1000-44d0-12b2e751f695"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:15:59Z","duration":569,"status":"PASSED"},{"id":"EID6eebfbee-0175-1000-f3ab-9370259e0d22","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eebff8e-0175-1000-3254-d93f2b723729","parent":{"ref":"EID6eebfbee-0175-1000-f3ab-9370259e0d22"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:16:01Z","duration":0,"status":"PASSED"},{"id":"EID6eebff8e-0175-1000-89cc-f4ed178e1cad","parent":{"ref":"EID6eebfbee-0175-1000-f3ab-9370259e0d22"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:16:01Z","duration":0,"status":"PASSED"},{"id":"EID6eebff8e-0175-1000-66c5-0fb0230fb2b9","parent":{"ref":"EID6eebfbee-0175-1000-f3ab-9370259e0d22"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:16:01Z","duration":0,"status":"PASSED"},{"id":"EID6eebff8e-0175-1000-65b4-1ad31f490a84","parent":{"ref":"EID6eebfbee-0175-1000-f3ab-9370259e0d22"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:16:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID17d55a81-4565-4d76-a9c6-0661d45d216c"},{"ref":"EID57293281-8438-4e37-b6ba-81e7bc72066f"},{"ref":"EID56b9ca97-8449-4063-9114-1d5864ef0c32"}]},"parent":{"ref":"EID6eebf95d-0175-1000-44d0-12b2e751f695"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:16:00Z","duration":825,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:15:59Z","duration":1585,"status":"PASSED"},{"id":"EID6eebff8e-0175-1000-d242-7a06e1e91242","testStepResults":{"TestStepResult":[{"id":"EID6eebff97-0175-1000-90b5-e576c0a6ac83","attachments":{"attachment":[{"ref":"EIDa3666ee3-ca40-4c1b-b93a-b2032798c849"},{"ref":"EID9e3c62e9-2f18-49b0-9eb9-b30ed0c68e6f"}]},"parent":{"ref":"EID6eebff8e-0175-1000-d242-7a06e1e91242"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:16:01Z","duration":2206,"status":"PASSED"},{"id":"EID6eec0873-0175-1000-c302-0751bca31cb4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec099a-0175-1000-921c-64a738317e84","parent":{"ref":"EID6eec0873-0175-1000-c302-0751bca31cb4"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec099a-0175-1000-4d3b-a7cc7c5ca732","parent":{"ref":"EID6eec0873-0175-1000-c302-0751bca31cb4"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec099a-0175-1000-3cd0-f2a64089bb15","parent":{"ref":"EID6eec0873-0175-1000-c302-0751bca31cb4"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec099a-0175-1000-3c7d-898306cabee1","parent":{"ref":"EID6eec0873-0175-1000-c302-0751bca31cb4"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec099a-0175-1000-f85e-7b73df14cb6c","parent":{"ref":"EID6eec0873-0175-1000-c302-0751bca31cb4"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID132700f7-0e18-4f76-9b8a-2ef90378d1c0"},{"ref":"EID4e6ef610-e801-4cbf-8f03-0f5447810edf"},{"ref":"EIDc49cc5d8-e96c-4901-a790-a02043cb0c0c"}]},"parent":{"ref":"EID6eebff8e-0175-1000-d242-7a06e1e91242"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:16:03Z","duration":183,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:16:01Z","duration":2582,"status":"PASSED"},{"id":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03","testStepResults":{"TestStepResult":[{"id":"EID6eec09a4-0175-1000-4e3a-7450c01f4297","attachments":{"attachment":[{"ref":"EID69643501-61b0-476a-996b-1d60f593ec93"},{"ref":"EIDc8ebebdf-30bd-465f-93bc-e9c58e9bedd0"}]},"parent":{"ref":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":756,"status":"PASSED"},{"id":"EID6eec0cdd-0175-1000-5632-199243ee3243","parent":{"ref":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:16:04Z","duration":0,"status":"PASSED"},{"id":"EID6eec0cdd-0175-1000-4627-47844a46d7f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec0f5f-0175-1000-c7e5-aa644ba37252","parent":{"ref":"EID6eec0cdd-0175-1000-4627-47844a46d7f7"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f5f-0175-1000-b06b-3858346514ee","parent":{"ref":"EID6eec0cdd-0175-1000-4627-47844a46d7f7"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f5f-0175-1000-0a22-ca6fb95790b2","parent":{"ref":"EID6eec0cdd-0175-1000-4627-47844a46d7f7"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"},{"id":"EID6eec0f5f-0175-1000-7ec3-0367178aa9d7","parent":{"ref":"EID6eec0cdd-0175-1000-4627-47844a46d7f7"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:16:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2c481b70-b97d-4e2b-82ba-2b3149bfd3b5"},{"ref":"EIDa11ae6bd-f126-4f3e-8b47-f2b7f1ff58a0"},{"ref":"EID1ae47b0d-0cd2-4b34-b18f-2dac25aae640"}]},"parent":{"ref":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:16:04Z","duration":522,"status":"PASSED"},{"id":"EID6eec0f5f-0175-1000-9ffa-513add11e5d0","attachments":{"attachment":{"ref":"EIDbc9bd53a-2926-400b-989c-489576f7abb8"}},"parent":{"ref":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:16:05Z","duration":1,"status":"PASSED"},{"id":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1109-0175-1000-9a58-0f34042b3b58","parent":{"ref":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1109-0175-1000-c2f3-c06f4373d030","parent":{"ref":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1109-0175-1000-2414-4a1836b19ac4","parent":{"ref":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1109-0175-1000-056a-87fd6cfa773d","parent":{"ref":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1109-0175-1000-2976-1b972221f136","parent":{"ref":"EID6eec0f6b-0175-1000-dda7-bf1a6b269e36"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbe40becb-32a9-4434-a149-833a061402c6"},{"ref":"EIDa7e2ed55-71fe-4c2e-9642-c42dcc1d6e77"},{"ref":"EIDce0282be-28fc-4004-896f-77575314fa3f"}]},"parent":{"ref":"EID6eec09a4-0175-1000-a5e3-fb3ab80d1c03"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:16:05Z","duration":281,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:16:04Z","duration":1893,"status":"PASSED"},{"id":"EID6eec110a-0175-1000-f663-fb35729a9e1b","testStepResults":{"TestStepResult":[{"id":"EID6eec110a-0175-1000-592a-963847f79c88","attachments":{"attachment":[{"ref":"EID140c5c03-af96-4383-bd6b-fd247543fc3b"},{"ref":"EID97bb84d8-4f32-4473-a456-899380e2fe74"}]},"parent":{"ref":"EID6eec110a-0175-1000-f663-fb35729a9e1b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:16:06Z","duration":350,"status":"PASSED"},{"id":"EID6eec1299-0175-1000-941b-6de9496fc805","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec170e-0175-1000-3e8e-d478e5ff35a0","parent":{"ref":"EID6eec1299-0175-1000-941b-6de9496fc805"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec170e-0175-1000-3427-4011c62d3524","parent":{"ref":"EID6eec1299-0175-1000-941b-6de9496fc805"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec170e-0175-1000-d269-5638ef5b2c08","parent":{"ref":"EID6eec1299-0175-1000-941b-6de9496fc805"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec170e-0175-1000-72a6-13cd55957a46","parent":{"ref":"EID6eec1299-0175-1000-941b-6de9496fc805"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8939b0d-9510-401e-958e-948d9ab4d86e"},{"ref":"EID6ee5f4a2-672f-4609-b09c-3365b91ea96d"},{"ref":"EID61c4820d-b788-4218-85c6-043927bd7df4"}]},"parent":{"ref":"EID6eec110a-0175-1000-f663-fb35729a9e1b"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:16:06Z","duration":956,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:16:06Z","duration":1540,"status":"PASSED"},{"id":"EID6eec170e-0175-1000-6a11-5059d4fe06bd","testStepResults":{"TestStepResult":[{"id":"EID6eec170e-0175-1000-fffa-dfa65ca75fcd","attachments":{"attachment":[{"ref":"EID7da07c75-3151-49a5-95d5-69921075e5a5"},{"ref":"EID420c8b0b-22ea-49ab-a2f9-017bfcb6f82f"}]},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":1654,"status":"PASSED"},{"id":"EID6eec1dab-0175-1000-1bc8-d2a1e4475e46","parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1dab-0175-1000-d4c1-611900453be9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2405-0175-1000-5bf8-e7e117ade408","parent":{"ref":"EID6eec1dab-0175-1000-d4c1-611900453be9"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2405-0175-1000-6638-b3552ebb3c09","parent":{"ref":"EID6eec1dab-0175-1000-d4c1-611900453be9"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2405-0175-1000-004d-145959320ad8","parent":{"ref":"EID6eec1dab-0175-1000-d4c1-611900453be9"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2405-0175-1000-b4fa-0e42a2dc518e","parent":{"ref":"EID6eec1dab-0175-1000-d4c1-611900453be9"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID93cdc8b0-ad4c-4eb4-a258-3385ad675a0e"},{"ref":"EID66be07c8-de79-47f8-badb-fc363cc4153b"},{"ref":"EID9fbb4b61-33bd-42a4-aabc-aa4b9ee8f233"}]},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:16:09Z","duration":1523,"status":"PASSED"},{"id":"EID6eec2406-0175-1000-dd9d-d6593dfa24d2","attachments":{"attachment":{"ref":"EIDe224e823-51c5-4134-aeb9-156188d98a69"}},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:16:10Z","duration":1,"status":"PASSED"},{"id":"EID6eec2412-0175-1000-c8ad-f1c52fb4b5c1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec24d6-0175-1000-a270-0d2a17320a68","parent":{"ref":"EID6eec2412-0175-1000-c8ad-f1c52fb4b5c1"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec24d6-0175-1000-2dd2-4142204c3907","parent":{"ref":"EID6eec2412-0175-1000-c8ad-f1c52fb4b5c1"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec24d6-0175-1000-4bc9-6a2f13559ebd","parent":{"ref":"EID6eec2412-0175-1000-c8ad-f1c52fb4b5c1"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID455470a9-4eb9-4a40-b883-4b104c6b1450"},{"ref":"EID8f9ff3d1-9c07-42fd-8990-83377291b4a8"},{"ref":"EID63e0dd00-5685-4b16-aa7f-b6ee118d1e6c"}]},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:16:10Z","duration":125,"status":"PASSED"},{"id":"EID6eec24d6-0175-1000-eac8-136277e1d153","attachments":{"attachment":{"ref":"EID51db39c6-1a83-4a1d-972e-e0ed8b1fef94"}},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":1,"status":"PASSED"},{"id":"EID6eec24e4-0175-1000-eb78-5046e5aec533","attachments":{"attachment":{"ref":"EIDe75682fd-6345-469f-b8d6-c2fc4f57d568"}},"parent":{"ref":"EID6eec170e-0175-1000-6a11-5059d4fe06bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:16:07Z","duration":3556,"status":"PASSED"},{"id":"EID6eec24f2-0175-1000-b788-3a15b7ad1bdb","testStepResults":{"TestStepResult":[{"id":"EID6eec24f2-0175-1000-5fef-c575a5449c42","attachments":{"attachment":[{"ref":"EID55827216-6fcc-40e4-8b3e-4d189129d072"},{"ref":"EID751c0e21-c777-4b5e-91bb-e9d985361733"}]},"parent":{"ref":"EID6eec24f2-0175-1000-b788-3a15b7ad1bdb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:16:11Z","duration":1108,"status":"PASSED"},{"id":"EID6eec2971-0175-1000-ebc9-c6d9c6c9c60e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2b87-0175-1000-ecbe-5ac30a03118b","parent":{"ref":"EID6eec2971-0175-1000-ebc9-c6d9c6c9c60e"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2b87-0175-1000-f256-0f3e2abc11c4","parent":{"ref":"EID6eec2971-0175-1000-ebc9-c6d9c6c9c60e"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2b87-0175-1000-51b1-2e62ebbf232c","parent":{"ref":"EID6eec2971-0175-1000-ebc9-c6d9c6c9c60e"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2b87-0175-1000-41f9-f5a1da3ce8b7","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec2971-0175-1000-ebc9-c6d9c6c9c60e"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDd0613d38-9147-4457-8a0a-6db6741a24db"},{"ref":"EID579a80d3-5d38-4ab5-8e89-871c99ff2fe4"},{"ref":"EID9dec02d8-ad76-4643-95aa-5e92bab17369"}]},"parent":{"ref":"EID6eec24f2-0175-1000-b788-3a15b7ad1bdb"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:16:12Z","duration":310,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:16:11Z","duration":1685,"status":"PASSED_MANUAL"},{"id":"EID6eec2b88-0175-1000-6c22-6c158c2d6255","testStepResults":{"TestStepResult":{"id":"EID6eec2b88-0175-1000-0d3c-7a403bef3331","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2dce-0175-1000-9c04-efd038258b1b","parent":{"ref":"EID6eec2b88-0175-1000-0d3c-7a403bef3331"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dce-0175-1000-75fe-d86dee876606","parent":{"ref":"EID6eec2b88-0175-1000-0d3c-7a403bef3331"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dce-0175-1000-fb34-ee9bb6e7458c","parent":{"ref":"EID6eec2b88-0175-1000-0d3c-7a403bef3331"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dce-0175-1000-09aa-b42393097bc5","parent":{"ref":"EID6eec2b88-0175-1000-0d3c-7a403bef3331"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9bd97f76-9d78-437c-b8e8-c4e583977652"},{"ref":"EID366d5c2f-c9d0-4843-be22-b97dab74217c"},{"ref":"EIDee3bcd07-185a-4fb6-a0d2-6e0df64b62ae"}]},"parent":{"ref":"EID6eec2b88-0175-1000-6c22-6c158c2d6255"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:16:12Z","duration":480,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:16:12Z","duration":582,"status":"PASSED"},{"id":"EID6eec2dce-0175-1000-fbaf-c9bcacc16403","testStepResults":{"TestStepResult":{"id":"EID6eec2dce-0175-1000-51d7-1bbc3b50cd2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2fe0-0175-1000-a6d3-7015fabe32bc","parent":{"ref":"EID6eec2dce-0175-1000-51d7-1bbc3b50cd2a"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2fe0-0175-1000-1495-61f94a587cd6","parent":{"ref":"EID6eec2dce-0175-1000-51d7-1bbc3b50cd2a"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2fe0-0175-1000-8ee7-f1ca840cacaa","parent":{"ref":"EID6eec2dce-0175-1000-51d7-1bbc3b50cd2a"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2fe0-0175-1000-7323-144b67f26a41","parent":{"ref":"EID6eec2dce-0175-1000-51d7-1bbc3b50cd2a"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf4b91163-d8ea-44a3-9e50-1c5e6f9027e6"},{"ref":"EID48c9b2fc-de3a-4caa-8618-4f4cf2d13806"},{"ref":"EIDddc9ee13-bf9a-48a3-8479-f1b7543cb94a"}]},"parent":{"ref":"EID6eec2dce-0175-1000-fbaf-c9bcacc16403"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:16:13Z","duration":390,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:16:13Z","duration":541,"status":"PASSED"},{"id":"EID6eec2fec-0175-1000-833c-2a26f507a987","testStepResults":{"TestStepResult":[{"id":"EID6eec2fec-0175-1000-edce-914ec205dfef","attachments":{"attachment":[{"ref":"EID033c9865-ff6a-4f6f-be0e-299bafdea732"},{"ref":"EIDc1dd0d32-e38b-4b74-8006-803ed1f5c457"},{"ref":"EID55818b03-44a8-4eb8-bd69-e3a24f07beea"},{"ref":"EIDfa2308a1-8117-49c6-a086-92e50eca3743"},{"ref":"EID8915d5b1-562f-4a09-b6ca-367587908c07"},{"ref":"EID0aad8af3-0c53-4586-8e8f-6d170a4c3a4f"},{"ref":"EID8d40999a-49af-4674-9c7a-3113f8755538"},{"ref":"EID284bdd35-cdca-4253-b2f0-dc2a740cfec7"},{"ref":"EIDa21c1aa7-c2e4-495d-b51b-927ac534c932"},{"ref":"EID9fb86503-9527-4060-b858-35d63b64a056"},{"ref":"EIDdd1b9dc2-1926-4068-bfff-ad473089223a"},{"ref":"EID8dd3b1d3-a504-46f2-bd59-494a01e8918f"}]},"parent":{"ref":"EID6eec2fec-0175-1000-833c-2a26f507a987"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":1139,"status":"PASSED"},{"id":"EID6eec35ed-0175-1000-5848-a3bedc39592d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec37a6-0175-1000-b4b0-039bc14e70e1","parent":{"ref":"EID6eec35ed-0175-1000-5848-a3bedc39592d"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec37a6-0175-1000-16da-1ad7dccaa024","parent":{"ref":"EID6eec35ed-0175-1000-5848-a3bedc39592d"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec37a6-0175-1000-deb0-c4bbda26b94e","parent":{"ref":"EID6eec35ed-0175-1000-5848-a3bedc39592d"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec37a6-0175-1000-c977-420510b3297b","parent":{"ref":"EID6eec35ed-0175-1000-5848-a3bedc39592d"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec37a6-0175-1000-af77-6c787271f692","parent":{"ref":"EID6eec35ed-0175-1000-5848-a3bedc39592d"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6777a5e7-72ff-46ae-9c00-b558e0ef5b7c"},{"ref":"EIDcfba8e00-0515-479e-8748-132d7b01047f"},{"ref":"EID6c40121f-ffde-4328-a976-8fb955c459a3"}]},"parent":{"ref":"EID6eec2fec-0175-1000-833c-2a26f507a987"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:16:15Z","duration":317,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:16:13Z","duration":1978,"status":"PASSED"},{"id":"EID6eec37a6-0175-1000-ec4b-ad1400f841db","testStepResults":{"TestStepResult":{"id":"EID6eec37a6-0175-1000-116f-10585f72aa66","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3b63-0175-1000-641c-062a6895cfd8","parent":{"ref":"EID6eec37a6-0175-1000-116f-10585f72aa66"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b63-0175-1000-a784-7769208bbd52","parent":{"ref":"EID6eec37a6-0175-1000-116f-10585f72aa66"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b63-0175-1000-6265-f12d548dfd8a","parent":{"ref":"EID6eec37a6-0175-1000-116f-10585f72aa66"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b63-0175-1000-329c-464049ccd45f","parent":{"ref":"EID6eec37a6-0175-1000-116f-10585f72aa66"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID574bb216-bc4b-4619-9ca5-76e448f20091"},{"ref":"EID7ca174d1-9f18-4ea0-b869-12f51fc837e6"},{"ref":"EID34c3664f-3b3f-4ab7-ab54-ddc37bcbbd45"}]},"parent":{"ref":"EID6eec37a6-0175-1000-ec4b-ad1400f841db"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:16:15Z","duration":868,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:16:15Z","duration":957,"status":"PASSED"},{"id":"EID6eec3b63-0175-1000-f210-41610651675c","testStepResults":{"TestStepResult":{"id":"EID6eec3b63-0175-1000-9571-673f1201ce0f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3f4b-0175-1000-2736-65553e7ae423","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-26bb-331667089a91","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-4fe4-2cff91f73a72","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-a16f-1d8c77afe330","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-a945-4e260462572c","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-45e9-ea7f2f94350d","parent":{"ref":"EID6eec3b63-0175-1000-9571-673f1201ce0f"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb0a4ca53-0bbb-4c6a-b0c8-9738f46a57fa"},{"ref":"EIDf841c65e-5758-4dd7-b63b-80cd6213fa55"},{"ref":"EIDeb887304-19a2-46bf-a504-c27456a7ef0d"}]},"parent":{"ref":"EID6eec3b63-0175-1000-f210-41610651675c"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:16:16Z","duration":811,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:16:16Z","duration":1000,"status":"PASSED"},{"id":"EID6eec3f4b-0175-1000-471e-4b000ce8d959","testStepResults":{"TestStepResult":{"id":"EID6eec3f4b-0175-1000-5108-af288698a30d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec41bc-0175-1000-309a-9f1b3096073d","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec41bc-0175-1000-fffa-23a3cdf31314","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec41bc-0175-1000-7fd6-567e9ae380a6","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec41bc-0175-1000-dd15-08aecf93aa72","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec41bc-0175-1000-3f47-731444e14285","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec41bc-0175-1000-0388-a5b1d5320d9d","parent":{"ref":"EID6eec3f4b-0175-1000-5108-af288698a30d"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7d975edd-b07d-4dd7-bec9-d741e7ab5127"},{"ref":"EID5e8c7ee5-73bd-4760-8f0b-4b04449be15f"},{"ref":"EIDb64b5227-75d4-492a-87b8-6d294059097c"}]},"parent":{"ref":"EID6eec3f4b-0175-1000-471e-4b000ce8d959"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:16:17Z","duration":515,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:16:17Z","duration":626,"status":"PASSED"},{"id":"EID6eec41c9-0175-1000-238d-c440d1a1cfc0","testStepResults":{"TestStepResult":{"id":"EID6eec41c9-0175-1000-a188-a2fea9c26720","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec4331-0175-1000-4f76-14d5e4ff9346","parent":{"ref":"EID6eec41c9-0175-1000-a188-a2fea9c26720"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec4331-0175-1000-02e5-c459bdbf69d3","parent":{"ref":"EID6eec41c9-0175-1000-a188-a2fea9c26720"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec4331-0175-1000-6567-d32b4d8dcf63","parent":{"ref":"EID6eec41c9-0175-1000-a188-a2fea9c26720"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"},{"id":"EID6eec4331-0175-1000-5d19-47ba93d5c24c","parent":{"ref":"EID6eec41c9-0175-1000-a188-a2fea9c26720"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:16:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID07f82bde-f9e3-4e92-86ca-1eeae8d2fbb2"},{"ref":"EID0d673623-186b-43d0-bc91-e15647f6cad9"},{"ref":"EIDe2f666f0-46a6-4745-8221-a15f71581d59"}]},"parent":{"ref":"EID6eec41c9-0175-1000-238d-c440d1a1cfc0"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:16:18Z","duration":275,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:16:18Z","duration":360,"status":"PASSED"},{"id":"EID6eec4331-0175-1000-0342-978964d8ae55","testStepResults":{"TestStepResult":[{"id":"EID6eec4331-0175-1000-f9e0-ec510350ab95","attachments":{"attachment":[{"ref":"EID77b636ba-4b43-4b11-914c-57a72e19452c"},{"ref":"EID516e56aa-2ece-49af-bd49-9af484527837"},{"ref":"EID7f977318-3791-44ae-8662-c596ac10c27a"},{"ref":"EID9f36a13a-155c-4772-a431-c6297732b89d"}]},"parent":{"ref":"EID6eec4331-0175-1000-0342-978964d8ae55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:16:18Z","duration":1083,"status":"PASSED"},{"id":"EID6eec47a8-0175-1000-c623-2cc7df3d481e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec49a7-0175-1000-02e5-e5ca276e9b1f","parent":{"ref":"EID6eec47a8-0175-1000-c623-2cc7df3d481e"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:16:20Z","duration":0,"status":"PASSED"},{"id":"EID6eec49a7-0175-1000-60dd-ff384fdbb19b","parent":{"ref":"EID6eec47a8-0175-1000-c623-2cc7df3d481e"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:16:20Z","duration":0,"status":"PASSED"},{"id":"EID6eec49a7-0175-1000-67c9-3fd0a9c037f5","parent":{"ref":"EID6eec47a8-0175-1000-c623-2cc7df3d481e"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:16:20Z","duration":0,"status":"PASSED"},{"id":"EID6eec49a7-0175-1000-9477-15c3a2b268d5","parent":{"ref":"EID6eec47a8-0175-1000-c623-2cc7df3d481e"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:16:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc532a422-27cb-4bee-9f7d-a6c80b4551bd"},{"ref":"EID934fb3ca-1bc8-466e-a69b-5c5cfc8bd947"},{"ref":"EID0f269909-63f7-4605-bd1d-60a856609890"}]},"parent":{"ref":"EID6eec4331-0175-1000-0342-978964d8ae55"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:16:20Z","duration":315,"status":"PASSED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:16:18Z","duration":1654,"status":"PASSED"},{"id":"EID6eec49a7-0175-1000-3494-75d799231134","testStepResults":{"TestStepResult":{"id":"EID6eec49a7-0175-1000-c3bd-f9541013b296","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec4c3a-0175-1000-4935-4317020cc7ba","parent":{"ref":"EID6eec49a7-0175-1000-c3bd-f9541013b296"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:16:21Z","duration":0,"status":"PASSED"},{"id":"EID6eec4c3a-0175-1000-dcb6-2e72b69abd3f","parent":{"ref":"EID6eec49a7-0175-1000-c3bd-f9541013b296"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:16:21Z","duration":0,"status":"PASSED"},{"id":"EID6eec4c3a-0175-1000-1797-eed2c6f29f1c","parent":{"ref":"EID6eec49a7-0175-1000-c3bd-f9541013b296"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:16:21Z","duration":0,"status":"PASSED"},{"id":"EID6eec4c3a-0175-1000-c1db-253254cf9cd8","parent":{"ref":"EID6eec49a7-0175-1000-c3bd-f9541013b296"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:16:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdc04622a-4327-449b-a5b2-ee4fd8044a0c"},{"ref":"EID75a8ed60-ce08-4c11-9e7a-55042f5ddc7d"},{"ref":"EID04e6f617-a689-4a02-a123-269139074326"}]},"parent":{"ref":"EID6eec49a7-0175-1000-3494-75d799231134"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:16:20Z","duration":472,"status":"PASSED"}},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:16:20Z","duration":659,"status":"PASSED"},{"id":"EID6eec4c43-0175-1000-bd63-98e2c3e4a9dd","testStepResults":{"TestStepResult":[{"id":"EID6eec4c43-0175-1000-b4d8-c34b17067469","parent":{"ref":"EID6eec4c43-0175-1000-bd63-98e2c3e4a9dd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:16:21Z","duration":0,"status":"PASSED"},{"id":"EID6eec4c43-0175-1000-1c90-4a6e863304dd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec4fbf-0175-1000-623f-ec8839f76087","parent":{"ref":"EID6eec4c43-0175-1000-1c90-4a6e863304dd"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec4fbf-0175-1000-2b46-cefaf366d60f","parent":{"ref":"EID6eec4c43-0175-1000-1c90-4a6e863304dd"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec4fbf-0175-1000-9450-ad655451f731","parent":{"ref":"EID6eec4c43-0175-1000-1c90-4a6e863304dd"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec4fbf-0175-1000-7bf6-99a33940026f","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eec4c43-0175-1000-1c90-4a6e863304dd"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID94f8abc8-efef-4d7c-9c62-1f6ee09da737"},{"ref":"EIDb5dc2a3d-351e-4f5e-8697-2204fda5027d"},{"ref":"EID5a4d5f00-8250-4133-9659-c3772a6f2139"}]},"parent":{"ref":"EID6eec4c43-0175-1000-bd63-98e2c3e4a9dd"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:16:21Z","duration":801,"status":"FAILED"}]},"parent":{"ref":"EID6eebf5e1-0175-1000-8f9f-d47cab8261b3"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:16:21Z","duration":893,"status":"FAILED"}]},"parent":{"ref":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:15:59Z","duration":23007,"status":"FAILED"},{"id":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc","testCaseResults":{"TestCaseResult":[{"id":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32","testStepResults":{"TestStepResult":[{"id":"EID6eec4fc0-0175-1000-3148-c3007c3bcecb","parent":{"ref":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec4fc0-0175-1000-9f87-2929b477e23e","parent":{"ref":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:16:22Z","duration":481,"status":"PASSED"},{"id":"EID6eec4fc9-0175-1000-a63f-eb7528f392a4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec51f3-0175-1000-ed3d-e535eca855dc","parent":{"ref":"EID6eec4fc9-0175-1000-a63f-eb7528f392a4"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec51f3-0175-1000-2f31-d7fd9060db40","parent":{"ref":"EID6eec4fc9-0175-1000-a63f-eb7528f392a4"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec51f3-0175-1000-6c1b-b603214ed3ab","parent":{"ref":"EID6eec4fc9-0175-1000-a63f-eb7528f392a4"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe72496a9-e0cc-46c8-a043-8a699bc7572e"},{"ref":"EID5a836ec3-b84f-4caa-857b-3907b8d7ad5d"},{"ref":"EID27c355d8-67af-4301-830c-54730cb2accb"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:16:22Z","duration":397,"status":"PASSED"},{"id":"EID6eec51f3-0175-1000-fc9e-66ef84d5fac2","attachments":{"attachment":{"ref":"EID4f223a18-782f-4b68-a471-74fe0de910ca"}},"parent":{"ref":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:16:22Z","duration":0,"status":"PASSED"},{"id":"EID6eec51ff-0175-1000-26a7-8878c49bead7","parent":{"ref":"EID6eec4fc0-0175-1000-6a8e-3aa69603cf32"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:16:22Z","duration":12,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:16:22Z","duration":587,"status":"PASSED"},{"id":"EID6eec520c-0175-1000-c4bf-4e665298d9ea","testStepResults":{"TestStepResult":[{"id":"EID6eec520c-0175-1000-63e7-b1f1dd83158b","parent":{"ref":"EID6eec520c-0175-1000-c4bf-4e665298d9ea"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:16:22Z","duration":105,"status":"PASSED"},{"id":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec53c3-0175-1000-74d6-9b4373bd21a3","parent":{"ref":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec53c3-0175-1000-61b5-36e004ed3bfa","parent":{"ref":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec53c3-0175-1000-e548-97fc4bbbf0a6","parent":{"ref":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec53c3-0175-1000-02ec-67d674f988e8","parent":{"ref":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec53c3-0175-1000-a1c1-6def4005c2f3","parent":{"ref":"EID6eec520c-0175-1000-f0bc-a6ac7fc7bcab"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2654846b-43ee-4616-a49c-9ddfd2ae7c2f"},{"ref":"EIDa4527810-c656-4353-bf09-12ca2794d5c4"},{"ref":"EID62ccad67-2183-43b1-8357-df8fc8a9a026"}]},"parent":{"ref":"EID6eec520c-0175-1000-c4bf-4e665298d9ea"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:16:22Z","duration":324,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:16:22Z","duration":439,"status":"PASSED"},{"id":"EID6eec53c4-0175-1000-472a-013bf8244cf2","testStepResults":{"TestStepResult":[{"id":"EID6eec53c4-0175-1000-5e9c-50ef2a1d8239","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5518-0175-1000-4176-14fe619bbb98","parent":{"ref":"EID6eec53c4-0175-1000-5e9c-50ef2a1d8239"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec5518-0175-1000-a9d1-56d94580bf2c","parent":{"ref":"EID6eec53c4-0175-1000-5e9c-50ef2a1d8239"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"},{"id":"EID6eec5518-0175-1000-f71d-bceb691aa92b","parent":{"ref":"EID6eec53c4-0175-1000-5e9c-50ef2a1d8239"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:16:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID46cb7bd4-d95b-418b-85d1-9852a2f52ad3"},{"ref":"EIDb2aee476-d3c2-4c03-8717-ef09ce9af90e"},{"ref":"EID91d2a903-b0c3-4231-abd7-9b4971ce7a7e"}]},"parent":{"ref":"EID6eec53c4-0175-1000-472a-013bf8244cf2"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:16:23Z","duration":276,"status":"PASSED"},{"id":"EID6eec5518-0175-1000-2bcf-a7d84a9b5675","attachments":{"attachment":{"ref":"EID87ceaed1-f663-45d7-a5a9-f6fea38e8cbb"}},"parent":{"ref":"EID6eec53c4-0175-1000-472a-013bf8244cf2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:16:23Z","duration":1,"status":"PASSED"},{"id":"EID6eec5523-0175-1000-6893-8e97a8c8baeb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5921-0175-1000-d593-eee3691bf0e9","parent":{"ref":"EID6eec5523-0175-1000-6893-8e97a8c8baeb"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"},{"id":"EID6eec5921-0175-1000-5a88-e9843a650451","parent":{"ref":"EID6eec5523-0175-1000-6893-8e97a8c8baeb"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"},{"id":"EID6eec5921-0175-1000-f696-ce8a7813d2fd","parent":{"ref":"EID6eec5523-0175-1000-6893-8e97a8c8baeb"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:16:24Z","duration":1,"status":"PASSED"},{"id":"EID6eec5922-0175-1000-3ecb-837c0deca5a8","parent":{"ref":"EID6eec5523-0175-1000-6893-8e97a8c8baeb"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"},{"id":"EID6eec5922-0175-1000-5ca7-5df189ffaf79","parent":{"ref":"EID6eec5523-0175-1000-6893-8e97a8c8baeb"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd1e83753-2bef-4c6d-9fff-bf0140907656"},{"ref":"EID85209e58-3570-445c-a56e-a00428b89635"},{"ref":"EID53d30dfe-3776-4d48-9575-0989cd2ac81d"}]},"parent":{"ref":"EID6eec53c4-0175-1000-472a-013bf8244cf2"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:16:23Z","duration":947,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:16:23Z","duration":1374,"status":"PASSED"},{"id":"EID6eec5922-0175-1000-7f44-d7408cf43fe1","testStepResults":{"TestStepResult":[{"id":"EID6eec5922-0175-1000-de81-f21dea7e716c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5b0d-0175-1000-832f-59671a0451a8","parent":{"ref":"EID6eec5922-0175-1000-de81-f21dea7e716c"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"},{"id":"EID6eec5b0d-0175-1000-b833-b76eee56315f","parent":{"ref":"EID6eec5922-0175-1000-de81-f21dea7e716c"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"},{"id":"EID6eec5b0d-0175-1000-d96f-977f17b5d1b2","parent":{"ref":"EID6eec5922-0175-1000-de81-f21dea7e716c"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:16:24Z","duration":1,"status":"PASSED"},{"id":"EID6eec5b0e-0175-1000-625f-df6cebb6c9cd","parent":{"ref":"EID6eec5922-0175-1000-de81-f21dea7e716c"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:16:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID814683cb-5278-40a6-8341-20a1c2510b7b"},{"ref":"EID915dffdb-28f3-49e1-9db7-34c08f94e179"},{"ref":"EIDd47e5a84-27e8-408e-97d1-716ae98c1944"}]},"parent":{"ref":"EID6eec5922-0175-1000-7f44-d7408cf43fe1"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:16:24Z","duration":402,"status":"PASSED"},{"id":"EID6eec5b15-0175-1000-313d-a577914d9a58","attachments":{"attachment":{"ref":"EID9173786f-f8a0-4924-bd03-50b6ed4a6aee"}},"parent":{"ref":"EID6eec5922-0175-1000-7f44-d7408cf43fe1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:16:24Z","duration":1,"status":"PASSED"},{"id":"EID6eec5b21-0175-1000-8383-66c6dbacbed2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5b84-0175-1000-062d-7d42636a7a69","parent":{"ref":"EID6eec5b21-0175-1000-8383-66c6dbacbed2"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5b84-0175-1000-00a0-b79835ae6d21","parent":{"ref":"EID6eec5b21-0175-1000-8383-66c6dbacbed2"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7b87a067-302f-4a35-86a6-271b5fe77812"},{"ref":"EID5408b6b6-1b06-4fe4-8153-9251c074c2c6"}]},"parent":{"ref":"EID6eec5922-0175-1000-7f44-d7408cf43fe1"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:16:24Z","duration":89,"status":"PASSED"},{"id":"EID6eec5b84-0175-1000-d46b-34b2f842ff3b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5e13-0175-1000-498c-abeb6658b43b","parent":{"ref":"EID6eec5b84-0175-1000-d46b-34b2f842ff3b"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5e13-0175-1000-27ea-2dadbd2d4c03","parent":{"ref":"EID6eec5b84-0175-1000-d46b-34b2f842ff3b"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5e13-0175-1000-c8aa-b481220f8fdd","parent":{"ref":"EID6eec5b84-0175-1000-d46b-34b2f842ff3b"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5e13-0175-1000-2394-a48267fc9266","parent":{"ref":"EID6eec5b84-0175-1000-d46b-34b2f842ff3b"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbe30153d-f33a-4731-bfda-0026261b3b7f"},{"ref":"EIDc966d037-eebb-4676-be6a-6a6e6aa2c00f"},{"ref":"EID4fd83607-8ff0-4948-b001-fccde8d75d88"}]},"parent":{"ref":"EID6eec5922-0175-1000-7f44-d7408cf43fe1"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:16:25Z","duration":503,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:16:24Z","duration":1265,"status":"PASSED"},{"id":"EID6eec5e13-0175-1000-e67e-27d0c68a54b9","testStepResults":{"TestStepResult":{"id":"EID6eec5e13-0175-1000-167b-408ec765004f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5e79-0175-1000-a352-fd4efa9a8469","parent":{"ref":"EID6eec5e13-0175-1000-167b-408ec765004f"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5e79-0175-1000-22da-8b2e1b503703","parent":{"ref":"EID6eec5e13-0175-1000-167b-408ec765004f"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"},{"id":"EID6eec5e79-0175-1000-34a0-78f0ecf76ca0","parent":{"ref":"EID6eec5e13-0175-1000-167b-408ec765004f"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:16:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdc401acb-2844-4efc-9534-98e77f822a39"},{"ref":"EIDb9ef9143-419f-4be8-9760-25b1c71891f6"},{"ref":"EIDb44c6c51-3985-48be-a968-69d27c8c2c1a"}]},"parent":{"ref":"EID6eec5e13-0175-1000-e67e-27d0c68a54b9"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:16:25Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:16:25Z","duration":103,"status":"PASSED"},{"id":"EID6eec5e7a-0175-1000-c7c6-70d20e199f71","testStepResults":{"TestStepResult":{"id":"EID6eec5e7a-0175-1000-ecec-8aed98c805a2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5f56-0175-1000-98aa-306a2f4b2fce","parent":{"ref":"EID6eec5e7a-0175-1000-ecec-8aed98c805a2"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5f56-0175-1000-941e-e7c7a447c3f5","parent":{"ref":"EID6eec5e7a-0175-1000-ecec-8aed98c805a2"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5f56-0175-1000-87cd-5d09e8e87661","parent":{"ref":"EID6eec5e7a-0175-1000-ecec-8aed98c805a2"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5060164b-52d2-4004-abd3-49f1e78523f3"},{"ref":"EIDf4985826-1995-49e7-8e44-72f829b7da7a"},{"ref":"EID27dbf4ec-cc73-4865-a010-78ed904dd18e"}]},"parent":{"ref":"EID6eec5e7a-0175-1000-c7c6-70d20e199f71"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:16:25Z","duration":146,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:16:25Z","duration":220,"status":"PASSED"},{"id":"EID6eec5f56-0175-1000-179f-1c8d0a7a5158","testStepResults":{"TestStepResult":{"id":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec5fee-0175-1000-7d89-235847ad60f4","parent":{"ref":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5fee-0175-1000-d140-d7ec42105d6a","parent":{"ref":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5fee-0175-1000-70f8-3c1e20c712d1","parent":{"ref":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5fee-0175-1000-87d7-8f42c2db8dce","parent":{"ref":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec5fee-0175-1000-b720-0da5fa529a8b","parent":{"ref":"EID6eec5f56-0175-1000-b8f4-d5c90adefd9b"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID956c326d-f48c-47f1-952e-a347ec939360"},{"ref":"EID1c67a7ad-2dbc-4dc3-a763-ef1cdd57f625"},{"ref":"EIDb8774515-1c4a-4b8c-b95c-9d5dda463d91"}]},"parent":{"ref":"EID6eec5f56-0175-1000-179f-1c8d0a7a5158"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:16:26Z","duration":57,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:16:26Z","duration":170,"status":"PASSED"},{"id":"EID6eec603c-0175-1000-d9fd-c8d28f504eab","testStepResults":{"TestStepResult":{"id":"EID6eec603c-0175-1000-d1e8-52d8a5241d44","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec60c2-0175-1000-9b35-abb49890b8e1","parent":{"ref":"EID6eec603c-0175-1000-d1e8-52d8a5241d44"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec60c2-0175-1000-f53f-983b5687fadc","parent":{"ref":"EID6eec603c-0175-1000-d1e8-52d8a5241d44"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec60c2-0175-1000-3115-9c3d66924c99","parent":{"ref":"EID6eec603c-0175-1000-d1e8-52d8a5241d44"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDacbe6901-c6cc-48f0-afc3-7e4c587dc0b9"},{"ref":"EID8d307448-2317-485a-9781-a491792c4c5b"},{"ref":"EID5f545e0e-a67b-4366-883f-c41d98b03310"}]},"parent":{"ref":"EID6eec603c-0175-1000-d9fd-c8d28f504eab"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:16:26Z","duration":30,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:16:26Z","duration":146,"status":"PASSED"},{"id":"EID6eec60ce-0175-1000-f49d-cdb97080f65f","testStepResults":{"TestStepResult":{"id":"EID6eec60ce-0175-1000-9107-ad5d62b110e1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec61b1-0175-1000-a677-b0a3bedbf1bf","parent":{"ref":"EID6eec60ce-0175-1000-9107-ad5d62b110e1"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec61b1-0175-1000-1e44-444a9d9c987b","parent":{"ref":"EID6eec60ce-0175-1000-9107-ad5d62b110e1"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec61b1-0175-1000-67f0-51fcc71730c2","parent":{"ref":"EID6eec60ce-0175-1000-9107-ad5d62b110e1"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe6056515-a2f6-4330-a568-b5a22b213386"},{"ref":"EIDa1f11088-3c28-4b10-925a-e70082953d25"},{"ref":"EIDff433b80-5fb6-402d-8742-257ba712d8fd"}]},"parent":{"ref":"EID6eec60ce-0175-1000-f49d-cdb97080f65f"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:16:26Z","duration":143,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:16:26Z","duration":227,"status":"PASSED"},{"id":"EID6eec61b1-0175-1000-c660-d261494ffff2","testStepResults":{"TestStepResult":{"id":"EID6eec61b1-0175-1000-6c26-3cf2d686573d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6226-0175-1000-ccf5-c944d14338ed","parent":{"ref":"EID6eec61b1-0175-1000-6c26-3cf2d686573d"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec6226-0175-1000-9c4e-01a92afb9682","parent":{"ref":"EID6eec61b1-0175-1000-6c26-3cf2d686573d"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec6226-0175-1000-996d-2d48bf1536c7","parent":{"ref":"EID6eec61b1-0175-1000-6c26-3cf2d686573d"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"},{"id":"EID6eec6226-0175-1000-48a4-283b29d1be16","parent":{"ref":"EID6eec61b1-0175-1000-6c26-3cf2d686573d"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:16:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID957d7eb2-27e4-468c-b1d2-38ae9ced2df2"},{"ref":"EID0d0c2ccd-f7bb-4b5d-b9db-971945167deb"},{"ref":"EID8ccf64a8-3044-4154-8ca6-590a685c674e"}]},"parent":{"ref":"EID6eec61b1-0175-1000-c660-d261494ffff2"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:16:26Z","duration":49,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:16:26Z","duration":117,"status":"PASSED"},{"id":"EID6eec6226-0175-1000-af3d-6a1385d3d05e","testStepResults":{"TestStepResult":{"id":"EID6eec6226-0175-1000-525c-d0024eba23a7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6378-0175-1000-c6ea-4d810aff6b2a","parent":{"ref":"EID6eec6226-0175-1000-525c-d0024eba23a7"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec6378-0175-1000-dc57-7f16ba6c963c","parent":{"ref":"EID6eec6226-0175-1000-525c-d0024eba23a7"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec6378-0175-1000-ef60-4cc6cfb5c392","parent":{"ref":"EID6eec6226-0175-1000-525c-d0024eba23a7"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec6378-0175-1000-c7c1-e615f086d0ae","parent":{"ref":"EID6eec6226-0175-1000-525c-d0024eba23a7"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID94a39958-0f89-49f3-8df0-b1c50c1bc12e"},{"ref":"EID9e310e3a-2caa-45d1-9b5c-69b235e6dc07"},{"ref":"EID8233f32f-9245-4468-a095-0a82ebfde1f7"}]},"parent":{"ref":"EID6eec6226-0175-1000-af3d-6a1385d3d05e"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:16:26Z","duration":205,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:16:26Z","duration":435,"status":"PASSED"},{"id":"EID6eec63da-0175-1000-41dc-77d90750667a","testStepResults":{"TestStepResult":[{"id":"EID6eec63da-0175-1000-233c-9c23f6cc1f56","parent":{"ref":"EID6eec63da-0175-1000-41dc-77d90750667a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec63da-0175-1000-38d5-bf0d9878b020","parent":{"ref":"EID6eec63da-0175-1000-41dc-77d90750667a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:16:27Z","duration":764,"status":"PASSED"},{"id":"EID6eec63da-0175-1000-5ac1-17322dcd2d07","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec64fd-0175-1000-3a82-6f03f37c6428","parent":{"ref":"EID6eec63da-0175-1000-5ac1-17322dcd2d07"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec64fd-0175-1000-04b8-64819f0b2b3e","parent":{"ref":"EID6eec63da-0175-1000-5ac1-17322dcd2d07"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec64fd-0175-1000-9bdf-06c221cb32f4","parent":{"ref":"EID6eec63da-0175-1000-5ac1-17322dcd2d07"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"},{"id":"EID6eec64fd-0175-1000-01a6-65694e28c998","parent":{"ref":"EID6eec63da-0175-1000-5ac1-17322dcd2d07"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:16:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9f78b2b6-6cea-4b48-bd46-9acebb8553db"},{"ref":"EIDa9b807f8-f431-43f9-83ce-f9affe02af4a"},{"ref":"EIDadddbcc1-0f98-40c3-9d00-0468a4812bec"}]},"parent":{"ref":"EID6eec63da-0175-1000-41dc-77d90750667a"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:16:27Z","duration":43,"status":"PASSED"},{"id":"EID6eec64fd-0175-1000-e7c9-cc1c5836c039","attachments":{"attachment":{"ref":"EIDad47f8ad-b376-4875-96d0-fca46283b162"}},"parent":{"ref":"EID6eec63da-0175-1000-41dc-77d90750667a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:16:27Z","duration":1,"status":"PASSED"},{"id":"EID6eec6508-0175-1000-afc5-94573ceeb083","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec67b8-0175-1000-d118-c25b5d13fece","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-df2b-96141c107338","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-0cc5-e71c05f5f5c7","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-2dcf-1b4c1ffa2ce8","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-aca7-d9780ba742c2","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-714b-d64ca0be3d35","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67b8-0175-1000-21eb-4f652788ed80","parent":{"ref":"EID6eec6508-0175-1000-afc5-94573ceeb083"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67c93dc5-cb2b-4d45-b71d-07005c934f08"},{"ref":"EIDa3c6c3c2-0b4d-420d-879d-ffd0375cb6b4"},{"ref":"EIDb649ce59-c4d7-480e-8f02-79054dfd6eec"}]},"parent":{"ref":"EID6eec63da-0175-1000-41dc-77d90750667a"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:16:27Z","duration":569,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:16:27Z","duration":998,"status":"PASSED"},{"id":"EID6eec67c0-0175-1000-cec9-890e41bdd7e3","testStepResults":{"TestStepResult":[{"id":"EID6eec67c0-0175-1000-22e3-fd5b60d260b7","parent":{"ref":"EID6eec67c0-0175-1000-cec9-890e41bdd7e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec67c0-0175-1000-5437-6f71801e5bcf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec68bb-0175-1000-8011-d43a3b979c25","parent":{"ref":"EID6eec67c0-0175-1000-5437-6f71801e5bcf"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec68bb-0175-1000-115d-89ce11c8a51f","parent":{"ref":"EID6eec67c0-0175-1000-5437-6f71801e5bcf"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec68bb-0175-1000-daa1-b96a0c37f3e8","parent":{"ref":"EID6eec67c0-0175-1000-5437-6f71801e5bcf"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec68bb-0175-1000-5759-8ba840ceceba","parent":{"ref":"EID6eec67c0-0175-1000-5437-6f71801e5bcf"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2a0eae04-09d9-46e6-9f52-586e94143ba7"},{"ref":"EIDf5f8fc19-b407-4984-b649-92eeb75d79bf"},{"ref":"EID82a1813c-9d08-4ffe-9898-4112dd0aec2b"}]},"parent":{"ref":"EID6eec67c0-0175-1000-cec9-890e41bdd7e3"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:16:28Z","duration":144,"status":"PASSED"},{"id":"EID6eec68bb-0175-1000-e97f-1d428928f10c","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eec68d0-0175-1000-0814-24d618c053cd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec69cb-0175-1000-7deb-ae7537561d7e","parent":{"ref":"EID6eec68d0-0175-1000-0814-24d618c053cd"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec69cb-0175-1000-d80d-8629ad405684","parent":{"ref":"EID6eec68d0-0175-1000-0814-24d618c053cd"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"},{"id":"EID6eec69cb-0175-1000-5617-e69727109652","parent":{"ref":"EID6eec68d0-0175-1000-0814-24d618c053cd"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3038d259-d2da-4a1e-9a26-169dc7b17899"},{"ref":"EIDcb2c03fa-6d3f-4de7-bd5c-28d2f94cd1ec"},{"ref":"EID0a48b78e-b971-4509-a01c-26bc2664674f"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:28Z","duration":148,"status":"PASSED"},{"id":"EID6eec69cd-0175-1000-b994-a68380bc22c5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6ae7-0175-1000-04ff-72a9f7a85fdb","parent":{"ref":"EID6eec69cd-0175-1000-b994-a68380bc22c5"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6ae7-0175-1000-52ae-8537436413af","parent":{"ref":"EID6eec69cd-0175-1000-b994-a68380bc22c5"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6ae7-0175-1000-3dc6-0e535fc65e1e","parent":{"ref":"EID6eec69cd-0175-1000-b994-a68380bc22c5"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb75eaf92-bf4a-4d56-a51a-57fd3e73c2fc"},{"ref":"EID190a25ea-87cd-488b-a413-e9cab8dcd660"},{"ref":"EID5efbceb2-498d-401e-84a8-bc81d33b2dcd"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:28Z","duration":149,"status":"PASSED"},{"id":"EID6eec6ae8-0175-1000-c416-3a67a8489062","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6baf-0175-1000-a972-2f6c849562dc","parent":{"ref":"EID6eec6ae8-0175-1000-c416-3a67a8489062"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6baf-0175-1000-f6dc-49574aecd942","parent":{"ref":"EID6eec6ae8-0175-1000-c416-3a67a8489062"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6baf-0175-1000-70e5-c30a2d5798e4","parent":{"ref":"EID6eec6ae8-0175-1000-c416-3a67a8489062"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa33640aa-bcf8-4545-a657-42de048f561e"},{"ref":"EIDe290de44-db5f-47db-a642-1341dc842620"},{"ref":"EID2765c29c-4966-4978-964f-eac5ab10d0ad"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:29Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6eec67c0-0175-1000-cec9-890e41bdd7e3"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:16:28Z","duration":757,"status":"PASSED"},{"id":"EID6eec6bb1-0175-1000-7235-72c1ebe816fa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6c26-0175-1000-eb7e-13af28362766","parent":{"ref":"EID6eec6bb1-0175-1000-7235-72c1ebe816fa"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c26-0175-1000-aea2-0a558379dba0","parent":{"ref":"EID6eec6bb1-0175-1000-7235-72c1ebe816fa"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c26-0175-1000-537b-d30e4c88149f","parent":{"ref":"EID6eec6bb1-0175-1000-7235-72c1ebe816fa"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c26-0175-1000-1dbf-dea1e69fe108","parent":{"ref":"EID6eec6bb1-0175-1000-7235-72c1ebe816fa"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5cb39de5-289b-4ac7-9d55-787a5fb70600"},{"ref":"EID3cf89040-e5a5-48df-b904-c460a0ae2603"},{"ref":"EID7ea487bf-0f29-4640-9fae-a72c52d01dbc"}]},"parent":{"ref":"EID6eec67c0-0175-1000-cec9-890e41bdd7e3"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:16:29Z","duration":52,"status":"PASSED"}]},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:16:28Z","duration":1126,"status":"PASSED"},{"id":"EID6eec6c26-0175-1000-10cd-bd5885515c93","testStepResults":{"TestStepResult":{"id":"EID6eec6c26-0175-1000-5e85-64a58c15589d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6c9d-0175-1000-e135-57896b22f6db","parent":{"ref":"EID6eec6c26-0175-1000-5e85-64a58c15589d"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c9d-0175-1000-d7f9-5a2abb035a8e","parent":{"ref":"EID6eec6c26-0175-1000-5e85-64a58c15589d"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c9d-0175-1000-4c11-d33930dd21a8","parent":{"ref":"EID6eec6c26-0175-1000-5e85-64a58c15589d"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6c9d-0175-1000-9d64-a20686d0c6c1","parent":{"ref":"EID6eec6c26-0175-1000-5e85-64a58c15589d"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID603b26b4-a0fc-4e8f-b9d0-30e615e10e30"},{"ref":"EID499d2944-df94-4234-9192-027b901ee437"},{"ref":"EID34dd3399-e32b-44b3-980f-2e0b2cb9c714"}]},"parent":{"ref":"EID6eec6c26-0175-1000-10cd-bd5885515c93"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:16:29Z","duration":37,"status":"PASSED"}},"parent":{"ref":"EID6eec4fc0-0175-1000-a869-ebf47a6870dc"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:16:29Z","duration":119,"status":"PASSED"}]},"parent":{"ref":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:16:22Z","duration":7389,"status":"PASSED"},{"id":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2","testCaseResults":{"TestCaseResult":[{"id":"EID6eec6ccf-0175-1000-8e0f-209ec25ac107","testStepResults":{"TestStepResult":[{"id":"EID6eec6ccf-0175-1000-ac14-2e45e25d7830","parent":{"ref":"EID6eec6ccf-0175-1000-8e0f-209ec25ac107"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:16:29Z","duration":3298,"status":"PASSED"},{"id":"EID6eec6ccf-0175-1000-c94f-5caca1bc3c91","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6d70-0175-1000-6abe-3647258a2429","parent":{"ref":"EID6eec6ccf-0175-1000-c94f-5caca1bc3c91"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6d70-0175-1000-edec-e843693e4aa3","parent":{"ref":"EID6eec6ccf-0175-1000-c94f-5caca1bc3c91"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"},{"id":"EID6eec6d70-0175-1000-b00d-4419305a6b8b","parent":{"ref":"EID6eec6ccf-0175-1000-c94f-5caca1bc3c91"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDae09ea11-d02a-4a61-aab8-6792bebfb8d5"},{"ref":"EID6baeac34-36e6-481b-badf-d365c6fc84a6"},{"ref":"EIDfc552b22-477d-4a48-9206-8a9ea5bab3ec"}]},"parent":{"ref":"EID6eec6ccf-0175-1000-8e0f-209ec25ac107"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:16:29Z","duration":37,"status":"PASSED"},{"id":"EID6eec6d71-0175-1000-bd51-d6106b722087","attachments":{"attachment":{"ref":"EID4179dbd4-7de4-49da-a1fb-01c9309aaaa9"}},"parent":{"ref":"EID6eec6ccf-0175-1000-8e0f-209ec25ac107"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:16:29Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:16:29Z","duration":174,"status":"PASSED"},{"id":"EID6eec6d7d-0175-1000-fe67-4fddbc1d979b","testStepResults":{"TestStepResult":[{"id":"EID6eec6d7d-0175-1000-1007-bee0031108c3","parent":{"ref":"EID6eec6d7d-0175-1000-fe67-4fddbc1d979b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:16:29Z","duration":3298,"status":"PASSED"},{"id":"EID6eec6d7d-0175-1000-8875-97720a9ff76c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec6f8d-0175-1000-c5c1-1b68e64db38d","parent":{"ref":"EID6eec6d7d-0175-1000-8875-97720a9ff76c"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec6f8d-0175-1000-7bfc-17cefb296774","parent":{"ref":"EID6eec6d7d-0175-1000-8875-97720a9ff76c"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec6f8d-0175-1000-b7f7-f6429c059a7f","parent":{"ref":"EID6eec6d7d-0175-1000-8875-97720a9ff76c"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec6f8d-0175-1000-4964-b8b0fd243e5b","parent":{"ref":"EID6eec6d7d-0175-1000-8875-97720a9ff76c"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID274166b0-a4ee-4cc7-94a1-4fc8ab878df1"},{"ref":"EID19870a92-6cf5-486c-8687-9ce346c56c17"},{"ref":"EIDeb0228fe-aae9-4279-a3fa-491468d13126"}]},"parent":{"ref":"EID6eec6d7d-0175-1000-fe67-4fddbc1d979b"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:16:29Z","duration":155,"status":"PASSED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:16:29Z","duration":528,"status":"PASSED"},{"id":"EID6eec6f8d-0175-1000-2f37-3a3866f86b86","testStepResults":{"TestStepResult":[{"id":"EID6eec6f8e-0175-1000-c55f-0e7c5f85b316","parent":{"ref":"EID6eec6f8d-0175-1000-2f37-3a3866f86b86"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:16:30Z","duration":3298,"status":"PASSED"},{"id":"EID6eec6f8e-0175-1000-f0b4-20be4316af20","parent":{"ref":"EID6eec6f8d-0175-1000-2f37-3a3866f86b86"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec7075-0175-1000-7031-84bfa4581dc6","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-64d9-90b068084878","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-d17f-1da4489d58a6","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-63b9-dda0ce95c0a7","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-3982-e6895627f994","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-734d-80148c0c62a1","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7075-0175-1000-08db-35d0196f2e42","parent":{"ref":"EID6eec6f8e-0175-1000-fc9f-d65d2c0e1034"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe7db2def-af13-4320-9ade-5881aeafc6bd"},{"ref":"EID1934583a-2339-40c8-8ccb-e151c068f995"},{"ref":"EIDb93ac2f5-a62d-4635-9b0a-86d9be9f2e92"}]},"parent":{"ref":"EID6eec6f8d-0175-1000-2f37-3a3866f86b86"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:16:30Z","duration":116,"status":"PASSED"},{"id":"EID6eec7076-0175-1000-24e7-2aca2bba4db6","invokedTests":{"":null,"TestStepResult":{"id":"EID6eec70ae-0175-1000-912a-ad08f90141b3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec7257-0175-1000-0dc8-69b95acad9d6","parent":{"ref":"EID6eec70ae-0175-1000-912a-ad08f90141b3"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7257-0175-1000-fd29-a6b917f50c83","parent":{"ref":"EID6eec70ae-0175-1000-912a-ad08f90141b3"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"PASSED"},{"id":"EID6eec7257-0175-1000-d1f2-2f4fbbbc7307","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"parent":{"ref":"EID6eec70ae-0175-1000-912a-ad08f90141b3"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:16:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID6d6f98df-4f87-4320-8a60-ec001be0a9fa"},{"ref":"EID0ab4fbff-d228-4004-9b61-38f3bd8d968f"},{"ref":"EID96b07edd-9442-4edb-ad3c-2b2b2798fed3"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:16:30Z","duration":289,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EIDeff57f8d-621f-490d-89dd-7a4127b6a85b"},{"ref":"EIDcacb0cae-d83f-486b-ad88-31a66d7a6a58"}]},"parent":{"ref":"EID6eec6f8d-0175-1000-2f37-3a3866f86b86"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:16:30Z","duration":1748,"status":"FAILED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:16:30Z","duration":2008,"status":"FAILED"},{"id":"EID6eec7765-0175-1000-4e0c-48de5ec652af","testStepResults":{"TestStepResult":[{"id":"EID6eec7765-0175-1000-f6c3-7bbc5ac3b832","parent":{"ref":"EID6eec7765-0175-1000-4e0c-48de5ec652af"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:16:32Z","duration":3298,"status":"PASSED"},{"id":"EID6eec7765-0175-1000-6314-481eb1ae3edd","parent":{"ref":"EID6eec7765-0175-1000-4e0c-48de5ec652af"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7765-0175-1000-0f66-c9c9c104d639","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec7880-0175-1000-de6d-074cc4013bc6","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7880-0175-1000-1257-a899752ad9da","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7880-0175-1000-e233-05f11db4d390","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7880-0175-1000-1ea3-46b848d4605d","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7880-0175-1000-499d-7429a9ebf0ff","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"},{"id":"EID6eec7880-0175-1000-bec7-0a04b5bae0df","parent":{"ref":"EID6eec7765-0175-1000-0f66-c9c9c104d639"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID91dad01e-4a0b-49ad-a98c-c68beab4561e"},{"ref":"EIDcdc3b4bf-682b-45e7-8193-d4ef6d067286"},{"ref":"EID6cef6fed-af34-4262-a7ab-e87e1fc633e3"}]},"parent":{"ref":"EID6eec7765-0175-1000-4e0c-48de5ec652af"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:16:32Z","duration":121,"status":"PASSED"},{"id":"EID6eec7881-0175-1000-256b-3fac22c7022a","parent":{"ref":"EID6eec7765-0175-1000-4e0c-48de5ec652af"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:16:32Z","duration":70,"status":"PASSED"},{"id":"EID6eec78c7-0175-1000-e56d-0e4dcaebf021","parent":{"ref":"EID6eec7765-0175-1000-4e0c-48de5ec652af"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:16:32Z","duration":0,"status":"UNDEFINED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:16:32Z","duration":354,"status":"UNDEFINED"},{"id":"EID6eec78c7-0175-1000-8fa5-6d0b1a071271","testStepResults":{"TestStepResult":[{"id":"EID6eec78c8-0175-1000-a91f-6a3b62326d9c","parent":{"ref":"EID6eec78c7-0175-1000-8fa5-6d0b1a071271"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:16:32Z","duration":3298,"status":"PASSED"},{"id":"EID6eec78c8-0175-1000-ce57-4138f4740fae","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"attachments":{"attachment":[{"ref":"EIDe851b2b3-96cd-4ad0-85e1-bdf959a0b7b1"},{"ref":"EID43d3f503-5a7b-4d32-865d-02ed9a307862"},{"ref":"EID3a1ce849-4593-49e6-8e29-f5b4bce94282"},{"ref":"EID7fed4834-fa44-44e0-b78a-58a86bad60c5"},{"ref":"EID616b5b07-231f-4896-8ed4-04a690cfd3c5"},{"ref":"EID94cc65df-f9e7-41cc-91c3-d37369134ce5"},{"ref":"EID579c75a2-6443-4a34-87fe-f891ff49cf0f"},{"ref":"EID9c24d771-ca37-472c-92c0-0cd0bca73238"},{"ref":"EID5152e295-f646-40f9-8e19-e626111542aa"},{"ref":"EIDfef2e85c-dd2e-486b-bef8-73c43c08b4f9"},{"ref":"EID480b9770-32dd-47f9-b4ba-ac96925fd752"},{"ref":"EID8a3e8347-4cc8-44f8-b893-17a6c7ed20d4"},{"ref":"EID2aecc301-fed7-4b5b-a741-b6673416c385"},{"ref":"EIDfac76096-5015-4bc0-ae41-8a9f933615bc"},{"ref":"EID678c7156-52b1-4af4-8c8e-f5df6a519ba7"},{"ref":"EIDd513c5db-29c4-4b1c-af44-50bf94461e67"},{"ref":"EID363b409f-943a-4b63-8a8d-c60738b29e3d"},{"ref":"EID8cbd0fd3-87e2-4592-87bb-14ffc8bd3b6e"},{"ref":"EIDf599656b-8117-41bc-b546-5bb1949081a1"}]},"parent":{"ref":"EID6eec78c7-0175-1000-8fa5-6d0b1a071271"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:16:32Z","duration":1019,"status":"SKIPPED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:16:32Z","duration":1546,"status":"SKIPPED"},{"id":"EID6eec7ed1-0175-1000-14f0-5e69bf3cedd7","testStepResults":{"TestStepResult":[{"id":"EID6eec7ed1-0175-1000-77e0-ff4ca045aea9","parent":{"ref":"EID6eec7ed1-0175-1000-14f0-5e69bf3cedd7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:16:34Z","duration":3298,"status":"PASSED"},{"id":"EID6eec7ed1-0175-1000-4353-d2dab50ff5fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec7f99-0175-1000-4a92-3e84ced1a2d1","parent":{"ref":"EID6eec7ed1-0175-1000-4353-d2dab50ff5fd"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec7f99-0175-1000-e548-c68c9027dca9","parent":{"ref":"EID6eec7ed1-0175-1000-4353-d2dab50ff5fd"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec7f99-0175-1000-6885-1c8daeb91d29","parent":{"ref":"EID6eec7ed1-0175-1000-4353-d2dab50ff5fd"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec7f99-0175-1000-08b7-956965976404","parent":{"ref":"EID6eec7ed1-0175-1000-4353-d2dab50ff5fd"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5a1bf4cc-079b-45e3-ac1d-f6791e3fb8a3"},{"ref":"EID82cdbac7-7f31-4f64-a37b-3b8787712918"},{"ref":"EID1e29712c-f869-4f2d-96f2-c348c571788a"}]},"parent":{"ref":"EID6eec7ed1-0175-1000-14f0-5e69bf3cedd7"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:16:34Z","duration":120,"status":"PASSED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:16:34Z","duration":200,"status":"PASSED"},{"id":"EID6eec7f99-0175-1000-e883-d00268fac680","testStepResults":{"TestStepResult":[{"id":"EID6eec7f99-0175-1000-3fd4-385f76ad6112","parent":{"ref":"EID6eec7f99-0175-1000-e883-d00268fac680"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:16:34Z","duration":3298,"status":"PASSED"},{"id":"EID6eec7f99-0175-1000-3156-5f3147eda8e5","parent":{"ref":"EID6eec7f99-0175-1000-e883-d00268fac680"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec7f9a-0175-1000-76a1-e3ce167d0448","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec8039-0175-1000-666e-7f23767cbc58","parent":{"ref":"EID6eec7f9a-0175-1000-76a1-e3ce167d0448"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec8039-0175-1000-ada7-a828c0499761","parent":{"ref":"EID6eec7f9a-0175-1000-76a1-e3ce167d0448"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec8039-0175-1000-97c3-dedca7420ac4","parent":{"ref":"EID6eec7f9a-0175-1000-76a1-e3ce167d0448"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec8039-0175-1000-3fbb-f8d5bc8fc471","parent":{"ref":"EID6eec7f9a-0175-1000-76a1-e3ce167d0448"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9e536b20-9a87-4757-9450-2c770d15579e"},{"ref":"EIDc7d6c20b-dbd1-4a89-9024-413fd33725c2"},{"ref":"EIDc08979d5-c452-4920-89bd-ede76d608391"}]},"parent":{"ref":"EID6eec7f99-0175-1000-e883-d00268fac680"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:16:34Z","duration":86,"status":"PASSED"},{"id":"EID6eec8039-0175-1000-3b13-62e2d99b9f2c","attachments":{"attachment":{"ref":"EIDb509d290-dbd1-47b3-82bb-beb873fed546"}},"parent":{"ref":"EID6eec7f99-0175-1000-e883-d00268fac680"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:16:34Z","duration":8,"status":"PASSED"},{"id":"EID6eec804d-0175-1000-36c7-3d590b73ba3a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec805a-0175-1000-46d8-14fe7dc3b425","parent":{"ref":"EID6eec804d-0175-1000-36c7-3d590b73ba3a"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec805a-0175-1000-cebb-d0b11ffcc1bd","parent":{"ref":"EID6eec804d-0175-1000-36c7-3d590b73ba3a"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"},{"id":"EID6eec805a-0175-1000-af7c-cc3ebb98d584","parent":{"ref":"EID6eec804d-0175-1000-36c7-3d590b73ba3a"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4c3e2260-ac87-4e35-bb84-c1d2dd3cea35"},{"ref":"EIDf19b73bd-78c6-4345-87a5-3cc28276b49c"}]},"parent":{"ref":"EID6eec7f99-0175-1000-e883-d00268fac680"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:16:34Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eec6c9d-0175-1000-96ee-0e89f63c2dd2"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:16:34Z","duration":193,"status":"PASSED"}]},"parent":{"ref":"EID2b822d95-7619-456c-83a2-0fc1d7de5f4f"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:16:29Z","duration":5053,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID91d2a903-b0c3-4231-abd7-9b4971ce7a7e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceResponse","id":"EID190a25ea-87cd-488b-a413-e9cab8dcd660","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID190a25ea-87cd-488b-a413-e9cab8dcd660"}},{"type":"ServiceEndpoint","id":"EIDb8dab605-af95-4143-adaf-70fe0c7007ab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9bd97f76-9d78-437c-b8e8-c4e583977652","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb5dc2a3d-351e-4f5e-8697-2204fda5027d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDb5dc2a3d-351e-4f5e-8697-2204fda5027d"}},{"type":"GetParameter","id":"EID70048533-f7d2-4752-88b9-56113730de9d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID77b636ba-4b43-4b11-914c-57a72e19452c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID77b636ba-4b43-4b11-914c-57a72e19452c"}},{"type":"ServiceEndpoint","id":"EID67c93dc5-cb2b-4d45-b71d-07005c934f08","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID63e0dd00-5685-4b16-aa7f-b6ee118d1e6c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID0d673623-186b-43d0-bc91-e15647f6cad9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID0d673623-186b-43d0-bc91-e15647f6cad9"}},{"type":"Message","id":"EID9f36a13a-155c-4772-a431-c6297732b89d","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9f36a13a-155c-4772-a431-c6297732b89d"}},{"type":"Message","id":"EID8dd3b1d3-a504-46f2-bd59-494a01e8918f","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8dd3b1d3-a504-46f2-bd59-494a01e8918f"}},{"type":"GetParameter","id":"EID0f269909-63f7-4605-bd1d-60a856609890","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID81404c09-b5a6-49cb-8976-e2d036965941","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID85209e58-3570-445c-a56e-a00428b89635","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID85209e58-3570-445c-a56e-a00428b89635"}},{"type":"ServiceEndpoint","id":"EID603b26b4-a0fc-4e8f-b9d0-30e615e10e30","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID9e3c62e9-2f18-49b0-9eb9-b30ed0c68e6f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9e3c62e9-2f18-49b0-9eb9-b30ed0c68e6f"}},{"type":"GetParameter","id":"EID56b9ca97-8449-4063-9114-1d5864ef0c32","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa9b807f8-f431-43f9-83ce-f9affe02af4a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa9b807f8-f431-43f9-83ce-f9affe02af4a"}},{"type":"ServiceResponse","id":"EID19870a92-6cf5-486c-8687-9ce346c56c17","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID19870a92-6cf5-486c-8687-9ce346c56c17"}},{"type":"ServiceEndpoint","id":"EIDb0a4ca53-0bbb-4c6a-b0c8-9738f46a57fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDadddbcc1-0f98-40c3-9d00-0468a4812bec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4fd83607-8ff0-4948-b001-fccde8d75d88","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID4179dbd4-7de4-49da-a1fb-01c9309aaaa9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID4179dbd4-7de4-49da-a1fb-01c9309aaaa9"}},{"type":"ServiceResponse","id":"EIDcdc3b4bf-682b-45e7-8193-d4ef6d067286","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDcdc3b4bf-682b-45e7-8193-d4ef6d067286"}},{"type":"Message","id":"EID033c9865-ff6a-4f6f-be0e-299bafdea732","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID033c9865-ff6a-4f6f-be0e-299bafdea732"}},{"type":"GetParameter","id":"EID27c355d8-67af-4301-830c-54730cb2accb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID140c5c03-af96-4383-bd6b-fd247543fc3b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID140c5c03-af96-4383-bd6b-fd247543fc3b"}},{"type":"ServiceEndpoint","id":"EID957d7eb2-27e4-468c-b1d2-38ae9ced2df2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EIDe2f666f0-46a6-4745-8221-a15f71581d59","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID6cef6fed-af34-4262-a7ab-e87e1fc633e3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID516e56aa-2ece-49af-bd49-9af484527837","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID516e56aa-2ece-49af-bd49-9af484527837"}},{"type":"ServiceEndpoint","id":"EID6d6f98df-4f87-4320-8a60-ec001be0a9fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"GetParameter","id":"EIDc49cc5d8-e96c-4901-a790-a02043cb0c0c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd8939b0d-9510-401e-958e-948d9ab4d86e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5408b6b6-1b06-4fe4-8153-9251c074c2c6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAxNV92X2dwa2cuemlw"},{"type":"GetParameter","id":"EIDee3bcd07-185a-4fb6-a0d2-6e0df64b62ae","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5cb39de5-289b-4ac7-9d55-787a5fb70600","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceEndpoint","id":"EID17d55a81-4565-4d76-a9c6-0661d45d216c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc7d6c20b-dbd1-4a89-9024-413fd33725c2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDc7d6c20b-dbd1-4a89-9024-413fd33725c2"}},{"type":"GetParameter","id":"EID62ccad67-2183-43b1-8357-df8fc8a9a026","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID61c4820d-b788-4218-85c6-043927bd7df4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf4985826-1995-49e7-8e44-72f829b7da7a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDf4985826-1995-49e7-8e44-72f829b7da7a"}},{"type":"Message","id":"EIDfa2308a1-8117-49c6-a086-92e50eca3743","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDfa2308a1-8117-49c6-a086-92e50eca3743"}},{"type":"LogFile","id":"EID3a7f60b1-36fd-4633-950d-b902c3e3cceb","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID3a7f60b1-36fd-4633-950d-b902c3e3cceb"}},{"type":"ServiceResponse","id":"EID82cdbac7-7f31-4f64-a37b-3b8787712918","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID82cdbac7-7f31-4f64-a37b-3b8787712918"}},{"type":"ServiceEndpoint","id":"EID9e536b20-9a87-4757-9450-2c770d15579e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID9dec02d8-ad76-4643-95aa-5e92bab17369","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID934fb3ca-1bc8-466e-a69b-5c5cfc8bd947","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID934fb3ca-1bc8-466e-a69b-5c5cfc8bd947"}},{"type":"GetParameter","id":"EID64b7f1d8-c705-4310-b8f5-e7e5061106aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDc532a422-27cb-4bee-9f7d-a6c80b4551bd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID34dd3399-e32b-44b3-980f-2e0b2cb9c714","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EIDddc9ee13-bf9a-48a3-8479-f1b7543cb94a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID751c0e21-c777-4b5e-91bb-e9d985361733","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID751c0e21-c777-4b5e-91bb-e9d985361733"}},{"type":"Message","id":"EIDc1dd0d32-e38b-4b74-8006-803ed1f5c457","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDc1dd0d32-e38b-4b74-8006-803ed1f5c457"}},{"type":"Message","id":"EID8cbd0fd3-87e2-4592-87bb-14ffc8bd3b6e","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8cbd0fd3-87e2-4592-87bb-14ffc8bd3b6e"}},{"type":"GetParameter","id":"EID04e6f617-a689-4a02-a123-269139074326","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID69643501-61b0-476a-996b-1d60f593ec93","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID69643501-61b0-476a-996b-1d60f593ec93"}},{"type":"ServiceResponse","id":"EIDcfba8e00-0515-479e-8748-132d7b01047f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDcfba8e00-0515-479e-8748-132d7b01047f"}},{"type":"ServiceEndpoint","id":"EIDe7db2def-af13-4320-9ade-5881aeafc6bd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDb93ac2f5-a62d-4635-9b0a-86d9be9f2e92","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID8d307448-2317-485a-9781-a491792c4c5b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8d307448-2317-485a-9781-a491792c4c5b"}},{"type":"ServiceResponse","id":"EIDfb711e9a-ea45-4918-b691-16ad4b28c412","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDfb711e9a-ea45-4918-b691-16ad4b28c412"}},{"type":"GetParameter","id":"EIDff433b80-5fb6-402d-8742-257ba712d8fd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceResponse","id":"EID5e8c7ee5-73bd-4760-8f0b-4b04449be15f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID5e8c7ee5-73bd-4760-8f0b-4b04449be15f"}},{"type":"ServiceResponse","id":"EID499d2944-df94-4234-9192-027b901ee437","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID499d2944-df94-4234-9192-027b901ee437"}},{"type":"ServiceEndpoint","id":"EIDf4b91163-d8ea-44a3-9e50-1c5e6f9027e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb649ce59-c4d7-480e-8f02-79054dfd6eec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceEndpoint","id":"EID2654846b-43ee-4616-a49c-9ddfd2ae7c2f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EIDfac76096-5015-4bc0-ae41-8a9f933615bc","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDfac76096-5015-4bc0-ae41-8a9f933615bc"}},{"type":"ServiceEndpoint","id":"EIDa33640aa-bcf8-4545-a657-42de048f561e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID274166b0-a4ee-4cc7-94a1-4fc8ab878df1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID9e310e3a-2caa-45d1-9b5c-69b235e6dc07","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9e310e3a-2caa-45d1-9b5c-69b235e6dc07"}},{"type":"ServiceEndpoint","id":"EID94a39958-0f89-49f3-8df0-b1c50c1bc12e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID8ccf64a8-3044-4154-8ca6-590a685c674e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID53d30dfe-3776-4d48-9575-0989cd2ac81d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID7fed4834-fa44-44e0-b78a-58a86bad60c5","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID7fed4834-fa44-44e0-b78a-58a86bad60c5"}},{"type":"GetParameter","id":"EIDfc552b22-477d-4a48-9206-8a9ea5bab3ec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDe6056515-a2f6-4330-a568-b5a22b213386","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EIDce0282be-28fc-4004-896f-77575314fa3f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID8d40999a-49af-4674-9c7a-3113f8755538","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8d40999a-49af-4674-9c7a-3113f8755538"}},{"type":"Message","id":"EIDfef2e85c-dd2e-486b-bef8-73c43c08b4f9","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDfef2e85c-dd2e-486b-bef8-73c43c08b4f9"}},{"type":"Message","id":"EIDcacb0cae-d83f-486b-ad88-31a66d7a6a58","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDcacb0cae-d83f-486b-ad88-31a66d7a6a58"}},{"type":"GetParameter","id":"EIDf19b73bd-78c6-4345-87a5-3cc28276b49c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID6ee5f4a2-672f-4609-b09c-3365b91ea96d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID6ee5f4a2-672f-4609-b09c-3365b91ea96d"}},{"type":"ServiceResponse","id":"EIDa4527810-c656-4353-bf09-12ca2794d5c4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa4527810-c656-4353-bf09-12ca2794d5c4"}},{"type":"ServiceResponse","id":"EID66be07c8-de79-47f8-badb-fc363cc4153b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID66be07c8-de79-47f8-badb-fc363cc4153b"}},{"type":"ServiceResponse","id":"EID4e6ef610-e801-4cbf-8f03-0f5447810edf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID4e6ef610-e801-4cbf-8f03-0f5447810edf"}},{"type":"ServiceResponse","id":"EIDb9ef9143-419f-4be8-9760-25b1c71891f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDb9ef9143-419f-4be8-9760-25b1c71891f6"}},{"type":"Message","id":"EID9173786f-f8a0-4924-bd03-50b6ed4a6aee","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9173786f-f8a0-4924-bd03-50b6ed4a6aee"}},{"type":"GetParameter","id":"EID96b07edd-9442-4edb-ad3c-2b2b2798fed3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAxNV9sX2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EIDdc401acb-2844-4efc-9534-98e77f822a39","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID7f977318-3791-44ae-8662-c596ac10c27a","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID7f977318-3791-44ae-8662-c596ac10c27a"}},{"type":"ServiceEndpoint","id":"EID3038d259-d2da-4a1e-9a26-169dc7b17899","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDacbe6901-c6cc-48f0-afc3-7e4c587dc0b9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceEndpoint","id":"EID5a1bf4cc-079b-45e3-ac1d-f6791e3fb8a3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa1f11088-3c28-4b10-925a-e70082953d25","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa1f11088-3c28-4b10-925a-e70082953d25"}},{"type":"Message","id":"EID480b9770-32dd-47f9-b4ba-ac96925fd752","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID480b9770-32dd-47f9-b4ba-ac96925fd752"}},{"type":"Message","id":"EIDbc9bd53a-2926-400b-989c-489576f7abb8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDbc9bd53a-2926-400b-989c-489576f7abb8"}},{"type":"ServiceEndpoint","id":"EID6777a5e7-72ff-46ae-9c00-b558e0ef5b7c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID87ceaed1-f663-45d7-a5a9-f6fea38e8cbb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID87ceaed1-f663-45d7-a5a9-f6fea38e8cbb"}},{"type":"ServiceResponse","id":"EIDb2aee476-d3c2-4c03-8717-ef09ce9af90e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDb2aee476-d3c2-4c03-8717-ef09ce9af90e"}},{"type":"Message","id":"EIDd513c5db-29c4-4b1c-af44-50bf94461e67","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDd513c5db-29c4-4b1c-af44-50bf94461e67"}},{"type":"ServiceEndpoint","id":"EIDb75eaf92-bf4a-4d56-a51a-57fd3e73c2fc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDa3666ee3-ca40-4c1b-b93a-b2032798c849","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa3666ee3-ca40-4c1b-b93a-b2032798c849"}},{"type":"ServiceResponse","id":"EIDc966d037-eebb-4676-be6a-6a6e6aa2c00f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDc966d037-eebb-4676-be6a-6a6e6aa2c00f"}},{"type":"ServiceResponse","id":"EIDf841c65e-5758-4dd7-b63b-80cd6213fa55","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDf841c65e-5758-4dd7-b63b-80cd6213fa55"}},{"type":"GetParameter","id":"EIDd47e5a84-27e8-408e-97d1-716ae98c1944","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceResponse","id":"EID6baeac34-36e6-481b-badf-d365c6fc84a6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID6baeac34-36e6-481b-badf-d365c6fc84a6"}},{"type":"ServiceResponse","id":"EIDcb2c03fa-6d3f-4de7-bd5c-28d2f94cd1ec","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDcb2c03fa-6d3f-4de7-bd5c-28d2f94cd1ec"}},{"type":"GetParameter","id":"EID310618ad-45fe-4a0c-81fe-a4f9f466b4b7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd1e83753-2bef-4c6d-9fff-bf0140907656","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID9fb86503-9527-4060-b858-35d63b64a056","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9fb86503-9527-4060-b858-35d63b64a056"}},{"type":"Message","id":"EID4f223a18-782f-4b68-a471-74fe0de910ca","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID4f223a18-782f-4b68-a471-74fe0de910ca"}},{"type":"Message","id":"EIDa21c1aa7-c2e4-495d-b51b-927ac534c932","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa21c1aa7-c2e4-495d-b51b-927ac534c932"}},{"type":"ServiceResponse","id":"EID57293281-8438-4e37-b6ba-81e7bc72066f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID57293281-8438-4e37-b6ba-81e7bc72066f"}},{"type":"ServiceEndpoint","id":"EID2a0eae04-09d9-46e6-9f52-586e94143ba7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID1c67a7ad-2dbc-4dc3-a763-ef1cdd57f625","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID1c67a7ad-2dbc-4dc3-a763-ef1cdd57f625"}},{"type":"ServiceResponse","id":"EID8f9ff3d1-9c07-42fd-8990-83377291b4a8","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8f9ff3d1-9c07-42fd-8990-83377291b4a8"}},{"type":"Message","id":"EIDeff57f8d-621f-490d-89dd-7a4127b6a85b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDeff57f8d-621f-490d-89dd-7a4127b6a85b"}},{"type":"ServiceEndpoint","id":"EID2c481b70-b97d-4e2b-82ba-2b3149bfd3b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf599656b-8117-41bc-b546-5bb1949081a1","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDf599656b-8117-41bc-b546-5bb1949081a1"}},{"type":"GetParameter","id":"EID27dbf4ec-cc73-4865-a010-78ed904dd18e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID8233f32f-9245-4468-a095-0a82ebfde1f7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EIDb64b5227-75d4-492a-87b8-6d294059097c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7b87a067-302f-4a35-86a6-271b5fe77812","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAxNV92X2dwa2cuemlw"},{"type":"Message","id":"EIDb509d290-dbd1-47b3-82bb-beb873fed546","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDb509d290-dbd1-47b3-82bb-beb873fed546"}},{"type":"ServiceEndpoint","id":"EID94f8abc8-efef-4d7c-9c62-1f6ee09da737","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID7ca174d1-9f18-4ea0-b869-12f51fc837e6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID7ca174d1-9f18-4ea0-b869-12f51fc837e6"}},{"type":"ServiceEndpoint","id":"EID814683cb-5278-40a6-8341-20a1c2510b7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EIDe224e823-51c5-4134-aeb9-156188d98a69","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDe224e823-51c5-4134-aeb9-156188d98a69"}},{"type":"GetParameter","id":"EIDb44c6c51-3985-48be-a968-69d27c8c2c1a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID7ea487bf-0f29-4640-9fae-a72c52d01dbc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceResponse","id":"EIDf5f8fc19-b407-4984-b649-92eeb75d79bf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDf5f8fc19-b407-4984-b649-92eeb75d79bf"}},{"type":"ServiceResponse","id":"EIDa7e2ed55-71fe-4c2e-9642-c42dcc1d6e77","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa7e2ed55-71fe-4c2e-9642-c42dcc1d6e77"}},{"type":"Message","id":"EID284bdd35-cdca-4253-b2f0-dc2a740cfec7","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID284bdd35-cdca-4253-b2f0-dc2a740cfec7"}},{"type":"GetParameter","id":"EIDb8774515-1c4a-4b8c-b95c-9d5dda463d91","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"Message","id":"EID5152e295-f646-40f9-8e19-e626111542aa","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID5152e295-f646-40f9-8e19-e626111542aa"}},{"type":"ServiceEndpoint","id":"EID132700f7-0e18-4f76-9b8a-2ef90378d1c0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7d975edd-b07d-4dd7-bec9-d741e7ab5127","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9f78b2b6-6cea-4b48-bd46-9acebb8553db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDe851b2b3-96cd-4ad0-85e1-bdf959a0b7b1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDe851b2b3-96cd-4ad0-85e1-bdf959a0b7b1"}},{"type":"ServiceResponse","id":"EIDe290de44-db5f-47db-a642-1341dc842620","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDe290de44-db5f-47db-a642-1341dc842620"}},{"type":"Message","id":"EID616b5b07-231f-4896-8ed4-04a690cfd3c5","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID616b5b07-231f-4896-8ed4-04a690cfd3c5"}},{"type":"ServiceEndpoint","id":"EID3f5ebe23-67c5-41de-b40e-e8bd3ab8a218","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1ae47b0d-0cd2-4b34-b18f-2dac25aae640","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID5a836ec3-b84f-4caa-857b-3907b8d7ad5d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID5a836ec3-b84f-4caa-857b-3907b8d7ad5d"}},{"type":"GetParameter","id":"EID0a48b78e-b971-4509-a01c-26bc2664674f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID4c3e2260-ac87-4e35-bb84-c1d2dd3cea35","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EID34c3664f-3b3f-4ab7-ab54-ddc37bcbbd45","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5060164b-52d2-4004-abd3-49f1e78523f3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID5f545e0e-a67b-4366-883f-c41d98b03310","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID2765c29c-4966-4978-964f-eac5ab10d0ad","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID82a1813c-9d08-4ffe-9898-4112dd0aec2b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID9fbb4b61-33bd-42a4-aabc-aa4b9ee8f233","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDe75682fd-6345-469f-b8d6-c2fc4f57d568","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDe75682fd-6345-469f-b8d6-c2fc4f57d568"}},{"type":"Message","id":"EID97bb84d8-4f32-4473-a456-899380e2fe74","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID97bb84d8-4f32-4473-a456-899380e2fe74"}},{"type":"ServiceEndpoint","id":"EID455470a9-4eb9-4a40-b883-4b104c6b1450","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID48c9b2fc-de3a-4caa-8618-4f4cf2d13806","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID48c9b2fc-de3a-4caa-8618-4f4cf2d13806"}},{"type":"ServiceEndpoint","id":"EID956c326d-f48c-47f1-952e-a347ec939360","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDae09ea11-d02a-4a61-aab8-6792bebfb8d5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID5031822c-e67c-4cdd-b311-7de6417bc9ec","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID5031822c-e67c-4cdd-b311-7de6417bc9ec"}},{"type":"ServiceEndpoint","id":"EID07f82bde-f9e3-4e92-86ca-1eeae8d2fbb2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID915dffdb-28f3-49e1-9db7-34c08f94e179","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID915dffdb-28f3-49e1-9db7-34c08f94e179"}},{"type":"ServiceEndpoint","id":"EID91dad01e-4a0b-49ad-a98c-c68beab4561e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDc8ebebdf-30bd-465f-93bc-e9c58e9bedd0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDc8ebebdf-30bd-465f-93bc-e9c58e9bedd0"}},{"type":"ServiceEndpoint","id":"EID574bb216-bc4b-4619-9ca5-76e448f20091","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1e29712c-f869-4f2d-96f2-c348c571788a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID366d5c2f-c9d0-4843-be22-b97dab74217c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID366d5c2f-c9d0-4843-be22-b97dab74217c"}},{"type":"Message","id":"EID2aecc301-fed7-4b5b-a741-b6673416c385","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID2aecc301-fed7-4b5b-a741-b6673416c385"}},{"type":"Message","id":"EID94cc65df-f9e7-41cc-91c3-d37369134ce5","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID94cc65df-f9e7-41cc-91c3-d37369134ce5"}},{"type":"Message","id":"EID579c75a2-6443-4a34-87fe-f891ff49cf0f","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID579c75a2-6443-4a34-87fe-f891ff49cf0f"}},{"type":"ServiceResponse","id":"EID0d0c2ccd-f7bb-4b5d-b9db-971945167deb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID0d0c2ccd-f7bb-4b5d-b9db-971945167deb"}},{"type":"ServiceResponse","id":"EID3cf89040-e5a5-48df-b904-c460a0ae2603","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID3cf89040-e5a5-48df-b904-c460a0ae2603"}},{"type":"ServiceResponse","id":"EIDa11ae6bd-f126-4f3e-8b47-f2b7f1ff58a0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa11ae6bd-f126-4f3e-8b47-f2b7f1ff58a0"}},{"type":"Message","id":"EID8915d5b1-562f-4a09-b6ca-367587908c07","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8915d5b1-562f-4a09-b6ca-367587908c07"}},{"type":"Message","id":"EID8a3e8347-4cc8-44f8-b893-17a6c7ed20d4","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID8a3e8347-4cc8-44f8-b893-17a6c7ed20d4"}},{"type":"Message","id":"EID55827216-6fcc-40e4-8b3e-4d189129d072","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID55827216-6fcc-40e4-8b3e-4d189129d072"}},{"type":"ServiceResponse","id":"EIDbfb027ff-35b1-47f2-9b6a-d27096a40638","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDbfb027ff-35b1-47f2-9b6a-d27096a40638"}},{"type":"Message","id":"EID7da07c75-3151-49a5-95d5-69921075e5a5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID7da07c75-3151-49a5-95d5-69921075e5a5"}},{"type":"Message","id":"EID420c8b0b-22ea-49ab-a2f9-017bfcb6f82f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID420c8b0b-22ea-49ab-a2f9-017bfcb6f82f"}},{"type":"Message","id":"EID55818b03-44a8-4eb8-bd69-e3a24f07beea","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID55818b03-44a8-4eb8-bd69-e3a24f07beea"}},{"type":"ServiceResponse","id":"EID1934583a-2339-40c8-8ccb-e151c068f995","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID1934583a-2339-40c8-8ccb-e151c068f995"}},{"type":"Message","id":"EID6190741f-fa8f-464f-adc6-b6be3240690e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID6190741f-fa8f-464f-adc6-b6be3240690e"}},{"type":"ServiceResponse","id":"EID75a8ed60-ce08-4c11-9e7a-55042f5ddc7d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID75a8ed60-ce08-4c11-9e7a-55042f5ddc7d"}},{"type":"Message","id":"EID43d3f503-5a7b-4d32-865d-02ed9a307862","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID43d3f503-5a7b-4d32-865d-02ed9a307862"}},{"type":"Message","id":"EID9c24d771-ca37-472c-92c0-0cd0bca73238","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID9c24d771-ca37-472c-92c0-0cd0bca73238"}},{"type":"Message","id":"EIDdd1b9dc2-1926-4068-bfff-ad473089223a","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDdd1b9dc2-1926-4068-bfff-ad473089223a"}},{"type":"GetParameter","id":"EIDeb887304-19a2-46bf-a504-c27456a7ef0d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID46cb7bd4-d95b-418b-85d1-9852a2f52ad3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"GetParameter","id":"EID6c40121f-ffde-4328-a976-8fb955c459a3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbe40becb-32a9-4434-a149-833a061402c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbe30153d-f33a-4731-bfda-0026261b3b7f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDE1X3YueG1s"},{"type":"ServiceResponse","id":"EID579a80d3-5d38-4ab5-8e89-871c99ff2fe4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID579a80d3-5d38-4ab5-8e89-871c99ff2fe4"}},{"type":"Message","id":"EID3a1ce849-4593-49e6-8e29-f5b4bce94282","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID3a1ce849-4593-49e6-8e29-f5b4bce94282"}},{"type":"Message","id":"EID0aad8af3-0c53-4586-8e8f-6d170a4c3a4f","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID0aad8af3-0c53-4586-8e8f-6d170a4c3a4f"}},{"type":"ServiceEndpoint","id":"EIDdc04622a-4327-449b-a5b2-ee4fd8044a0c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0ab4fbff-d228-4004-9b61-38f3bd8d968f","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID0ab4fbff-d228-4004-9b61-38f3bd8d968f"}},{"type":"GetParameter","id":"EID5a4d5f00-8250-4133-9659-c3772a6f2139","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDeb0228fe-aae9-4279-a3fa-491468d13126","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDd0613d38-9147-4457-8a0a-6db6741a24db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDad47f8ad-b376-4875-96d0-fca46283b162","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDad47f8ad-b376-4875-96d0-fca46283b162"}},{"type":"GetParameter","id":"EIDc08979d5-c452-4920-89bd-ede76d608391","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kZGYzM2JmZi04ZGUzLTRjY2EtYjZmNS0yNGQxOGRhYTUwMmYvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID363b409f-943a-4b63-8a8d-c60738b29e3d","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID363b409f-943a-4b63-8a8d-c60738b29e3d"}},{"type":"ServiceResponse","id":"EID3874a2d8-a1d4-4f49-a620-161eed46ce19","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID3874a2d8-a1d4-4f49-a620-161eed46ce19"}},{"type":"ServiceResponse","id":"EIDa3c6c3c2-0b4d-420d-879d-ffd0375cb6b4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EIDa3c6c3c2-0b4d-420d-879d-ffd0375cb6b4"}},{"type":"ServiceEndpoint","id":"EID93cdc8b0-ad4c-4eb4-a258-3385ad675a0e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5efbceb2-498d-401e-84a8-bc81d33b2dcd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID51db39c6-1a83-4a1d-972e-e0ed8b1fef94","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID51db39c6-1a83-4a1d-972e-e0ed8b1fef94"}},{"type":"ServiceEndpoint","id":"EIDe72496a9-e0cc-46c8-a043-8a699bc7572e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID678c7156-52b1-4af4-8c8e-f5df6a519ba7","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID2b822d95-7619-456c-83a2-0fc1d7de5f4f/Attachments/EID678c7156-52b1-4af4-8c8e-f5df6a519ba7"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:15:58Z","duration":36195,"status":"FAILED"}}}}}
11:16:56.982 [print] EIDe5747c96-0de3-452a-8d3f-9b753acc782e
11:16:56.982 [print] FAILED
11:16:56.982 [print] FAILED
11:16:56.982 [print] Conformance Class Download Service - Pre-defined Atom
11:16:56.982 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e5747c96-0de3-452a-8d3f-9b753acc782e.json
11:16:56.982 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e5747c96-0de3-452a-8d3f-9b753acc782e.json
11:16:56.982 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe5747c96-0de3-452a-8d3f-9b753acc782e/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:57.002 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:16:57.003 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:16:55.598 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:16:55.598 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:56.511 response time in milliseconds: 912.94 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:56 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223D549BC6A94 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:16:56.516 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:57.301 response time in milliseconds: 784.91 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:57 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223D57942815E 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:16:57.301 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:06:12.622 [print] testing url:https://geodata.nationaalgeoregister.nl/cbsprovincies/wfs?request=GetCapabilities
11:06:12.624 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/cbsprovincies/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:13.073 response time in milliseconds: 448.46 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:12 GMT 1 < X-Cnection: [close, close]
11:06:13.081 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/cbsprovincies/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:13.502 response time in milliseconds: 420.65 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:12 GMT 1 < X-Cnection: [close, close]
11:06:13.503 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:37.069 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2017/wfs?request=GetCapabilities"}}}
11:16:37.069 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2017/wfs?request=GetCapabilities"}}}
11:16:43.508 response time in milliseconds: 6333.42
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:43 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883803297","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:43.508 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:07:02.532 [print] testing url:https://geodata.nationaalgeoregister.nl/mosselzaadinvanginstallaties/wfs?request=GetCapabilities&service=WFS
11:07:02.534 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/mosselzaadinvanginstallaties/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:02.964 response time in milliseconds: 429.82 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:07:02 GMT 1 < X-Cnection: [close, close]
11:07:02.973 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/mosselzaadinvanginstallaties/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:03.393 response time in milliseconds: 419.27 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:07:02 GMT 1 < X-Cnection: [close, close]
11:07:03.393 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:58.339 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn/wfs?request=GetCapabilities"}}}
11:10:58.339 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn/wfs?request=GetCapabilities"}}}
11:11:01.360 response time in milliseconds: 2915.41
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:11:01 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883460895","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:11:01.361 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:06.537 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:06:06.538 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:06:17.184 response time in milliseconds: 9901.71
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:16 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:06:14 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/f727c3f4-c957-4445-a582-447584d64552.json","testRuns":{"TestRun":{"id":"EIDf727c3f4-c957-4445-a582-447584d64552","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:13.91Z","testTasks":{"TestTask":{"id":"EID67550c0f-c306-4fee-b125-00d1d36d0ec2","parent":{"ref":"EIDf727c3f4-c957-4445-a582-447584d64552"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID3bd9d4cb-d612-41b6-a033-5d972420480c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID3bd9d4cb-d612-41b6-a033-5d972420480c","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:06.988Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:10.88Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:06:17.196 [print] EIDf727c3f4-c957-4445-a582-447584d64552
11:06:17.197 [print] UNDEFINED
11:06:17.197 [print] Conformance Class Download Service - Pre-defined Atom
11:06:17.197 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/f727c3f4-c957-4445-a582-447584d64552.json
11:06:17.198 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/log
11:06:17.200 [print] statuspath TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552
11:06:17.200 [print] progresspath TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
11:06:17.201 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:17.716 response time in milliseconds: 514.26
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:06:17 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized"]}
11:06:17.717 [print] {
"val": "7",
"max": "8",
"log": [
"28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)",
"28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:06:13 - Preparing 1 Test Task:",
"28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)",
"28.10.2020 11:06:13 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:06:13 - with parameters: ",
"28.10.2020 11:06:13 - etf.testcases = *",
"28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:06:13 - Setting state to CREATED",
"28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z",
"28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:06:16 - Project Properties: ",
"28.10.2020 11:06:16 - etf.testcases - * ",
"28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:06:16 - username - ",
"28.10.2020 11:06:16 - authUser - ",
"28.10.2020 11:06:16 - authMethod - basic ",
"28.10.2020 11:06:16 - TestRunTask initialized"
]
}
11:06:17.718 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:18.234 response time in milliseconds: 515.07
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:06:18 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized"]}
11:06:18.236 retry condition not satisfied: response.val == response.max
11:06:18.236 sleeping before retry #1
11:06:23.237 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:23.761 response time in milliseconds: 522.87
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:06:23 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized"]}
11:06:23.761 retry condition not satisfied: response.val == response.max
11:06:23.761 sleeping before retry #2
11:06:28.762 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:29.304 response time in milliseconds: 541.18
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:06:29 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"53","max":"54","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized"]}
11:06:29.305 retry condition not satisfied: response.val == response.max
11:06:29.305 sleeping before retry #3
11:06:34.306 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:34.829 response time in milliseconds: 521.87
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:06:34 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"68","max":"69","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:06:34.833 retry condition not satisfied: response.val == response.max
11:06:34.833 sleeping before retry #4
11:06:39.834 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:40.359 response time in milliseconds: 524.20
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:06:40 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"137","max":"138","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:40.360 retry condition not satisfied: response.val == response.max
11:06:40.360 sleeping before retry #5
11:06:45.361 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:45.874 response time in milliseconds: 511.02
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:06:45 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:45.874 retry condition not satisfied: response.val == response.max
11:06:45.874 sleeping before retry #6
11:06:50.875 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:51.391 response time in milliseconds: 514.66
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:06:51 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:51.391 retry condition not satisfied: response.val == response.max
11:06:51.391 sleeping before retry #7
11:06:56.393 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:56.918 response time in milliseconds: 524.19
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:06:56 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:56.924 retry condition not satisfied: response.val == response.max
11:06:56.925 sleeping before retry #8
11:07:01.926 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:02.441 response time in milliseconds: 511.39
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:07:02 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:02.441 retry condition not satisfied: response.val == response.max
11:07:02.441 sleeping before retry #9
11:07:07.442 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:07.955 response time in milliseconds: 510.66
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:07:07 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:07.957 retry condition not satisfied: response.val == response.max
11:07:07.957 sleeping before retry #10
11:07:12.979 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:13.491 response time in milliseconds: 510.92
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:07:13 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:13.491 retry condition not satisfied: response.val == response.max
11:07:13.491 sleeping before retry #11
11:07:18.492 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:21.857 response time in milliseconds: 3364.36
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:07:21 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:21.857 retry condition not satisfied: response.val == response.max
11:07:21.857 sleeping before retry #12
11:07:26.858 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:27.500 response time in milliseconds: 640.88
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:07:27 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:27.500 retry condition not satisfied: response.val == response.max
11:07:27.500 sleeping before retry #13
11:07:32.501 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:33.029 response time in milliseconds: 523.69
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:07:32 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:33.029 retry condition not satisfied: response.val == response.max
11:07:33.029 sleeping before retry #14
11:07:38.031 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:38.547 response time in milliseconds: 509.85
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:07:38 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:38.549 retry condition not satisfied: response.val == response.max
11:07:38.549 sleeping before retry #15
11:07:43.550 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:44.224 response time in milliseconds: 672.81
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:07:44 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:44.233 retry condition not satisfied: response.val == response.max
11:07:44.233 sleeping before retry #16
11:07:49.234 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:49.763 response time in milliseconds: 524.55
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:07:49 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:49.764 retry condition not satisfied: response.val == response.max
11:07:49.764 sleeping before retry #17
11:07:54.765 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:55.291 response time in milliseconds: 524.58
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:07:55 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:07:55.291 retry condition not satisfied: response.val == response.max
11:07:55.291 sleeping before retry #18
11:08:00.292 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:00.806 response time in milliseconds: 512.86
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:08:00 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:00.812 retry condition not satisfied: response.val == response.max
11:08:00.812 sleeping before retry #19
11:08:05.813 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDf727c3f4-c957-4445-a582-447584d64552/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:06.335 response time in milliseconds: 520.42
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:08:06 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:06:13 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:13 UTC 2020)","28.10.2020 11:06:13 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:13 - Preparing 1 Test Task:","28.10.2020 11:06:13 - TestTask 1 (67550c0f-c306-4fee-b125-00d1d36d0ec2)","28.10.2020 11:06:13 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:13 - with parameters: ","28.10.2020 11:06:13 - etf.testcases = *","28.10.2020 11:06:13 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:13 - Setting state to CREATED","28.10.2020 11:06:13 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:14 - Starting TestRun.f727c3f4-c957-4445-a582-447584d64552 at 2020-10-28T11:06:16Z","28.10.2020 11:06:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:16 - Project Properties: ","28.10.2020 11:06:16 - etf.testcases - * ","28.10.2020 11:06:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:06:16 - username - ","28.10.2020 11:06:16 - authUser - ","28.10.2020 11:06:16 - authMethod - basic ","28.10.2020 11:06:16 - TestRunTask initialized","28.10.2020 11:06:33 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:06:38 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:07:25 ERROR Response did not meet SLA 32230/30000","28.10.2020 11:07:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:07:27 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:08:06.335 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:21.560 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-w/wfs?request=GetCapabilities"}}}
11:12:21.561 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 279
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-w/wfs?request=GetCapabilities"}}}
11:12:23.163 response time in milliseconds: 1495.52
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:22 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883542989","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:23.164 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:29.975 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:10:29.975 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:30.377 response time in milliseconds: 401.01 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:30 GMT 1 < X-Cnection: [close, close]
11:10:30.380 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:30.780 response time in milliseconds: 399.35 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:30 GMT 1 < X-Cnection: [close, close]
11:10:30.780 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:56.026 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/cp/wfs?request=GetCapabilities"}}}
11:15:56.027 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/cp/wfs?request=GetCapabilities"}}}
11:15:59.765 response time in milliseconds: 3631.10
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:59 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883759592","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:59.766 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:40.003 [print] testing url:https://geodata.nationaalgeoregister.nl/nl/rws/tn-ro/wfs?request=GetCapabilities
11:10:40.005 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-ro/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:40.407 response time in milliseconds: 401.46 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:40 GMT 1 < ETag: "1943a-5af58a6554f7f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:10:40.414 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-ro/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:40.820 response time in milliseconds: 405.31 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:40 GMT 1 < ETag: "1943a-5af58a6554f7f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:10:40.820 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:04.837 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2019/wfs?service=WFS&request=GetCapabilities"}}}
11:09:04.838 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 296
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2019/wfs?service=WFS&request=GetCapabilities"}}}
11:09:06.816 response time in milliseconds: 1873.54
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:06 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883346639","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:06.817 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:11.249 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/au/wfs?request=GetCapabilities"}}}
11:15:11.251 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/au/wfs?request=GetCapabilities"}}}
11:15:13.931 response time in milliseconds: 2574.25
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:13 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883713755","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:13.931 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:24.211 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:14:24.213 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:24.630 response time in milliseconds: 417.39 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:24 GMT 1 < X-Cnection: [close, close]
11:14:24.636 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:25.032 response time in milliseconds: 395.26 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:24 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:43.820 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wko/wfs?request=Getcapabilities"}}}
11:12:43.821 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wko/wfs?request=Getcapabilities"}}}
11:12:51.529 response time in milliseconds: 7602.41
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:51 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883571359","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:51.529 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:54.843 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/sr/wfs?request=GetCapabilities
11:10:54.847 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/sr/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:55.253 response time in milliseconds: 405.27 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:55 GMT 1 < ETag: "19004-5af58ad51b2ef-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:10:55.261 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/sr/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:55.654 response time in milliseconds: 392.67 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:55 GMT 1 < ETag: "19004-5af58ad51b2ef-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:10:55.654 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:09:32.325 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/bu/wfs?request=GetCapabilities&service=WFS
11:09:32.326 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/bu/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:32.716 response time in milliseconds: 389.50 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:32 GMT 1 < ETag: "18b3f-5af58a64dbdf8-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:09:32.724 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/bu/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:33.122 response time in milliseconds: 397.89 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:33 GMT 1 < ETag: "18b3f-5af58a64dbdf8-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:09:33.122 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:38.096 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-ro/wfs?request=GetCapabilities"}}}
11:10:38.096 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 279
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-ro/wfs?request=GetCapabilities"}}}
11:10:39.987 response time in milliseconds: 1785.65
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:39 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883439811","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:39.988 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:57.913 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/gn/wfs?&request=GetCapabilities&service=WFS"}}}
11:13:57.914 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 290
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/gn/wfs?&request=GetCapabilities&service=WFS"}}}
11:14:00.994 response time in milliseconds: 2974.02
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:00 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883640824","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:00.994 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:03.178 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:15:03.179 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:03.601 response time in milliseconds: 421.96 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:03 GMT 1 < X-Cnection: [close, close]
11:15:03.604 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:04.012 response time in milliseconds: 407.44 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:03 GMT 1 < X-Cnection: [close, close]
11:14:41.713 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:14:41.713 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:42.605 response time in milliseconds: 892.09 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:42 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223B61C83FF59 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:14:42.610 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:43.025 response time in milliseconds: 414.08 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:42 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223B6411EF6B0 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:14:43.025 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:19.376 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:15:19.379 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:15:24.076 response time in milliseconds: 3932.92
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:23 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:15:21 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/94357bbb-2bc5-48b1-a2b0-69d555c3d244.json","testRuns":{"TestRun":{"id":"EID94357bbb-2bc5-48b1-a2b0-69d555c3d244","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:15:21.089Z","testTasks":{"TestTask":{"id":"EID3e9a1e4c-a7d1-4133-8176-9dfa807c6594","parent":{"ref":"EID94357bbb-2bc5-48b1-a2b0-69d555c3d244"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDd693f2aa-0350-42d0-a8f6-e276c27523f5"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDd693f2aa-0350-42d0-a8f6-e276c27523f5","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:19.828Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:20.652Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:15:24.079 [print] EID94357bbb-2bc5-48b1-a2b0-69d555c3d244
11:15:24.079 [print] UNDEFINED
11:15:24.079 [print] Conformance Class Download Service - Pre-defined Atom
11:15:24.079 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/94357bbb-2bc5-48b1-a2b0-69d555c3d244.json
11:15:24.079 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/log
11:15:24.079 [print] statuspath TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244
11:15:24.079 [print] progresspath TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
11:15:24.080 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:24.601 response time in milliseconds: 521.02
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:15:24 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:15:21 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:21 UTC 2020)","28.10.2020 11:15:21 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:21 - Preparing 1 Test Task:","28.10.2020 11:15:21 - TestTask 1 (3e9a1e4c-a7d1-4133-8176-9dfa807c6594)","28.10.2020 11:15:21 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:21 - with parameters: ","28.10.2020 11:15:21 - etf.testcases = *","28.10.2020 11:15:21 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:21 - Setting state to CREATED","28.10.2020 11:15:21 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:21 - Starting TestRun.94357bbb-2bc5-48b1-a2b0-69d555c3d244 at 2020-10-28T11:15:23Z","28.10.2020 11:15:23 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:23 - Project Properties: ","28.10.2020 11:15:23 - etf.testcases - * ","28.10.2020 11:15:23 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:15:23 - username - ","28.10.2020 11:15:23 - authUser - ","28.10.2020 11:15:23 - authMethod - basic ","28.10.2020 11:15:23 - TestRunTask initialized"]}
11:15:24.601 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:15:21 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:21 UTC 2020)",
"28.10.2020 11:15:21 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:15:21 - Preparing 1 Test Task:",
"28.10.2020 11:15:21 - TestTask 1 (3e9a1e4c-a7d1-4133-8176-9dfa807c6594)",
"28.10.2020 11:15:21 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:15:21 - with parameters: ",
"28.10.2020 11:15:21 - etf.testcases = *",
"28.10.2020 11:15:21 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:15:21 - Setting state to CREATED",
"28.10.2020 11:15:21 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:15:21 - Starting TestRun.94357bbb-2bc5-48b1-a2b0-69d555c3d244 at 2020-10-28T11:15:23Z",
"28.10.2020 11:15:23 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:15:23 - Project Properties: ",
"28.10.2020 11:15:23 - etf.testcases - * ",
"28.10.2020 11:15:23 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:15:23 - username - ",
"28.10.2020 11:15:23 - authUser - ",
"28.10.2020 11:15:23 - authMethod - basic ",
"28.10.2020 11:15:23 - TestRunTask initialized"
]
}
11:15:24.602 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:25.110 response time in milliseconds: 507.66
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:15:25 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:15:21 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:21 UTC 2020)","28.10.2020 11:15:21 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:21 - Preparing 1 Test Task:","28.10.2020 11:15:21 - TestTask 1 (3e9a1e4c-a7d1-4133-8176-9dfa807c6594)","28.10.2020 11:15:21 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:21 - with parameters: ","28.10.2020 11:15:21 - etf.testcases = *","28.10.2020 11:15:21 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:21 - Setting state to CREATED","28.10.2020 11:15:21 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:21 - Starting TestRun.94357bbb-2bc5-48b1-a2b0-69d555c3d244 at 2020-10-28T11:15:23Z","28.10.2020 11:15:23 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:23 - Project Properties: ","28.10.2020 11:15:23 - etf.testcases - * ","28.10.2020 11:15:23 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:15:23 - username - ","28.10.2020 11:15:23 - authUser - ","28.10.2020 11:15:23 - authMethod - basic ","28.10.2020 11:15:23 - TestRunTask initialized"]}
11:15:25.110 retry condition not satisfied: response.val == response.max
11:15:25.110 sleeping before retry #1
11:15:30.111 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:30.626 response time in milliseconds: 514.51
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:15:30 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"85","max":"86","log":["28.10.2020 11:15:21 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:21 UTC 2020)","28.10.2020 11:15:21 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:21 - Preparing 1 Test Task:","28.10.2020 11:15:21 - TestTask 1 (3e9a1e4c-a7d1-4133-8176-9dfa807c6594)","28.10.2020 11:15:21 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:21 - with parameters: ","28.10.2020 11:15:21 - etf.testcases = *","28.10.2020 11:15:21 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:21 - Setting state to CREATED","28.10.2020 11:15:21 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:21 - Starting TestRun.94357bbb-2bc5-48b1-a2b0-69d555c3d244 at 2020-10-28T11:15:23Z","28.10.2020 11:15:23 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:23 - Project Properties: ","28.10.2020 11:15:23 - etf.testcases - * ","28.10.2020 11:15:23 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:15:23 - username - ","28.10.2020 11:15:23 - authUser - ","28.10.2020 11:15:23 - authMethod - basic ","28.10.2020 11:15:23 - TestRunTask initialized","28.10.2020 11:15:26 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:15:26 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:15:28 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:30.626 retry condition not satisfied: response.val == response.max
11:15:30.626 sleeping before retry #2
11:15:35.627 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:36.137 response time in milliseconds: 509.62
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:15:36 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:15:21 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:15:21 UTC 2020)","28.10.2020 11:15:21 - Resolving Executable Test Suite dependencies","28.10.2020 11:15:21 - Preparing 1 Test Task:","28.10.2020 11:15:21 - TestTask 1 (3e9a1e4c-a7d1-4133-8176-9dfa807c6594)","28.10.2020 11:15:21 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:15:21 - with parameters: ","28.10.2020 11:15:21 - etf.testcases = *","28.10.2020 11:15:21 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:15:21 - Setting state to CREATED","28.10.2020 11:15:21 - Changed state from CREATED to INITIALIZING","28.10.2020 11:15:21 - Starting TestRun.94357bbb-2bc5-48b1-a2b0-69d555c3d244 at 2020-10-28T11:15:23Z","28.10.2020 11:15:23 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:15:23 - Project Properties: ","28.10.2020 11:15:23 - etf.testcases - * ","28.10.2020 11:15:23 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:15:23 - username - ","28.10.2020 11:15:23 - authUser - ","28.10.2020 11:15:23 - authMethod - basic ","28.10.2020 11:15:23 - TestRunTask initialized","28.10.2020 11:15:26 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:15:26 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:15:28 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:32 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:15:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:35 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:35 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:35 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:35 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:15:36.139 retry condition not satisfied: response.val == response.max
11:15:36.139 sleeping before retry #3
11:15:41.140 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:43.164 response time in milliseconds: 2023.25
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:15:43 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:15:43.164 retry condition satisfied
11:15:43.164 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:15:43.165 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:54.779 response time in milliseconds: 10639.97
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:15:53 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:15:39 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/94357bbb-2bc5-48b1-a2b0-69d555c3d244.json","testRuns":{"TestRun":{"id":"EID94357bbb-2bc5-48b1-a2b0-69d555c3d244","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:15:21.089Z","testTasks":{"TestTask":{"id":"EID3e9a1e4c-a7d1-4133-8176-9dfa807c6594","parent":{"ref":"EID94357bbb-2bc5-48b1-a2b0-69d555c3d244"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDd693f2aa-0350-42d0-a8f6-e276c27523f5"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID4bee505b-063e-4c1f-97ca-b424629f9e64"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDd693f2aa-0350-42d0-a8f6-e276c27523f5","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:15:19.828Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:15:20.652Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID4bee505b-063e-4c1f-97ca-b424629f9e64","testObject":{"ref":"EIDd693f2aa-0350-42d0-a8f6-e276c27523f5"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eeb6964-0175-1000-c84d-70db290737b6","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb696d-0175-1000-a646-940a7d67da18","testStepResults":{"TestStepResult":[{"id":"EID6eeb6972-0175-1000-238c-76ec70913861","parent":{"ref":"EID6eeb696d-0175-1000-a646-940a7d67da18"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:15:23Z","duration":17,"status":"PASSED"},{"id":"EID6eeb6983-0175-1000-9b42-c7ccd3ea5e2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb6a53-0175-1000-9cfa-aab9ebc90f11","parent":{"ref":"EID6eeb6983-0175-1000-9b42-c7ccd3ea5e2a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6a53-0175-1000-7183-a28b6f25ff09","parent":{"ref":"EID6eeb6983-0175-1000-9b42-c7ccd3ea5e2a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6a53-0175-1000-6e81-619e01978437","parent":{"ref":"EID6eeb6983-0175-1000-9b42-c7ccd3ea5e2a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6a53-0175-1000-94b2-09283652d566","parent":{"ref":"EID6eeb6983-0175-1000-9b42-c7ccd3ea5e2a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcdb4026f-22bf-458b-aa2b-cb6673ad1f9e"},{"ref":"EID85b5b256-0262-41dd-92b3-e2940610cf40"},{"ref":"EID82c95ef0-b4d8-49e2-a6e4-ed9cd1692024"}]},"parent":{"ref":"EID6eeb696d-0175-1000-a646-940a7d67da18"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:15:23Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6964-0175-1000-c84d-70db290737b6"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:15:23Z","duration":230,"status":"PASSED"},{"id":"EID6eeb6a5d-0175-1000-aac2-ef05f8bb4084","testStepResults":{"TestStepResult":{"id":"EID6eeb6a5d-0175-1000-98bc-15677f3c76d2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb6b29-0175-1000-980c-e4d17c29a8ad","parent":{"ref":"EID6eeb6a5d-0175-1000-98bc-15677f3c76d2"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6b29-0175-1000-2d34-c0545c11c118","parent":{"ref":"EID6eeb6a5d-0175-1000-98bc-15677f3c76d2"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6b29-0175-1000-babd-84dd38bb316e","parent":{"ref":"EID6eeb6a5d-0175-1000-98bc-15677f3c76d2"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDce9fbedf-716e-41f6-a284-38d598071641"},{"ref":"EID126e8050-99bb-4f73-b583-ae170675f188"},{"ref":"EID63a01811-6e5c-4756-8ce9-fbac7720a5e3"}]},"parent":{"ref":"EID6eeb6a5d-0175-1000-aac2-ef05f8bb4084"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:15:23Z","duration":98,"status":"PASSED"}},"parent":{"ref":"EID6eeb6964-0175-1000-c84d-70db290737b6"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:15:23Z","duration":204,"status":"PASSED"}]},"parent":{"ref":"EID4bee505b-063e-4c1f-97ca-b424629f9e64"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:15:23Z","duration":453,"status":"PASSED"},{"id":"EID6eeb6b29-0175-1000-fedf-400453db77e7","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb6b29-0175-1000-7c96-37dc957a6fd2","testStepResults":{"TestStepResult":[{"id":"EID6eeb6b29-0175-1000-30a6-0c80fb0c98b4","parent":{"ref":"EID6eeb6b29-0175-1000-7c96-37dc957a6fd2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:15:23Z","duration":98,"status":"PASSED"},{"id":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb6c0d-0175-1000-54c8-bffe0b6988de","parent":{"ref":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6c0d-0175-1000-0cd5-096ccda4ea78","parent":{"ref":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6c0d-0175-1000-b40b-46526eb18212","parent":{"ref":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6c0d-0175-1000-e0a8-82825295e02f","parent":{"ref":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6c0d-0175-1000-9e64-0fa2f047e0f0","parent":{"ref":"EID6eeb6b29-0175-1000-dbbe-1d6eaf9d69b0"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:15:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID65a26882-d50d-4f2c-a62a-b43f3e1b55eb"},{"ref":"EIDd66fa7e3-b326-472f-8f4f-4075d69e1a32"},{"ref":"EID98d7afcb-accd-4b15-b1ec-c26898bb5530"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-7c96-37dc957a6fd2"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:15:23Z","duration":119,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:15:23Z","duration":228,"status":"PASSED"},{"id":"EID6eeb6c0d-0175-1000-3d21-960006fd04b7","testStepResults":{"TestStepResult":[{"id":"EID6eeb6c6b-0175-1000-ce4e-3a609dd139ee","attachments":{"attachment":[{"ref":"EIDb07db163-411e-4b9d-bda7-d5efb847cf2f"},{"ref":"EID96b3a1e8-a4d6-4cec-bf9b-f433a9003b06"}]},"parent":{"ref":"EID6eeb6c0d-0175-1000-3d21-960006fd04b7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:15:23Z","duration":214,"status":"PASSED"},{"id":"EID6eeb6d68-0175-1000-5b1b-94f101ad5754","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb6e31-0175-1000-20bf-e8760f92587c","parent":{"ref":"EID6eeb6d68-0175-1000-5b1b-94f101ad5754"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6e31-0175-1000-5d41-0e6b0a2e2a6b","parent":{"ref":"EID6eeb6d68-0175-1000-5b1b-94f101ad5754"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6e31-0175-1000-0714-33bb0d9d8c69","parent":{"ref":"EID6eeb6d68-0175-1000-5b1b-94f101ad5754"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6e31-0175-1000-680d-9b2872d5c98b","parent":{"ref":"EID6eeb6d68-0175-1000-5b1b-94f101ad5754"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8d87a622-b5f3-40fa-b3ed-ce3f80ea46f0"},{"ref":"EID35f49261-090f-481a-ba57-17e7b6cf1e7e"},{"ref":"EID83deaf22-646b-4220-a8c6-3e23cde09c5f"}]},"parent":{"ref":"EID6eeb6c0d-0175-1000-3d21-960006fd04b7"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:15:24Z","duration":52,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:15:23Z","duration":548,"status":"PASSED"},{"id":"EID6eeb6e31-0175-1000-d93b-75ad20bce985","testStepResults":{"TestStepResult":[{"id":"EID6eeb6e3b-0175-1000-ade8-4e55dcd9fbb1","attachments":{"attachment":[{"ref":"EID10128c34-72d2-4c8d-8cda-5e741b9f7c53"},{"ref":"EID9814a4ff-ba59-4b58-843b-b302c1e20242"}]},"parent":{"ref":"EID6eeb6e31-0175-1000-d93b-75ad20bce985"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:15:24Z","duration":120,"status":"PASSED"},{"id":"EID6eeb6edc-0175-1000-347b-d6604bce5d86","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb6fb0-0175-1000-fd33-dfaa5d6fe5c7","parent":{"ref":"EID6eeb6edc-0175-1000-347b-d6604bce5d86"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6fb0-0175-1000-b937-56b34630c02f","parent":{"ref":"EID6eeb6edc-0175-1000-347b-d6604bce5d86"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6fb0-0175-1000-b66e-e2ba14a9116e","parent":{"ref":"EID6eeb6edc-0175-1000-347b-d6604bce5d86"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6fb0-0175-1000-0fcb-c9c4582f41ae","parent":{"ref":"EID6eeb6edc-0175-1000-347b-d6604bce5d86"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb6fb0-0175-1000-a74f-9f8c7d539bfd","parent":{"ref":"EID6eeb6edc-0175-1000-347b-d6604bce5d86"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID44442df1-6205-45d1-994a-2fbc1bceff3d"},{"ref":"EID2b215569-13e5-4fa0-9fb5-27257063e78f"},{"ref":"EID8c666e8c-6e04-4cdb-95ca-ef807a1674d8"}]},"parent":{"ref":"EID6eeb6e31-0175-1000-d93b-75ad20bce985"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:15:24Z","duration":95,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:15:24Z","duration":383,"status":"PASSED"},{"id":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45","testStepResults":{"TestStepResult":[{"id":"EID6eeb6fb9-0175-1000-f26c-6068dcffd1c8","attachments":{"attachment":[{"ref":"EID19cfabfd-3281-46a4-b221-cc488b9ffdc4"},{"ref":"EID28e62f55-dec3-4460-a0a5-dbb057e934aa"}]},"parent":{"ref":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:15:24Z","duration":165,"status":"PASSED"},{"id":"EID6eeb7092-0175-1000-005c-3350bc17a62d","parent":{"ref":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:15:24Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7092-0175-1000-d2ba-48f714adb9a4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7188-0175-1000-9f8a-95da5e5e3cb6","parent":{"ref":"EID6eeb7092-0175-1000-d2ba-48f714adb9a4"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7188-0175-1000-ec3a-0a8639c954aa","parent":{"ref":"EID6eeb7092-0175-1000-d2ba-48f714adb9a4"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7188-0175-1000-7b45-00e28c8f89b2","parent":{"ref":"EID6eeb7092-0175-1000-d2ba-48f714adb9a4"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7188-0175-1000-c8cb-09a96c44963b","parent":{"ref":"EID6eeb7092-0175-1000-d2ba-48f714adb9a4"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5bdbe61d-cd7c-4ed0-ad2d-d2de82e50666"},{"ref":"EIDc7326c8f-edd0-4aee-aec9-58691cc0f1cc"},{"ref":"EIDcd60cf68-8baa-4586-9bd1-b61dfdfd3dbb"}]},"parent":{"ref":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:15:24Z","duration":79,"status":"PASSED"},{"id":"EID6eeb719e-0175-1000-2120-ee53cf9baa14","attachments":{"attachment":{"ref":"EID9b6463bd-0bbf-482d-b8dc-b5d7b10f3925"}},"parent":{"ref":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:15:25Z","duration":2,"status":"PASSED"},{"id":"EID6eeb71ae-0175-1000-be92-c9092e0a5845","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7272-0175-1000-dd9b-0349aa22c4d3","parent":{"ref":"EID6eeb71ae-0175-1000-be92-c9092e0a5845"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7272-0175-1000-85ef-ad7571f5cfc3","parent":{"ref":"EID6eeb71ae-0175-1000-be92-c9092e0a5845"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7272-0175-1000-4fd2-444ee800fd13","parent":{"ref":"EID6eeb71ae-0175-1000-be92-c9092e0a5845"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7272-0175-1000-44cb-6f3bd12e458a","parent":{"ref":"EID6eeb71ae-0175-1000-be92-c9092e0a5845"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7272-0175-1000-d645-d8cc2fa4e287","parent":{"ref":"EID6eeb71ae-0175-1000-be92-c9092e0a5845"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6dc1e4e5-0a7a-4678-b693-a0f4fbd56d31"},{"ref":"EIDc4a5076d-a483-4352-90c5-baca12deeca8"},{"ref":"EIDfdd10526-96fe-47c0-a6bd-6c59ea070fc6"}]},"parent":{"ref":"EID6eeb6fb9-0175-1000-24f4-71a6514adb45"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:15:25Z","duration":51,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:15:24Z","duration":697,"status":"PASSED"},{"id":"EID6eeb727a-0175-1000-6d92-ccbdfd7f1741","testStepResults":{"TestStepResult":[{"id":"EID6eeb727a-0175-1000-b6e7-11ba89b20410","attachments":{"attachment":[{"ref":"EID7d3f46a7-13a8-4b96-a04c-c3455bc7d1d8"},{"ref":"EIDe36d8e48-6cc7-46fa-9a3e-873d6d84447e"}]},"parent":{"ref":"EID6eeb727a-0175-1000-6d92-ccbdfd7f1741"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:15:25Z","duration":171,"status":"PASSED"},{"id":"EID6eeb7352-0175-1000-f65d-52400a4044b0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb73ea-0175-1000-4bb8-a7a0276788aa","parent":{"ref":"EID6eeb7352-0175-1000-f65d-52400a4044b0"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb73ea-0175-1000-aa29-4b0073e40d3e","parent":{"ref":"EID6eeb7352-0175-1000-f65d-52400a4044b0"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb73ea-0175-1000-234f-63b8e55cf288","parent":{"ref":"EID6eeb7352-0175-1000-f65d-52400a4044b0"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"},{"id":"EID6eeb73ea-0175-1000-87bd-2f889c8261b4","parent":{"ref":"EID6eeb7352-0175-1000-f65d-52400a4044b0"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:15:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8608a52-6a39-44cf-a035-d9181e80c936"},{"ref":"EID0a03498b-6b64-4ebd-b5a2-e5ce1a1bf739"},{"ref":"EIDa38091c7-7562-4e31-8d31-875e0d99e389"}]},"parent":{"ref":"EID6eeb727a-0175-1000-6d92-ccbdfd7f1741"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:15:25Z","duration":48,"status":"PASSED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:15:25Z","duration":368,"status":"PASSED"},{"id":"EID6eeb73f9-0175-1000-2917-a8734ca5707c","testStepResults":{"TestStepResult":[{"id":"EID6eeb73fa-0175-1000-b901-25487a032e47","attachments":{"attachment":[{"ref":"EID7a71f298-63ad-4f4c-8556-9f0eb13bdf68"},{"ref":"EID754c5025-7e0b-4722-b516-995d133f984c"}]},"parent":{"ref":"EID6eeb73f9-0175-1000-2917-a8734ca5707c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:15:25Z","duration":315,"status":"PASSED"},{"id":"EID6eeb7569-0175-1000-7f86-8d203a8c619c","parent":{"ref":"EID6eeb73f9-0175-1000-2917-a8734ca5707c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7569-0175-1000-efb8-635e6d14c0d4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7641-0175-1000-a594-80e6d523ef22","parent":{"ref":"EID6eeb7569-0175-1000-efb8-635e6d14c0d4"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7641-0175-1000-3aab-90b6272bcf6d","parent":{"ref":"EID6eeb7569-0175-1000-efb8-635e6d14c0d4"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7641-0175-1000-e44a-a8fb2308e094","parent":{"ref":"EID6eeb7569-0175-1000-efb8-635e6d14c0d4"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7641-0175-1000-5dd2-6f5a6d9ee313","parent":{"ref":"EID6eeb7569-0175-1000-efb8-635e6d14c0d4"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfc74716b-171a-4e03-a92f-07b7625aad78"},{"ref":"EID93db1c52-e080-4887-b39c-3898e10396b9"},{"ref":"EID236b4fbd-1266-4508-84ef-1911ddbcb1a0"}]},"parent":{"ref":"EID6eeb73f9-0175-1000-2917-a8734ca5707c"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:15:26Z","duration":87,"status":"PASSED"},{"id":"EID6eeb764a-0175-1000-680b-6e0ffd4d0e24","attachments":{"attachment":{"ref":"EID4b217f67-bb9a-4758-ba92-dc666c94a6fe"}},"parent":{"ref":"EID6eeb73f9-0175-1000-2917-a8734ca5707c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:15:26Z","duration":3,"status":"PASSED"},{"id":"EID6eeb765b-0175-1000-a21c-6901b0c72ac5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb77b4-0175-1000-16d1-ed0945ac1558","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb765b-0175-1000-a21c-6901b0c72ac5"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:15:26Z","duration":13,"status":"FAILED"},{"id":"EID6eeb77c1-0175-1000-035c-d0ee642cfab9","parent":{"ref":"EID6eeb765b-0175-1000-a21c-6901b0c72ac5"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"PASSED"},{"id":"EID6eeb77c1-0175-1000-602b-3ef5574433ed","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6eeb765b-0175-1000-a21c-6901b0c72ac5"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:15:26Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID03e8ad78-3c8d-4a95-a90a-6c77bd11f61f"},{"ref":"EIDbbf6aba8-3335-4f31-9c4b-eec4899cfe97"},{"ref":"EID3d824aea-ee6e-4dee-904d-0501bbd1dd03"}]},"parent":{"ref":"EID6eeb73f9-0175-1000-2917-a8734ca5707c"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:15:26Z","duration":267,"status":"FAILED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:15:25Z","duration":968,"status":"FAILED"},{"id":"EID6eeb77e6-0175-1000-c5d8-eef4d8667be8","testStepResults":{"TestStepResult":[{"id":"EID6eeb77e6-0175-1000-5867-cc3bb7476cf9","attachments":{"attachment":[{"ref":"EID9ea73fab-dd20-427f-bd3b-4f012517a60a"},{"ref":"EIDc8a366a4-f480-42cf-82ed-d2e9c631edd5"}]},"parent":{"ref":"EID6eeb77e6-0175-1000-c5d8-eef4d8667be8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:15:26Z","duration":145,"status":"PASSED"},{"id":"EID6eeb78aa-0175-1000-4e43-27dbdcb34fd0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7969-0175-1000-4db2-1f14abb75c4f","parent":{"ref":"EID6eeb78aa-0175-1000-4e43-27dbdcb34fd0"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7969-0175-1000-a7cf-d6eb7dc82c75","parent":{"ref":"EID6eeb78aa-0175-1000-4e43-27dbdcb34fd0"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7969-0175-1000-3e9b-e939c2805c26","parent":{"ref":"EID6eeb78aa-0175-1000-4e43-27dbdcb34fd0"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7969-0175-1000-59c5-acbcece9b4a8","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb78aa-0175-1000-4e43-27dbdcb34fd0"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID79970ccc-6b80-40f9-a092-5bfd3c985860"},{"ref":"EID89db7513-6ea7-493c-8a5b-b0ee076a1736"},{"ref":"EID1c250a2c-f32b-48be-8f34-13c4d83432b5"}]},"parent":{"ref":"EID6eeb77e6-0175-1000-c5d8-eef4d8667be8"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:15:27Z","duration":78,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:15:26Z","duration":399,"status":"PASSED_MANUAL"},{"id":"EID6eeb7976-0175-1000-b589-30de916ee0fc","testStepResults":{"TestStepResult":{"id":"EID6eeb7976-0175-1000-01b4-a75796a6108b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7a41-0175-1000-466c-d8df49c42fb7","parent":{"ref":"EID6eeb7976-0175-1000-01b4-a75796a6108b"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7a41-0175-1000-e69b-f77d17710a53","parent":{"ref":"EID6eeb7976-0175-1000-01b4-a75796a6108b"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7a41-0175-1000-73c8-f837beddd20e","parent":{"ref":"EID6eeb7976-0175-1000-01b4-a75796a6108b"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7a41-0175-1000-44f8-6740765eb34f","parent":{"ref":"EID6eeb7976-0175-1000-01b4-a75796a6108b"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4923674-cb15-47f5-aca7-0fbeff019333"},{"ref":"EID0dd49f44-0e81-46d7-a1fd-363e80d7de67"},{"ref":"EIDe41d2de4-95e9-41ae-a860-bb412b388a49"}]},"parent":{"ref":"EID6eeb7976-0175-1000-b589-30de916ee0fc"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:15:27Z","duration":74,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:15:27Z","duration":252,"status":"PASSED"},{"id":"EID6eeb7a73-0175-1000-f818-b4b978b56d26","testStepResults":{"TestStepResult":{"id":"EID6eeb7a73-0175-1000-213a-15d98774d52a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7b4d-0175-1000-30f0-94f97f34de7f","parent":{"ref":"EID6eeb7a73-0175-1000-213a-15d98774d52a"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7b4d-0175-1000-c6b9-9cbbbfcbb36c","parent":{"ref":"EID6eeb7a73-0175-1000-213a-15d98774d52a"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7b4d-0175-1000-bc7d-7d8b04b4c311","parent":{"ref":"EID6eeb7a73-0175-1000-213a-15d98774d52a"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7b4d-0175-1000-da31-f1e8123ae146","parent":{"ref":"EID6eeb7a73-0175-1000-213a-15d98774d52a"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:15:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe0ef053d-4500-4ef2-9a25-32a249be5a51"},{"ref":"EID65f72e5e-394d-4c96-b149-4693822f8ef6"},{"ref":"EIDc8a212ed-8339-42cb-8170-7be2102bc8e2"}]},"parent":{"ref":"EID6eeb7a73-0175-1000-f818-b4b978b56d26"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:15:27Z","duration":87,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:15:27Z","duration":227,"status":"PASSED"},{"id":"EID6eeb7b56-0175-1000-bfd9-cd6ea2b9ccb2","testStepResults":{"TestStepResult":{"id":"EID6eeb7b56-0175-1000-c145-9b7b93d72f8e","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EIDdc494c59-1f52-485e-b633-743dfda88798"},{"ref":"EIDdac60dac-d18a-4f5d-9504-3291c9a44ed8"},{"ref":"EID747f8224-3c30-4252-a40a-dc9a64b11a37"},{"ref":"EID40b5d41a-c66e-4a31-83e6-273b046940a5"},{"ref":"EID4a83d52b-48e5-4c49-8367-f83fe38a1abf"},{"ref":"EID7f8382c5-a335-48e0-8fda-17ed20f9a833"},{"ref":"EIDb1876de5-32ea-43c0-98d0-64bcda2f7573"},{"ref":"EIDa1178553-e3cc-417b-9bc3-cde5372ca77f"},{"ref":"EIDbdc28154-2c7a-4bba-a889-46cef99d0dbf"}]},"parent":{"ref":"EID6eeb7b56-0175-1000-bfd9-cd6ea2b9ccb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:15:27Z","duration":629,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:15:27Z","duration":731,"status":"SKIPPED"},{"id":"EID6eeb7e31-0175-1000-f833-4dcace6789ba","testStepResults":{"TestStepResult":{"id":"EID6eeb7e31-0175-1000-99eb-088ee852f707","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb7f3a-0175-1000-d133-e8d9b86582e9","parent":{"ref":"EID6eeb7e31-0175-1000-99eb-088ee852f707"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7f3a-0175-1000-ae05-233f8fa242e6","parent":{"ref":"EID6eeb7e31-0175-1000-99eb-088ee852f707"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7f3a-0175-1000-9bca-5c23505dd387","parent":{"ref":"EID6eeb7e31-0175-1000-99eb-088ee852f707"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb7f3a-0175-1000-262a-700aa4589f91","parent":{"ref":"EID6eeb7e31-0175-1000-99eb-088ee852f707"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8ff50e07-6386-4db5-8086-099f1ef5b418"},{"ref":"EIDc506af26-5eea-4680-be09-735ed2f55831"},{"ref":"EID68b30eac-c743-4be7-a7b3-8217ec2c843d"}]},"parent":{"ref":"EID6eeb7e31-0175-1000-f833-4dcace6789ba"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:15:28Z","duration":44,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:15:28Z","duration":275,"status":"PASSED"},{"id":"EID6eeb7f44-0175-1000-788f-59ee5d0a9fcc","testStepResults":{"TestStepResult":{"id":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8049-0175-1000-1bd6-cdf2e93a0d82","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8049-0175-1000-a525-2e6c7178f94a","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8049-0175-1000-b644-3953f286a2e8","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8049-0175-1000-cfd5-d03feabce591","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8049-0175-1000-aeb4-59ccb9fc2fd9","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8049-0175-1000-8716-e014582e9c5e","parent":{"ref":"EID6eeb7f44-0175-1000-3bee-4e5df54e91a9"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:15:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID250430f3-ccd8-4cbb-bf63-b02fe6682868"},{"ref":"EIDe617d99b-ee11-4b6d-a52b-90fd527b3313"},{"ref":"EID3b75e11e-fd45-425e-99f5-25df4c5d0800"}]},"parent":{"ref":"EID6eeb7f44-0175-1000-788f-59ee5d0a9fcc"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:15:28Z","duration":64,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:15:28Z","duration":261,"status":"PASSED"},{"id":"EID6eeb804a-0175-1000-98bd-902a1fbfa52d","testStepResults":{"TestStepResult":{"id":"EID6eeb804a-0175-1000-0d39-83e211d2da5a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb814c-0175-1000-c12b-b9f783527e5f","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb814c-0175-1000-c496-ae3b5be58f3b","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb814c-0175-1000-8ef3-727f1070a170","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb814c-0175-1000-5f5e-4a57de199a46","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb814c-0175-1000-ce63-eeeea711d90a","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb814c-0175-1000-cd24-956df8794b15","parent":{"ref":"EID6eeb804a-0175-1000-0d39-83e211d2da5a"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID25ec2d58-27f8-44c2-a54d-9a4aacbac91e"},{"ref":"EID945b4a7a-2374-41e3-820d-080d25bcfa8b"},{"ref":"EID1ac2ddc9-57bc-4459-bf92-39511b090e2c"}]},"parent":{"ref":"EID6eeb804a-0175-1000-98bd-902a1fbfa52d"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:15:28Z","duration":104,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:15:28Z","duration":267,"status":"PASSED"},{"id":"EID6eeb8155-0175-1000-351d-e9d78a064ce7","testStepResults":{"TestStepResult":{"id":"EID6eeb8155-0175-1000-dbdb-3945f3c7aa9a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb823d-0175-1000-2ac9-51df35379c73","parent":{"ref":"EID6eeb8155-0175-1000-dbdb-3945f3c7aa9a"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb823d-0175-1000-b6a8-fc0bbabed063","parent":{"ref":"EID6eeb8155-0175-1000-dbdb-3945f3c7aa9a"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb823d-0175-1000-3bea-afad910e7fb0","parent":{"ref":"EID6eeb8155-0175-1000-dbdb-3945f3c7aa9a"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"},{"id":"EID6eeb823d-0175-1000-20ec-19658c87c81f","parent":{"ref":"EID6eeb8155-0175-1000-dbdb-3945f3c7aa9a"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:15:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa8df73fd-7b60-4aed-a6e3-195994276106"},{"ref":"EIDc436ef78-c321-490c-bd94-d410f18746cf"},{"ref":"EID5bdb0f89-c0c3-4bf9-bb37-48d10bc0113e"}]},"parent":{"ref":"EID6eeb8155-0175-1000-351d-e9d78a064ce7"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:15:29Z","duration":118,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:15:29Z","duration":232,"status":"PASSED"},{"id":"EID6eeb823d-0175-1000-dcd4-772bb6171259","testStepResults":{"TestStepResult":[{"id":"EID6eeb823d-0175-1000-dbe0-98c8238ccb60","attachments":{"attachment":[{"ref":"EIDa16fc02a-510f-44a9-8e70-ba5aab18f2df"},{"ref":"EID4c01ccd6-81e5-405f-915a-601f7e9cb785"},{"ref":"EIDeaaba32f-399a-447d-b4fa-cc733c51b791"},{"ref":"EID61002d56-18ae-4f13-b4bf-83ac3e2bdf1f"}]},"parent":{"ref":"EID6eeb823d-0175-1000-dcd4-772bb6171259"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:15:29Z","duration":377,"status":"PASSED"},{"id":"EID6eeb83e8-0175-1000-09bf-b7ed88fc2d4a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb84e4-0175-1000-0325-3506568ed3a2","parent":{"ref":"EID6eeb83e8-0175-1000-09bf-b7ed88fc2d4a"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb84e4-0175-1000-51da-e0ec3594721e","parent":{"ref":"EID6eeb83e8-0175-1000-09bf-b7ed88fc2d4a"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb84e4-0175-1000-1cee-a929c0f3c88b","parent":{"ref":"EID6eeb83e8-0175-1000-09bf-b7ed88fc2d4a"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb84e4-0175-1000-5cd4-8b776e41ed19","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6eeb83e8-0175-1000-09bf-b7ed88fc2d4a"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9155669f-299b-4e23-9835-daadf397d694"},{"ref":"EID99b12f2e-fd5b-48ac-9285-4e113890d43c"},{"ref":"EID26254934-68f6-473b-a70a-7dac924254de"}]},"parent":{"ref":"EID6eeb823d-0175-1000-dcd4-772bb6171259"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:15:29Z","duration":111,"status":"FAILED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:15:29Z","duration":679,"status":"FAILED"},{"id":"EID6eeb84e4-0175-1000-f762-768682d2ce74","testStepResults":{"TestStepResult":{"id":"EID6eeb84e4-0175-1000-9853-8169ed8f7148","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8586-0175-1000-628f-780e6d987927","parent":{"ref":"EID6eeb84e4-0175-1000-9853-8169ed8f7148"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8586-0175-1000-842c-729f090512e6","parent":{"ref":"EID6eeb84e4-0175-1000-9853-8169ed8f7148"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8586-0175-1000-270b-d6debf74e6ea","parent":{"ref":"EID6eeb84e4-0175-1000-9853-8169ed8f7148"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8586-0175-1000-cc39-0da4cfdf6401","parent":{"ref":"EID6eeb84e4-0175-1000-9853-8169ed8f7148"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb5c30a4f-74d0-47a7-adb8-a2a2b63702af"},{"ref":"EIDdaa098ad-8968-4707-a947-2ac7da7ccb03"},{"ref":"EID8062c009-29dc-43cf-8727-b022f453adee"}]},"parent":{"ref":"EID6eeb84e4-0175-1000-f762-768682d2ce74"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:15:30Z","duration":42,"status":"PASSED"}},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:15:30Z","duration":162,"status":"PASSED"},{"id":"EID6eeb8586-0175-1000-d9a5-3422f26207bc","testStepResults":{"TestStepResult":[{"id":"EID6eeb8591-0175-1000-bcbb-6faebceb575d","parent":{"ref":"EID6eeb8586-0175-1000-d9a5-3422f26207bc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8591-0175-1000-0609-1c17abb094de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8667-0175-1000-8d74-1fce1a82ed98","parent":{"ref":"EID6eeb8591-0175-1000-0609-1c17abb094de"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8667-0175-1000-9a19-166bdaee7c94","parent":{"ref":"EID6eeb8591-0175-1000-0609-1c17abb094de"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8667-0175-1000-df40-0961e8c5108e","parent":{"ref":"EID6eeb8591-0175-1000-0609-1c17abb094de"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8667-0175-1000-12fe-e7ceeae1c62c","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eeb8591-0175-1000-0609-1c17abb094de"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID55727533-3873-4314-a6d1-114dc6a05e80"},{"ref":"EIDc2dec0e4-663d-4a04-a78b-417b523450c4"},{"ref":"EID42486234-86e5-42fb-ad26-07f0ef6ece1d"}]},"parent":{"ref":"EID6eeb8586-0175-1000-d9a5-3422f26207bc"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:15:30Z","duration":41,"status":"FAILED"}]},"parent":{"ref":"EID6eeb6b29-0175-1000-fedf-400453db77e7"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:15:30Z","duration":226,"status":"FAILED"}]},"parent":{"ref":"EID4bee505b-063e-4c1f-97ca-b424629f9e64"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:15:23Z","duration":6975,"status":"FAILED"},{"id":"EID6eeb8668-0175-1000-ab77-29ce12e540fe","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb8668-0175-1000-114a-d8c3297f323f","testStepResults":{"TestStepResult":[{"id":"EID6eeb8668-0175-1000-d29b-e5699f15fa6d","parent":{"ref":"EID6eeb8668-0175-1000-114a-d8c3297f323f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8668-0175-1000-23af-15b65c741b36","parent":{"ref":"EID6eeb8668-0175-1000-114a-d8c3297f323f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:15:30Z","duration":42,"status":"PASSED"},{"id":"EID6eeb8668-0175-1000-ac76-37bcff5af14a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8734-0175-1000-9588-7c50bb4f5a0f","parent":{"ref":"EID6eeb8668-0175-1000-ac76-37bcff5af14a"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8734-0175-1000-25b5-32eadebe8f52","parent":{"ref":"EID6eeb8668-0175-1000-ac76-37bcff5af14a"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8734-0175-1000-4096-6a1226cd3361","parent":{"ref":"EID6eeb8668-0175-1000-ac76-37bcff5af14a"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID51fddd6b-4057-4a01-8589-4adb01ff5148"},{"ref":"EIDa87e37a3-b455-4afb-b1e0-4e396e764ccd"},{"ref":"EIDc4c194cc-acab-421b-a180-818cf7faa57c"}]},"parent":{"ref":"EID6eeb8668-0175-1000-114a-d8c3297f323f"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:15:30Z","duration":96,"status":"PASSED"},{"id":"EID6eeb8740-0175-1000-79e4-826c78385236","attachments":{"attachment":{"ref":"EID45c9659d-2cbd-4bbb-bad4-d53bcf965a58"}},"parent":{"ref":"EID6eeb8668-0175-1000-114a-d8c3297f323f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb874d-0175-1000-fd48-60179a86909d","parent":{"ref":"EID6eeb8668-0175-1000-114a-d8c3297f323f"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:15:30Z","duration":37,"status":"PASSED"}]},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:15:30Z","duration":266,"status":"PASSED"},{"id":"EID6eeb8772-0175-1000-cb2a-e4fe5947f07a","testStepResults":{"TestStepResult":[{"id":"EID6eeb8772-0175-1000-9c21-903d33840996","parent":{"ref":"EID6eeb8772-0175-1000-cb2a-e4fe5947f07a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:15:30Z","duration":98,"status":"PASSED"},{"id":"EID6eeb8772-0175-1000-4721-d1dc3423689f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb87de-0175-1000-f21f-a7692f398242","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8772-0175-1000-4721-d1dc3423689f"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:15:30Z","duration":11,"status":"FAILED"},{"id":"EID6eeb87ea-0175-1000-3065-bd3042945e84","parent":{"ref":"EID6eeb8772-0175-1000-4721-d1dc3423689f"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb87ea-0175-1000-a313-6925737760c1","parent":{"ref":"EID6eeb8772-0175-1000-4721-d1dc3423689f"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"PASSED"},{"id":"EID6eeb87ea-0175-1000-ba81-afc485836b08","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6eeb8772-0175-1000-4721-d1dc3423689f"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"FAILED"},{"id":"EID6eeb87ea-0175-1000-fcae-f06e3d2a9f9f","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6eeb8772-0175-1000-4721-d1dc3423689f"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:15:30Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID263dfce3-f2f3-46a0-9abd-c248a209f47b"},{"ref":"EID902210dc-7934-4b0e-9e6f-4b38c39ac0c0"},{"ref":"EIDeb4a357b-4cdb-4c74-9a7c-932eecc09b70"}]},"parent":{"ref":"EID6eeb8772-0175-1000-cb2a-e4fe5947f07a"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:15:30Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:15:30Z","duration":129,"status":"FAILED"},{"id":"EID6eeb87f4-0175-1000-d0d0-25ff9bf641f4","testStepResults":{"TestStepResult":{"id":"EID6eeb87f4-0175-1000-7cf6-a9cac1954056","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb884d-0175-1000-7c16-6a0fd92fd218","parent":{"ref":"EID6eeb87f4-0175-1000-7cf6-a9cac1954056"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb884d-0175-1000-f3ff-5aa0e03ce216","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb87f4-0175-1000-7cf6-a9cac1954056"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:15:31Z","duration":13,"status":"FAILED"},{"id":"EID6eeb885a-0175-1000-f53e-dd63eaefc3b3","parent":{"ref":"EID6eeb87f4-0175-1000-7cf6-a9cac1954056"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6c0ea674-51e0-44e6-ae6d-9c767fece3e3"},{"ref":"EID76394ce9-91de-4a66-85f8-9c216812fac7"},{"ref":"EID7e50ac75-9057-41a0-a1f1-554d42d5d05b"}]},"parent":{"ref":"EID6eeb87f4-0175-1000-d0d0-25ff9bf641f4"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:15:30Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:15:30Z","duration":102,"status":"FAILED"},{"id":"EID6eeb885a-0175-1000-94b4-c9c5836580c7","testStepResults":{"TestStepResult":{"id":"EID6eeb885a-0175-1000-90e9-e55ca8c0f917","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8908-0175-1000-9009-dd5345caa04e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeb885a-0175-1000-90e9-e55ca8c0f917"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"FAILED"},{"id":"EID6eeb8908-0175-1000-86d4-6f45521cf58d","parent":{"ref":"EID6eeb885a-0175-1000-90e9-e55ca8c0f917"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8908-0175-1000-eaac-41bd36a9680f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb885a-0175-1000-90e9-e55ca8c0f917"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:15:31Z","duration":12,"status":"FAILED"},{"id":"EID6eeb8914-0175-1000-548e-3f7e7d244e75","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6eeb885a-0175-1000-90e9-e55ca8c0f917"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDb01ceaee-7fc0-40ed-a971-9d62b841fa24"},{"ref":"EID543a672c-7df5-44d4-b164-8dbed97a7a97"},{"ref":"EID02e2e10e-2cef-45b8-acec-bc6671841a9c"}]},"parent":{"ref":"EID6eeb885a-0175-1000-94b4-c9c5836580c7"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:15:31Z","duration":82,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:15:31Z","duration":186,"status":"FAILED"},{"id":"EID6eeb8914-0175-1000-5c62-ee25b55272b2","testStepResults":{"TestStepResult":{"id":"EID6eeb8914-0175-1000-bbe9-7ffd910a8ab1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb89d4-0175-1000-02e0-19eff3a2562a","parent":{"ref":"EID6eeb8914-0175-1000-bbe9-7ffd910a8ab1"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb89d4-0175-1000-7630-41f9d0561444","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8914-0175-1000-bbe9-7ffd910a8ab1"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:15:31Z","duration":11,"status":"FAILED"},{"id":"EID6eeb89df-0175-1000-2d44-7792972c27f3","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6eeb8914-0175-1000-bbe9-7ffd910a8ab1"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDed6b0758-f86c-44be-9d3f-2ff584e41b7b"},{"ref":"EID42cf320b-cb1a-4c43-a940-1f58360831a4"},{"ref":"EID53ccc4be-90d4-47ad-b839-d3c584b5d636"}]},"parent":{"ref":"EID6eeb8914-0175-1000-5c62-ee25b55272b2"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:15:31Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:15:31Z","duration":203,"status":"FAILED"},{"id":"EID6eeb89df-0175-1000-ecc3-e6e085fb2035","testStepResults":{"TestStepResult":{"id":"EID6eeb89df-0175-1000-3b1a-c8af8bd1819a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8a4f-0175-1000-1995-a48ad762b0b9","parent":{"ref":"EID6eeb89df-0175-1000-3b1a-c8af8bd1819a"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8a4f-0175-1000-8670-1f658c37c982","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb89df-0175-1000-3b1a-c8af8bd1819a"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:15:31Z","duration":11,"status":"FAILED"},{"id":"EID6eeb8a5a-0175-1000-0d26-98b26add1590","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeb89df-0175-1000-3b1a-c8af8bd1819a"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID62808f94-7aec-4ef3-9b19-43cea8e9f1d2"},{"ref":"EID92c57420-4901-47dc-8151-8b4eaa5ee2dc"},{"ref":"EID583a0e02-6898-4981-90e6-12ff1fe03956"}]},"parent":{"ref":"EID6eeb89df-0175-1000-ecc3-e6e085fb2035"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:15:31Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:15:31Z","duration":123,"status":"FAILED"},{"id":"EID6eeb8a5a-0175-1000-361e-60e35542c3e4","testStepResults":{"TestStepResult":{"id":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8ad8-0175-1000-18a3-dd3c55b8b017","parent":{"ref":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8ad8-0175-1000-1f04-622a2cf2f51e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:15:31Z","duration":14,"status":"FAILED"},{"id":"EID6eeb8ae6-0175-1000-d23c-1080e2b47611","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"FAILED"},{"id":"EID6eeb8ae6-0175-1000-a5b6-4edc37db8e23","parent":{"ref":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8ae6-0175-1000-979a-e10c40cea82d","parent":{"ref":"EID6eeb8a5a-0175-1000-1fb1-1f9f80118eaf"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7ce7077c-8224-4604-8969-57c263d2718d"},{"ref":"EID6c92bb25-199c-4cf9-a947-7cc5e5fc6971"},{"ref":"EIDafc68a8e-6b21-47e9-a2c0-971709e72bf8"}]},"parent":{"ref":"EID6eeb8a5a-0175-1000-361e-60e35542c3e4"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:15:31Z","duration":34,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:15:31Z","duration":140,"status":"FAILED"},{"id":"EID6eeb8ae7-0175-1000-71df-7274ecf06ca0","testStepResults":{"TestStepResult":{"id":"EID6eeb8ae7-0175-1000-d2ec-ef18e12e5d2e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8b40-0175-1000-fcd7-6395640f04b9","parent":{"ref":"EID6eeb8ae7-0175-1000-d2ec-ef18e12e5d2e"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8b40-0175-1000-afd4-c99b053f2683","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8ae7-0175-1000-d2ec-ef18e12e5d2e"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:15:31Z","duration":12,"status":"FAILED"},{"id":"EID6eeb8b4c-0175-1000-a99f-b5b3eb8dd5b9","parent":{"ref":"EID6eeb8ae7-0175-1000-d2ec-ef18e12e5d2e"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbdcaa8d1-ddab-4c4d-851b-9093a4feebba"},{"ref":"EIDb11a1786-9430-4767-93b1-14ac5e05b518"},{"ref":"EID4f1354fc-c710-4c9e-ac81-cc578ee120af"}]},"parent":{"ref":"EID6eeb8ae7-0175-1000-71df-7274ecf06ca0"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:15:31Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:15:31Z","duration":111,"status":"FAILED"},{"id":"EID6eeb8b56-0175-1000-fe46-1c4d13d9a6cc","testStepResults":{"TestStepResult":{"id":"EID6eeb8b56-0175-1000-b816-a755cd434e36","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8bb5-0175-1000-d09d-2b058b808c9c","parent":{"ref":"EID6eeb8b56-0175-1000-b816-a755cd434e36"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8bb5-0175-1000-56e9-ff7be4d44e72","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8b56-0175-1000-b816-a755cd434e36"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:15:31Z","duration":92,"status":"FAILED"},{"id":"EID6eeb8c11-0175-1000-f062-2e50ef2bf580","parent":{"ref":"EID6eeb8b56-0175-1000-b816-a755cd434e36"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:15:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd3b79900-c300-4ee1-a3aa-e5999053eab8"},{"ref":"EIDe4320f30-4f66-42de-98cd-abcbcc646da6"},{"ref":"EID5159ce22-d386-4985-92dd-64e9c5bae3dc"}]},"parent":{"ref":"EID6eeb8b56-0175-1000-fe46-1c4d13d9a6cc"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:15:31Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:15:31Z","duration":187,"status":"FAILED"},{"id":"EID6eeb8c11-0175-1000-f0d5-ce5ca27ded03","testStepResults":{"TestStepResult":{"id":"EID6eeb8c11-0175-1000-d40d-653bda397d40","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8c8a-0175-1000-6242-055622a461b6","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8c11-0175-1000-d40d-653bda397d40"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:15:32Z","duration":10,"status":"FAILED"},{"id":"EID6eeb8c94-0175-1000-5019-f06fa4b77d64","parent":{"ref":"EID6eeb8c11-0175-1000-d40d-653bda397d40"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8c94-0175-1000-8e0d-1a1e22ab3ab1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb8c11-0175-1000-d40d-653bda397d40"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"FAILED"},{"id":"EID6eeb8c94-0175-1000-4c02-ca827fa640f9","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eeb8c11-0175-1000-d40d-653bda397d40"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1c2066c7-1df2-4b2e-aebd-ae8bb99aa95f"},{"ref":"EID8fce58cc-c56e-41d7-b4c1-275885d84568"},{"ref":"EIDd258dcd8-67af-4007-a6dd-1cebcfdfe2ba"}]},"parent":{"ref":"EID6eeb8c11-0175-1000-f0d5-ce5ca27ded03"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:15:31Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:15:31Z","duration":131,"status":"FAILED"},{"id":"EID6eeb8c95-0175-1000-aa81-293d5d393fd7","testStepResults":{"TestStepResult":{"id":"EID6eeb8c95-0175-1000-61a6-718689323094","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8d04-0175-1000-2d54-4bbe6d4ca86f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8c95-0175-1000-61a6-718689323094"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:15:32Z","duration":14,"status":"FAILED"},{"id":"EID6eeb8d12-0175-1000-6043-15ed27963a97","parent":{"ref":"EID6eeb8c95-0175-1000-61a6-718689323094"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8d12-0175-1000-fe6c-1422d6aa8707","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb8c95-0175-1000-61a6-718689323094"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"FAILED"},{"id":"EID6eeb8d12-0175-1000-2d06-62879e85fbb2","parent":{"ref":"EID6eeb8c95-0175-1000-61a6-718689323094"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa2fba74d-1f7d-41d0-934e-3c73ba653df9"},{"ref":"EIDd02c4eb6-d5db-4d54-9e96-ddc07f11aff3"},{"ref":"EID3939f67d-a1e4-4a2e-8266-2f6481b44a58"}]},"parent":{"ref":"EID6eeb8c95-0175-1000-aa81-293d5d393fd7"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:15:32Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:15:32Z","duration":135,"status":"FAILED"},{"id":"EID6eeb8d1c-0175-1000-4827-6698757e8f96","testStepResults":{"TestStepResult":[{"id":"EID6eeb8d1c-0175-1000-b749-31eab2f36bac","parent":{"ref":"EID6eeb8d1c-0175-1000-4827-6698757e8f96"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8d1c-0175-1000-0871-206bfcae9be0","parent":{"ref":"EID6eeb8d1c-0175-1000-4827-6698757e8f96"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:15:32Z","duration":207,"status":"PASSED"},{"id":"EID6eeb8d1d-0175-1000-8f40-c4f8b3fc1263","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8dea-0175-1000-5311-42bb94b7921e","parent":{"ref":"EID6eeb8d1d-0175-1000-8f40-c4f8b3fc1263"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8dea-0175-1000-d874-4ebb12060911","parent":{"ref":"EID6eeb8d1d-0175-1000-8f40-c4f8b3fc1263"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8dea-0175-1000-dad9-9470421f91dd","parent":{"ref":"EID6eeb8d1d-0175-1000-8f40-c4f8b3fc1263"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8dea-0175-1000-96de-e971fed54bd0","parent":{"ref":"EID6eeb8d1d-0175-1000-8f40-c4f8b3fc1263"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID35a73536-bce7-448f-b8a1-3b6ff7fc60d0"},{"ref":"EID2d7332e2-12b1-4520-8cbc-e72a0bd9f398"},{"ref":"EID03a73210-449a-46cd-8f11-d036ce738361"}]},"parent":{"ref":"EID6eeb8d1c-0175-1000-4827-6698757e8f96"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:15:32Z","duration":74,"status":"PASSED"},{"id":"EID6eeb8dea-0175-1000-dfa5-ef6ac4e38b26","attachments":{"attachment":{"ref":"EIDe688695f-8c6e-4ffb-9b22-ef1d346672e2"}},"parent":{"ref":"EID6eeb8d1c-0175-1000-4827-6698757e8f96"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:15:32Z","duration":3,"status":"PASSED"},{"id":"EID6eeb8df9-0175-1000-d393-48f056e61f5f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8e7e-0175-1000-89f7-acfcd004a3de","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e7e-0175-1000-7d37-be2345e18f26","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:15:32Z","duration":13,"status":"FAILED"},{"id":"EID6eeb8e8b-0175-1000-3d76-e59c1bbc0f70","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e8b-0175-1000-bf06-5ff1f1cd4777","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e8b-0175-1000-a91b-77d424223ca8","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e8b-0175-1000-6766-6d4abae85016","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e8b-0175-1000-b16b-0a7abb807de2","parent":{"ref":"EID6eeb8df9-0175-1000-d393-48f056e61f5f"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9762b340-c556-4f5d-994c-4113f0d8a92f"},{"ref":"EIDd7f119fc-4205-4d79-a77e-7a609514da7a"},{"ref":"EIDf02fb797-2d3c-478a-b9f8-33501babf282"}]},"parent":{"ref":"EID6eeb8d1c-0175-1000-4827-6698757e8f96"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:15:32Z","duration":28,"status":"FAILED"}]},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:15:32Z","duration":367,"status":"FAILED"},{"id":"EID6eeb8e8c-0175-1000-caf1-3c7bcd3a6afb","testStepResults":{"TestStepResult":[{"id":"EID6eeb8e8c-0175-1000-8e58-7e27b1528f63","parent":{"ref":"EID6eeb8e8c-0175-1000-caf1-3c7bcd3a6afb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8e8c-0175-1000-db06-4bc264f41b56","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb8f7a-0175-1000-1e24-81e40f6fa006","parent":{"ref":"EID6eeb8e8c-0175-1000-db06-4bc264f41b56"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8f7a-0175-1000-3d37-471f0c1998d2","parent":{"ref":"EID6eeb8e8c-0175-1000-db06-4bc264f41b56"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8f7a-0175-1000-f866-3f221c28c01a","parent":{"ref":"EID6eeb8e8c-0175-1000-db06-4bc264f41b56"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"},{"id":"EID6eeb8f7a-0175-1000-7c0e-176f8ed3331d","parent":{"ref":"EID6eeb8e8c-0175-1000-db06-4bc264f41b56"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:15:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd80c3546-5917-440f-bef4-ad316d1b95c5"},{"ref":"EID83830824-2b19-44db-b9e5-6e2fbcf3a215"},{"ref":"EID9b94343a-dc33-48b4-b2e4-35360e99a413"}]},"parent":{"ref":"EID6eeb8e8c-0175-1000-caf1-3c7bcd3a6afb"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:15:32Z","duration":145,"status":"PASSED"},{"id":"EID6eeb8f7a-0175-1000-e35e-50ebd4a4da8a","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eeb8f98-0175-1000-1dcf-ca3c66d31572","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb920c-0175-1000-7cd6-43660b0fc8d1","parent":{"ref":"EID6eeb8f98-0175-1000-1dcf-ca3c66d31572"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:33Z","duration":0,"status":"PASSED"},{"id":"EID6eeb920c-0175-1000-857f-a2953dd86e74","parent":{"ref":"EID6eeb8f98-0175-1000-1dcf-ca3c66d31572"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:33Z","duration":0,"status":"PASSED"},{"id":"EID6eeb920c-0175-1000-8fab-cca360ca8403","parent":{"ref":"EID6eeb8f98-0175-1000-1dcf-ca3c66d31572"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8c6900b4-d7e0-4dc4-b92d-aa1bd1c62057"},{"ref":"EID962cda27-76cc-4b2b-8be8-595f8e67a488"},{"ref":"EID7ad000ef-4e8b-4b5e-9b61-cc9b88b24b43"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:32Z","duration":549,"status":"PASSED"},{"id":"EID6eeb920d-0175-1000-2640-47b9ff728818","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb96b0-0175-1000-572c-737e0bb462ee","parent":{"ref":"EID6eeb920d-0175-1000-2640-47b9ff728818"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"},{"id":"EID6eeb96b0-0175-1000-e88b-d3e7d0e45771","parent":{"ref":"EID6eeb920d-0175-1000-2640-47b9ff728818"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"},{"id":"EID6eeb96b0-0175-1000-a9a7-4a42068d239e","parent":{"ref":"EID6eeb920d-0175-1000-2640-47b9ff728818"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3f25a04f-aab9-4cb2-85ef-7ea3678dfb5e"},{"ref":"EID24b16859-f522-4e88-afb9-765632985096"},{"ref":"EIDac99908d-b518-441c-adf2-7a16b21c7033"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:33Z","duration":1137,"status":"PASSED"},{"id":"EID6eeb96b9-0175-1000-b0e0-c697d3995872","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb97b5-0175-1000-0760-afd676af5d8a","parent":{"ref":"EID6eeb96b9-0175-1000-b0e0-c697d3995872"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"},{"id":"EID6eeb97b5-0175-1000-8e8f-f631da512fe8","parent":{"ref":"EID6eeb96b9-0175-1000-b0e0-c697d3995872"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"},{"id":"EID6eeb97b5-0175-1000-70a0-7f2bdb64ea18","parent":{"ref":"EID6eeb96b9-0175-1000-b0e0-c697d3995872"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf0a3c5fc-060a-4d11-b834-a33f1a4a39f7"},{"ref":"EID221b8e40-f017-4319-b814-4a2ab6bff5d0"},{"ref":"EIDc917378f-35f1-4a2a-8095-1e4656906ac8"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:34Z","duration":150,"status":"PASSED"}]},"parent":{"ref":"EID6eeb8e8c-0175-1000-caf1-3c7bcd3a6afb"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:15:32Z","duration":2108,"status":"PASSED"},{"id":"EID6eeb97b6-0175-1000-a73c-4ebd8061e9a8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb9824-0175-1000-1125-7a5ebca09c3e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb97b6-0175-1000-a73c-4ebd8061e9a8"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:15:35Z","duration":17,"status":"FAILED"},{"id":"EID6eeb9835-0175-1000-3a64-85d3055f3bab","parent":{"ref":"EID6eeb97b6-0175-1000-a73c-4ebd8061e9a8"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"PASSED"},{"id":"EID6eeb9835-0175-1000-cd6b-d059223aedc1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb97b6-0175-1000-a73c-4ebd8061e9a8"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"FAILED"},{"id":"EID6eeb9835-0175-1000-0ba3-7f0f8cdb746b","parent":{"ref":"EID6eeb97b6-0175-1000-a73c-4ebd8061e9a8"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID673c934f-650f-4cec-9b77-3c3cdfdb26c8"},{"ref":"EID79fb1274-e141-40e1-ac1d-10c7aa030882"},{"ref":"EID7cf10628-8592-4390-9125-804879b817d6"}]},"parent":{"ref":"EID6eeb8e8c-0175-1000-caf1-3c7bcd3a6afb"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:15:34Z","duration":32,"status":"FAILED"}]},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:15:32Z","duration":2485,"status":"FAILED"},{"id":"EID6eeb9841-0175-1000-ce94-4a6fa3dce324","testStepResults":{"TestStepResult":{"id":"EID6eeb9841-0175-1000-8f08-227e115df7bf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb98b0-0175-1000-2943-ef255dd64621","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb9841-0175-1000-8f08-227e115df7bf"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:15:35Z","duration":15,"status":"FAILED"},{"id":"EID6eeb98bf-0175-1000-7786-a72208ff52cf","parent":{"ref":"EID6eeb9841-0175-1000-8f08-227e115df7bf"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"PASSED"},{"id":"EID6eeb98bf-0175-1000-633b-0f5783361e82","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb9841-0175-1000-8f08-227e115df7bf"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"FAILED"},{"id":"EID6eeb98bf-0175-1000-c9e4-7d94010d151f","parent":{"ref":"EID6eeb9841-0175-1000-8f08-227e115df7bf"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa0882f5c-90b2-4af1-a824-0e000437c4d6"},{"ref":"EID741e1e8f-8af3-466b-830b-a991b0da4f40"},{"ref":"EIDd8c5f5d0-313b-4316-8d9f-073d9b3ae25c"}]},"parent":{"ref":"EID6eeb9841-0175-1000-ce94-4a6fa3dce324"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:15:35Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6eeb8668-0175-1000-ab77-29ce12e540fe"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:15:35Z","duration":134,"status":"FAILED"}]},"parent":{"ref":"EID4bee505b-063e-4c1f-97ca-b424629f9e64"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:15:30Z","duration":4704,"status":"FAILED"},{"id":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb98c8-0175-1000-c7df-cfd1ea23b5cb","testStepResults":{"TestStepResult":{"id":"EID6eeb98c8-0175-1000-c65c-2912781c0af6","parent":{"ref":"EID6eeb98c8-0175-1000-c7df-cfd1ea23b5cb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb98d1-0175-1000-baae-aa50c5ab0914","testStepResults":{"TestStepResult":{"id":"EID6eeb98d1-0175-1000-ae07-f4c935c1a7e6","parent":{"ref":"EID6eeb98d1-0175-1000-baae-aa50c5ab0914"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb98d1-0175-1000-f11f-2254e9660a1a","testStepResults":{"TestStepResult":{"id":"EID6eeb98d1-0175-1000-5b70-8208ee8b907f","parent":{"ref":"EID6eeb98d1-0175-1000-f11f-2254e9660a1a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb98d1-0175-1000-3063-0d80a18efceb","testStepResults":{"TestStepResult":{"id":"EID6eeb98d1-0175-1000-f826-5f1aeff99b6d","parent":{"ref":"EID6eeb98d1-0175-1000-3063-0d80a18efceb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb98d1-0175-1000-2427-1eb11a052cbc","testStepResults":{"TestStepResult":{"id":"EID6eeb98d2-0175-1000-67ba-e99d821b4b02","parent":{"ref":"EID6eeb98d1-0175-1000-2427-1eb11a052cbc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:15:35Z","duration":1,"status":"SKIPPED"},{"id":"EID6eeb98d2-0175-1000-e43e-7c0723a1ca75","testStepResults":{"TestStepResult":{"id":"EID6eeb98d2-0175-1000-267d-a4bf6990395c","parent":{"ref":"EID6eeb98d2-0175-1000-e43e-7c0723a1ca75"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":672,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:15:35Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb98d2-0175-1000-9929-2244681daf72","testStepResults":{"TestStepResult":{"id":"EID6eeb98d9-0175-1000-53fc-3ea603e0a2c6","parent":{"ref":"EID6eeb98d2-0175-1000-9929-2244681daf72"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:15:35Z","duration":673,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb98c8-0175-1000-74c2-44fecbf8dcc3"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:15:35Z","duration":8,"status":"SKIPPED"}]},"parent":{"ref":"EID4bee505b-063e-4c1f-97ca-b424629f9e64"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:15:35Z","duration":18,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EID221b8e40-f017-4319-b814-4a2ab6bff5d0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID221b8e40-f017-4319-b814-4a2ab6bff5d0"}},{"type":"Message","id":"EID9b6463bd-0bbf-482d-b8dc-b5d7b10f3925","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID9b6463bd-0bbf-482d-b8dc-b5d7b10f3925"}},{"type":"GetParameter","id":"EID1c250a2c-f32b-48be-8f34-13c4d83432b5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb5c30a4f-74d0-47a7-adb8-a2a2b63702af","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID7d3f46a7-13a8-4b96-a04c-c3455bc7d1d8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID7d3f46a7-13a8-4b96-a04c-c3455bc7d1d8"}},{"type":"GetParameter","id":"EID8062c009-29dc-43cf-8727-b022f453adee","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDed6b0758-f86c-44be-9d3f-2ff584e41b7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDc8a212ed-8339-42cb-8170-7be2102bc8e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID76394ce9-91de-4a66-85f8-9c216812fac7","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID76394ce9-91de-4a66-85f8-9c216812fac7"}},{"type":"ServiceResponse","id":"EIDd02c4eb6-d5db-4d54-9e96-ddc07f11aff3","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDd02c4eb6-d5db-4d54-9e96-ddc07f11aff3"}},{"type":"GetParameter","id":"EIDcd60cf68-8baa-4586-9bd1-b61dfdfd3dbb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDdc494c59-1f52-485e-b633-743dfda88798","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDdc494c59-1f52-485e-b633-743dfda88798"}},{"type":"ServiceEndpoint","id":"EIDbdcaa8d1-ddab-4c4d-851b-9093a4feebba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID65a26882-d50d-4f2c-a62a-b43f3e1b55eb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd3b79900-c300-4ee1-a3aa-e5999053eab8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID92c57420-4901-47dc-8151-8b4eaa5ee2dc","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID92c57420-4901-47dc-8151-8b4eaa5ee2dc"}},{"type":"Message","id":"EID754c5025-7e0b-4722-b516-995d133f984c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID754c5025-7e0b-4722-b516-995d133f984c"}},{"type":"Message","id":"EIDbdc28154-2c7a-4bba-a889-46cef99d0dbf","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDbdc28154-2c7a-4bba-a889-46cef99d0dbf"}},{"type":"Error","id":"EIDc90ba2c3-bef9-4005-8746-95010c2cd661","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc90ba2c3-bef9-4005-8746-95010c2cd661"}},{"type":"ServiceResponse","id":"EID2d7332e2-12b1-4520-8cbc-e72a0bd9f398","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID2d7332e2-12b1-4520-8cbc-e72a0bd9f398"}},{"type":"GetParameter","id":"EID42486234-86e5-42fb-ad26-07f0ef6ece1d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc917378f-35f1-4a2a-8095-1e4656906ac8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDc436ef78-c321-490c-bd94-d410f18746cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc436ef78-c321-490c-bd94-d410f18746cf"}},{"type":"ServiceEndpoint","id":"EIDa0882f5c-90b2-4af1-a824-0e000437c4d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID25ec2d58-27f8-44c2-a54d-9a4aacbac91e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID8ff50e07-6386-4db5-8086-099f1ef5b418","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe617d99b-ee11-4b6d-a52b-90fd527b3313","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDe617d99b-ee11-4b6d-a52b-90fd527b3313"}},{"type":"ServiceResponse","id":"EID126e8050-99bb-4f73-b583-ae170675f188","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID126e8050-99bb-4f73-b583-ae170675f188"}},{"type":"ServiceResponse","id":"EID65f72e5e-394d-4c96-b149-4693822f8ef6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID65f72e5e-394d-4c96-b149-4693822f8ef6"}},{"type":"GetParameter","id":"EIDf02fb797-2d3c-478a-b9f8-33501babf282","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID7ad000ef-4e8b-4b5e-9b61-cc9b88b24b43","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID35f49261-090f-481a-ba57-17e7b6cf1e7e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID35f49261-090f-481a-ba57-17e7b6cf1e7e"}},{"type":"GetParameter","id":"EIDeb4a357b-4cdb-4c74-9a7c-932eecc09b70","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID1c2066c7-1df2-4b2e-aebd-ae8bb99aa95f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID8fce58cc-c56e-41d7-b4c1-275885d84568","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID8fce58cc-c56e-41d7-b4c1-275885d84568"}},{"type":"ServiceResponse","id":"EID2b215569-13e5-4fa0-9fb5-27257063e78f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID2b215569-13e5-4fa0-9fb5-27257063e78f"}},{"type":"ServiceResponse","id":"EID89db7513-6ea7-493c-8a5b-b0ee076a1736","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID89db7513-6ea7-493c-8a5b-b0ee076a1736"}},{"type":"Message","id":"EIDeaaba32f-399a-447d-b4fa-cc733c51b791","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDeaaba32f-399a-447d-b4fa-cc733c51b791"}},{"type":"ServiceResponse","id":"EID42cf320b-cb1a-4c43-a940-1f58360831a4","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID42cf320b-cb1a-4c43-a940-1f58360831a4"}},{"type":"ServiceEndpoint","id":"EIDe0ef053d-4500-4ef2-9a25-32a249be5a51","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1ac2ddc9-57bc-4459-bf92-39511b090e2c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6c92bb25-199c-4cf9-a947-7cc5e5fc6971","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID6c92bb25-199c-4cf9-a947-7cc5e5fc6971"}},{"type":"ServiceResponse","id":"EIDc4a5076d-a483-4352-90c5-baca12deeca8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc4a5076d-a483-4352-90c5-baca12deeca8"}},{"type":"GetParameter","id":"EID98d7afcb-accd-4b15-b1ec-c26898bb5530","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID28e62f55-dec3-4460-a0a5-dbb057e934aa","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID28e62f55-dec3-4460-a0a5-dbb057e934aa"}},{"type":"GetParameter","id":"EID3b75e11e-fd45-425e-99f5-25df4c5d0800","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5159ce22-d386-4985-92dd-64e9c5bae3dc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID673c934f-650f-4cec-9b77-3c3cdfdb26c8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID44442df1-6205-45d1-994a-2fbc1bceff3d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd7f119fc-4205-4d79-a77e-7a609514da7a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDd7f119fc-4205-4d79-a77e-7a609514da7a"}},{"type":"GetParameter","id":"EIDe41d2de4-95e9-41ae-a860-bb412b388a49","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID250430f3-ccd8-4cbb-bf63-b02fe6682868","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID96b3a1e8-a4d6-4cec-bf9b-f433a9003b06","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID96b3a1e8-a4d6-4cec-bf9b-f433a9003b06"}},{"type":"ServiceResponse","id":"EIDa87e37a3-b455-4afb-b1e0-4e396e764ccd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDa87e37a3-b455-4afb-b1e0-4e396e764ccd"}},{"type":"Error","id":"EIDc7ba375f-9000-418e-83dc-823d565ff4bd","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc7ba375f-9000-418e-83dc-823d565ff4bd"}},{"type":"ServiceEndpoint","id":"EIDd8608a52-6a39-44cf-a035-d9181e80c936","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7ce7077c-8224-4604-8969-57c263d2718d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID51fddd6b-4057-4a01-8589-4adb01ff5148","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID577aea60-01d8-4602-a308-afeb922c81f1","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID577aea60-01d8-4602-a308-afeb922c81f1"}},{"type":"Error","id":"EIDfeff4be5-04f4-4035-8c2b-f062d7b548f6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDfeff4be5-04f4-4035-8c2b-f062d7b548f6"}},{"type":"ServiceEndpoint","id":"EIDa2fba74d-1f7d-41d0-934e-3c73ba653df9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID962cda27-76cc-4b2b-8be8-595f8e67a488","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID962cda27-76cc-4b2b-8be8-595f8e67a488"}},{"type":"Message","id":"EID9814a4ff-ba59-4b58-843b-b302c1e20242","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID9814a4ff-ba59-4b58-843b-b302c1e20242"}},{"type":"GetParameter","id":"EID8c666e8c-6e04-4cdb-95ca-ef807a1674d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID7f8382c5-a335-48e0-8fda-17ed20f9a833","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID7f8382c5-a335-48e0-8fda-17ed20f9a833"}},{"type":"GetParameter","id":"EID26254934-68f6-473b-a70a-7dac924254de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID583a0e02-6898-4981-90e6-12ff1fe03956","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"LogFile","id":"EIDdf634a29-ad11-40fd-87e8-0feac8d1f78b","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDdf634a29-ad11-40fd-87e8-0feac8d1f78b"}},{"type":"Error","id":"EIDefe56913-6065-445b-b80c-9c833ac646a1","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDefe56913-6065-445b-b80c-9c833ac646a1"}},{"type":"ServiceResponse","id":"EIDc506af26-5eea-4680-be09-735ed2f55831","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc506af26-5eea-4680-be09-735ed2f55831"}},{"type":"GetParameter","id":"EIDafc68a8e-6b21-47e9-a2c0-971709e72bf8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID82c95ef0-b4d8-49e2-a6e4-ed9cd1692024","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID543a672c-7df5-44d4-b164-8dbed97a7a97","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID543a672c-7df5-44d4-b164-8dbed97a7a97"}},{"type":"Message","id":"EID61002d56-18ae-4f13-b4bf-83ac3e2bdf1f","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID61002d56-18ae-4f13-b4bf-83ac3e2bdf1f"}},{"type":"ServiceEndpoint","id":"EIDf0a3c5fc-060a-4d11-b834-a33f1a4a39f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDb11a1786-9430-4767-93b1-14ac5e05b518","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDb11a1786-9430-4767-93b1-14ac5e05b518"}},{"type":"Message","id":"EIDdac60dac-d18a-4f5d-9504-3291c9a44ed8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDdac60dac-d18a-4f5d-9504-3291c9a44ed8"}},{"type":"ServiceResponse","id":"EID945b4a7a-2374-41e3-820d-080d25bcfa8b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID945b4a7a-2374-41e3-820d-080d25bcfa8b"}},{"type":"GetParameter","id":"EID236b4fbd-1266-4508-84ef-1911ddbcb1a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9762b340-c556-4f5d-994c-4113f0d8a92f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID65f1e17f-c379-4e3d-a34f-fb6b59a455f6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID65f1e17f-c379-4e3d-a34f-fb6b59a455f6"}},{"type":"Message","id":"EID40b5d41a-c66e-4a31-83e6-273b046940a5","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID40b5d41a-c66e-4a31-83e6-273b046940a5"}},{"type":"GetParameter","id":"EID3d824aea-ee6e-4dee-904d-0501bbd1dd03","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Error","id":"EIDbb37245f-5ffb-4248-b80c-329a7dc49ffa","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDbb37245f-5ffb-4248-b80c-329a7dc49ffa"}},{"type":"GetParameter","id":"EID83deaf22-646b-4220-a8c6-3e23cde09c5f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6dc1e4e5-0a7a-4678-b693-a0f4fbd56d31","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID03a73210-449a-46cd-8f11-d036ce738361","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDb12626a2-35d7-4e52-a78b-a04061e77b1e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDb12626a2-35d7-4e52-a78b-a04061e77b1e"}},{"type":"Message","id":"EID4c01ccd6-81e5-405f-915a-601f7e9cb785","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID4c01ccd6-81e5-405f-915a-601f7e9cb785"}},{"type":"Message","id":"EIDc8a366a4-f480-42cf-82ed-d2e9c631edd5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc8a366a4-f480-42cf-82ed-d2e9c631edd5"}},{"type":"Message","id":"EID4a83d52b-48e5-4c49-8367-f83fe38a1abf","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID4a83d52b-48e5-4c49-8367-f83fe38a1abf"}},{"type":"ServiceEndpoint","id":"EID03e8ad78-3c8d-4a95-a90a-6c77bd11f61f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDe688695f-8c6e-4ffb-9b22-ef1d346672e2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDe688695f-8c6e-4ffb-9b22-ef1d346672e2"}},{"type":"ServiceEndpoint","id":"EIDfc74716b-171a-4e03-a92f-07b7625aad78","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID93db1c52-e080-4887-b39c-3898e10396b9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID93db1c52-e080-4887-b39c-3898e10396b9"}},{"type":"ServiceResponse","id":"EID741e1e8f-8af3-466b-830b-a991b0da4f40","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID741e1e8f-8af3-466b-830b-a991b0da4f40"}},{"type":"ServiceResponse","id":"EID83830824-2b19-44db-b9e5-6e2fbcf3a215","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID83830824-2b19-44db-b9e5-6e2fbcf3a215"}},{"type":"ServiceResponse","id":"EIDdaa098ad-8968-4707-a947-2ac7da7ccb03","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDdaa098ad-8968-4707-a947-2ac7da7ccb03"}},{"type":"GetParameter","id":"EIDd258dcd8-67af-4007-a6dd-1cebcfdfe2ba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID747f8224-3c30-4252-a40a-dc9a64b11a37","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID747f8224-3c30-4252-a40a-dc9a64b11a37"}},{"type":"Message","id":"EIDa16fc02a-510f-44a9-8e70-ba5aab18f2df","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDa16fc02a-510f-44a9-8e70-ba5aab18f2df"}},{"type":"ServiceEndpoint","id":"EID62808f94-7aec-4ef3-9b19-43cea8e9f1d2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDcca958f3-8f7a-4e51-ae2f-2daf3a29cd07","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDcca958f3-8f7a-4e51-ae2f-2daf3a29cd07"}},{"type":"ServiceResponse","id":"EIDc7326c8f-edd0-4aee-aec9-58691cc0f1cc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc7326c8f-edd0-4aee-aec9-58691cc0f1cc"}},{"type":"GetParameter","id":"EIDc4c194cc-acab-421b-a180-818cf7faa57c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID79fb1274-e141-40e1-ac1d-10c7aa030882","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID79fb1274-e141-40e1-ac1d-10c7aa030882"}},{"type":"GetParameter","id":"EID53ccc4be-90d4-47ad-b839-d3c584b5d636","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID45c9659d-2cbd-4bbb-bad4-d53bcf965a58","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID45c9659d-2cbd-4bbb-bad4-d53bcf965a58"}},{"type":"Message","id":"EID4b217f67-bb9a-4758-ba92-dc666c94a6fe","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID4b217f67-bb9a-4758-ba92-dc666c94a6fe"}},{"type":"Message","id":"EID19cfabfd-3281-46a4-b221-cc488b9ffdc4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID19cfabfd-3281-46a4-b221-cc488b9ffdc4"}},{"type":"ServiceResponse","id":"EIDbbf6aba8-3335-4f31-9c4b-eec4899cfe97","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDbbf6aba8-3335-4f31-9c4b-eec4899cfe97"}},{"type":"GetParameter","id":"EID68b30eac-c743-4be7-a7b3-8217ec2c843d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDa1178553-e3cc-417b-9bc3-cde5372ca77f","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDa1178553-e3cc-417b-9bc3-cde5372ca77f"}},{"type":"Message","id":"EID7a71f298-63ad-4f4c-8556-9f0eb13bdf68","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID7a71f298-63ad-4f4c-8556-9f0eb13bdf68"}},{"type":"ServiceEndpoint","id":"EIDb01ceaee-7fc0-40ed-a971-9d62b841fa24","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9b94343a-dc33-48b4-b2e4-35360e99a413","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDd80c3546-5917-440f-bef4-ad316d1b95c5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID7cf10628-8592-4390-9125-804879b817d6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd8c5f5d0-313b-4316-8d9f-073d9b3ae25c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID9ea73fab-dd20-427f-bd3b-4f012517a60a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID9ea73fab-dd20-427f-bd3b-4f012517a60a"}},{"type":"GetParameter","id":"EIDac99908d-b518-441c-adf2-7a16b21c7033","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDb1876de5-32ea-43c0-98d0-64bcda2f7573","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDb1876de5-32ea-43c0-98d0-64bcda2f7573"}},{"type":"Error","id":"EID11fc963e-6dc8-45a6-890e-567b7035ba36","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID11fc963e-6dc8-45a6-890e-567b7035ba36"}},{"type":"GetParameter","id":"EID3939f67d-a1e4-4a2e-8266-2f6481b44a58","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID24b16859-f522-4e88-afb9-765632985096","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID24b16859-f522-4e88-afb9-765632985096"}},{"type":"GetParameter","id":"EID02e2e10e-2cef-45b8-acec-bc6671841a9c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID35a73536-bce7-448f-b8a1-3b6ff7fc60d0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa4923674-cb15-47f5-aca7-0fbeff019333","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID99b12f2e-fd5b-48ac-9285-4e113890d43c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID99b12f2e-fd5b-48ac-9285-4e113890d43c"}},{"type":"ServiceEndpoint","id":"EID8c6900b4-d7e0-4dc4-b92d-aa1bd1c62057","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDce9fbedf-716e-41f6-a284-38d598071641","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0dd49f44-0e81-46d7-a1fd-363e80d7de67","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID0dd49f44-0e81-46d7-a1fd-363e80d7de67"}},{"type":"ServiceResponse","id":"EIDd66fa7e3-b326-472f-8f4f-4075d69e1a32","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDd66fa7e3-b326-472f-8f4f-4075d69e1a32"}},{"type":"ServiceEndpoint","id":"EID79970ccc-6b80-40f9-a092-5bfd3c985860","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9155669f-299b-4e23-9835-daadf397d694","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa38091c7-7562-4e31-8d31-875e0d99e389","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID55727533-3873-4314-a6d1-114dc6a05e80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDee56a2af-a2e3-4abb-b3d3-d7c0e7abe6d7","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDee56a2af-a2e3-4abb-b3d3-d7c0e7abe6d7"}},{"type":"Message","id":"EIDe36d8e48-6cc7-46fa-9a3e-873d6d84447e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDe36d8e48-6cc7-46fa-9a3e-873d6d84447e"}},{"type":"ServiceResponse","id":"EIDe4320f30-4f66-42de-98cd-abcbcc646da6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDe4320f30-4f66-42de-98cd-abcbcc646da6"}},{"type":"Error","id":"EID29b7725c-f06a-4fa9-9a61-7814f8bb3761","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID29b7725c-f06a-4fa9-9a61-7814f8bb3761"}},{"type":"ServiceEndpoint","id":"EID3f25a04f-aab9-4cb2-85ef-7ea3678dfb5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID263dfce3-f2f3-46a0-9abd-c248a209f47b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDa7128675-d7a9-4566-81d0-8c9d04af676d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDa7128675-d7a9-4566-81d0-8c9d04af676d"}},{"type":"ServiceResponse","id":"EID85b5b256-0262-41dd-92b3-e2940610cf40","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID85b5b256-0262-41dd-92b3-e2940610cf40"}},{"type":"GetParameter","id":"EIDfdd10526-96fe-47c0-a6bd-6c59ea070fc6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDc2dec0e4-663d-4a04-a78b-417b523450c4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDc2dec0e4-663d-4a04-a78b-417b523450c4"}},{"type":"GetParameter","id":"EID5bdb0f89-c0c3-4bf9-bb37-48d10bc0113e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6c0ea674-51e0-44e6-ae6d-9c767fece3e3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDb07db163-411e-4b9d-bda7-d5efb847cf2f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EIDb07db163-411e-4b9d-bda7-d5efb847cf2f"}},{"type":"ServiceEndpoint","id":"EID5bdbe61d-cd7c-4ed0-ad2d-d2de82e50666","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa8df73fd-7b60-4aed-a6e3-195994276106","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID902210dc-7934-4b0e-9e6f-4b38c39ac0c0","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID902210dc-7934-4b0e-9e6f-4b38c39ac0c0"}},{"type":"GetParameter","id":"EID63a01811-6e5c-4756-8ce9-fbac7720a5e3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID8d87a622-b5f3-40fa-b3ed-ce3f80ea46f0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0a03498b-6b64-4ebd-b5a2-e5ce1a1bf739","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID0a03498b-6b64-4ebd-b5a2-e5ce1a1bf739"}},{"type":"GetParameter","id":"EID7e50ac75-9057-41a0-a1f1-554d42d5d05b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID10128c34-72d2-4c8d-8cda-5e741b9f7c53","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID10128c34-72d2-4c8d-8cda-5e741b9f7c53"}},{"type":"GetParameter","id":"EID4f1354fc-c710-4c9e-ac81-cc578ee120af","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDcdb4026f-22bf-458b-aa2b-cb6673ad1f9e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID9092a3a1-abce-47b4-91b5-710fb5c8fa26","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID4bee505b-063e-4c1f-97ca-b424629f9e64/Attachments/EID9092a3a1-abce-47b4-91b5-710fb5c8fa26"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:15:23Z","duration":12208,"status":"FAILED"}}}}}
11:15:54.783 [print] EID94357bbb-2bc5-48b1-a2b0-69d555c3d244
11:15:54.787 [print] FAILED
11:15:54.787 [print] FAILED
11:15:54.787 [print] Conformance Class Download Service - Pre-defined Atom
11:15:54.787 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/94357bbb-2bc5-48b1-a2b0-69d555c3d244.json
11:15:54.788 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/94357bbb-2bc5-48b1-a2b0-69d555c3d244.json
11:15:54.788 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID94357bbb-2bc5-48b1-a2b0-69d555c3d244/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:54.803 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:15:54.803 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:52.025 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-wl/wfs?request=GetCapabilities"}}}
11:09:52.025 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-wl/wfs?request=GetCapabilities"}}}
11:10:03.641 response time in milliseconds: 11510.20
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:03 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883403471","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:03.641 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:44.976 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn-c/wfs?request=GetCapabilities
11:16:44.976 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-c/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:45.396 response time in milliseconds: 420.14 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:45 GMT 1 < ETag: "18202-5af58ad52cc2e-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:45.403 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-c/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:45.810 response time in milliseconds: 406.91 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:45 GMT 1 < ETag: "18202-5af58ad52cc2e-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:45.810 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:25.451 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-np/wfs?request=GetCapabilities"}}}
11:15:25.451 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-np/wfs?request=GetCapabilities"}}}
11:15:27.017 response time in milliseconds: 1460.36
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:26 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883726851","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:27.017 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:16.751 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:06:16.753 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 295
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:06:23.355 response time in milliseconds: 5833.04
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:22 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:06:20 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a.json","testRuns":{"TestRun":{"id":"EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:20.302Z","testTasks":{"TestTask":{"id":"EIDa90ad65a-b5cb-4362-acc9-31df4fce0f70","parent":{"ref":"EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7abe4162-8c50-48ae-9d42-1cf4e1dba231"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7abe4162-8c50-48ae-9d42-1cf4e1dba231","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:17.203Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:19.884Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:06:23.358 [print] EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a
11:06:23.358 [print] UNDEFINED
11:06:23.359 [print] Conformance Class Download Service - Pre-defined Atom
11:06:23.365 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a.json
11:06:23.365 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/log
11:06:23.365 [print] statuspath TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a
11:06:23.366 [print] progresspath TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
11:06:23.366 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:23.885 response time in milliseconds: 517.83
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:06:23 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"4","max":"5","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized"]}
11:06:23.886 [print] {
"val": "4",
"max": "5",
"log": [
"28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)",
"28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:06:20 - Preparing 1 Test Task:",
"28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)",
"28.10.2020 11:06:20 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:06:20 - with parameters: ",
"28.10.2020 11:06:20 - etf.testcases = *",
"28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:06:20 - Setting state to CREATED",
"28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z",
"28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:06:22 - Project Properties: ",
"28.10.2020 11:06:22 - etf.testcases - * ",
"28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ",
"28.10.2020 11:06:22 - username - ",
"28.10.2020 11:06:22 - authUser - ",
"28.10.2020 11:06:22 - authMethod - basic ",
"28.10.2020 11:06:22 - TestRunTask initialized"
]
}
11:06:23.887 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:24.406 response time in milliseconds: 518.38
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:06:24 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"4","max":"5","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized"]}
11:06:24.406 retry condition not satisfied: response.val == response.max
11:06:24.406 sleeping before retry #1
11:06:29.408 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:32.101 response time in milliseconds: 2691.57
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:06:32 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"34","max":"35","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized"]}
11:06:32.101 retry condition not satisfied: response.val == response.max
11:06:32.101 sleeping before retry #2
11:06:37.102 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:37.722 response time in milliseconds: 617.65
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:06:37 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"58","max":"59","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized"]}
11:06:37.723 retry condition not satisfied: response.val == response.max
11:06:37.723 sleeping before retry #3
11:06:42.724 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:43.253 response time in milliseconds: 528.26
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:06:43 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"133","max":"134","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized","28.10.2020 11:06:40 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:43.260 retry condition not satisfied: response.val == response.max
11:06:43.260 sleeping before retry #4
11:06:48.261 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:48.776 response time in milliseconds: 512.01
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:06:48 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"164","max":"165","log":["28.10.2020 11:06:20 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:20 UTC 2020)","28.10.2020 11:06:20 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:20 - Preparing 1 Test Task:","28.10.2020 11:06:20 - TestTask 1 (a90ad65a-b5cb-4362-acc9-31df4fce0f70)","28.10.2020 11:06:20 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:20 - with parameters: ","28.10.2020 11:06:20 - etf.testcases = *","28.10.2020 11:06:20 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:20 - Setting state to CREATED","28.10.2020 11:06:20 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:20 - Starting TestRun.df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a at 2020-10-28T11:06:22Z","28.10.2020 11:06:22 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:22 - Project Properties: ","28.10.2020 11:06:22 - etf.testcases - * ","28.10.2020 11:06:22 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:06:22 - username - ","28.10.2020 11:06:22 - authUser - ","28.10.2020 11:06:22 - authMethod - basic ","28.10.2020 11:06:22 - TestRunTask initialized","28.10.2020 11:06:40 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:48.776 retry condition not satisfied: response.val == response.max
11:06:48.776 sleeping before retry #5
11:06:53.778 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:55.796 response time in milliseconds: 2018.18
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:06:55 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:06:55.797 retry condition satisfied
11:06:55.797 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:06:55.798 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:59.832 response time in milliseconds: 3053.25
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Cache-Control: public, max-age=120
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:06:58 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Last-Modified: Wed, 28 Oct 2020 11:06:56 GMT
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a.json","testRuns":{"TestRun":{"id":"EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:20.302Z","testTasks":{"TestTask":{"id":"EIDa90ad65a-b5cb-4362-acc9-31df4fce0f70","parent":{"ref":"EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7abe4162-8c50-48ae-9d42-1cf4e1dba231"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID5c511005-9448-46df-88cc-056e216a47df"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7abe4162-8c50-48ae-9d42-1cf4e1dba231","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:17.203Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:19.884Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID5c511005-9448-46df-88cc-056e216a47df","testObject":{"ref":"EID7abe4162-8c50-48ae-9d42-1cf4e1dba231"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee328b2-0175-1000-9e13-c0ffac2dcef8","testCaseResults":{"TestCaseResult":[{"id":"EID6ee328b4-0175-1000-09bf-baf58179f399","testStepResults":{"TestStepResult":[{"id":"EID6ee328b5-0175-1000-066d-4e9055ffe8d2","parent":{"ref":"EID6ee328b4-0175-1000-09bf-baf58179f399"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:06:22Z","duration":13,"status":"PASSED"},{"id":"EID6ee328c2-0175-1000-988c-a7e84b5ff85e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32d78-0175-1000-daff-d5ab166ddd4e","parent":{"ref":"EID6ee328c2-0175-1000-988c-a7e84b5ff85e"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32d78-0175-1000-fd69-fe25c597b24c","parent":{"ref":"EID6ee328c2-0175-1000-988c-a7e84b5ff85e"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32d78-0175-1000-f5da-d3c449583590","parent":{"ref":"EID6ee328c2-0175-1000-988c-a7e84b5ff85e"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32d78-0175-1000-f92a-259a6c884611","parent":{"ref":"EID6ee328c2-0175-1000-988c-a7e84b5ff85e"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDea00d514-cb2a-4b8a-a5e7-04f1d2e7096c"},{"ref":"EIDe43cd953-f878-4cf9-9df8-fc215feb8398"},{"ref":"EIDad76908f-c66b-441c-9ef9-cef6bc91eddf"}]},"parent":{"ref":"EID6ee328b4-0175-1000-09bf-baf58179f399"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:06:22Z","duration":1114,"status":"PASSED"}]},"parent":{"ref":"EID6ee328b2-0175-1000-9e13-c0ffac2dcef8"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:06:22Z","duration":1220,"status":"PASSED"},{"id":"EID6ee32d78-0175-1000-cd07-9ce9c25b3cc1","testStepResults":{"TestStepResult":{"id":"EID6ee32d78-0175-1000-6012-a6c809e7b5d2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee330ee-0175-1000-2d65-c14a6d8ad14a","parent":{"ref":"EID6ee32d78-0175-1000-6012-a6c809e7b5d2"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee330ee-0175-1000-3bb8-f5e8fb6fb782","parent":{"ref":"EID6ee32d78-0175-1000-6012-a6c809e7b5d2"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee330ee-0175-1000-3ba9-c6f7cf7d953e","parent":{"ref":"EID6ee32d78-0175-1000-6012-a6c809e7b5d2"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd4ab3146-e1fe-48fa-a05f-9cb0cfab5d9d"},{"ref":"EIDa309b385-559a-414c-b836-b4cc03c94d24"},{"ref":"EID9e4efc8f-87a8-4ff1-aec4-7e643ae1702c"}]},"parent":{"ref":"EID6ee32d78-0175-1000-cd07-9ce9c25b3cc1"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:06:23Z","duration":798,"status":"PASSED"}},"parent":{"ref":"EID6ee328b2-0175-1000-9e13-c0ffac2dcef8"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:06:23Z","duration":886,"status":"PASSED"}]},"parent":{"ref":"EID5c511005-9448-46df-88cc-056e216a47df"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:06:22Z","duration":2108,"status":"PASSED"},{"id":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76","testCaseResults":{"TestCaseResult":[{"id":"EID6ee330ee-0175-1000-15e7-3bedecf63217","testStepResults":{"TestStepResult":[{"id":"EID6ee330ee-0175-1000-e425-34373a6d9e39","parent":{"ref":"EID6ee330ee-0175-1000-15e7-3bedecf63217"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:06:24Z","duration":798,"status":"PASSED"},{"id":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee331df-0175-1000-d081-aa430e29249c","parent":{"ref":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee331df-0175-1000-c9be-090107c4be42","parent":{"ref":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee331df-0175-1000-7fee-fa0af760d912","parent":{"ref":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee331df-0175-1000-42b2-2a40dc6e644a","parent":{"ref":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee331df-0175-1000-fbc4-b84931779b3a","parent":{"ref":"EID6ee330ee-0175-1000-bf1b-6453cc30a3a4"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:06:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID19a9bac5-0c67-435b-a8b8-cf14d311d394"},{"ref":"EID0ec6d6ec-e429-4f00-a323-2f8335e0ac05"},{"ref":"EID2c997aa1-609c-4ac8-8a61-38422b7612c1"}]},"parent":{"ref":"EID6ee330ee-0175-1000-15e7-3bedecf63217"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:06:24Z","duration":142,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:06:24Z","duration":241,"status":"PASSED"},{"id":"EID6ee331df-0175-1000-7348-9ad87b1f1ec9","testStepResults":{"TestStepResult":[{"id":"EID6ee331df-0175-1000-dab6-7f8cc68caabb","attachments":{"attachment":[{"ref":"EID6069f1b2-7762-4d13-9e8c-dfcb7f95051b"},{"ref":"EID49e65f73-c055-4484-9e9f-38bd901f0cfa"}]},"parent":{"ref":"EID6ee331df-0175-1000-7348-9ad87b1f1ec9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:06:24Z","duration":506,"status":"PASSED"},{"id":"EID6ee33401-0175-1000-3ba2-c746eec40d76","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee33613-0175-1000-b8a0-5319148a9a57","parent":{"ref":"EID6ee33401-0175-1000-3ba2-c746eec40d76"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:06:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee33613-0175-1000-96e4-2d4d7c6661e0","parent":{"ref":"EID6ee33401-0175-1000-3ba2-c746eec40d76"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:06:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee33613-0175-1000-fefb-cc0d42c9e03a","parent":{"ref":"EID6ee33401-0175-1000-3ba2-c746eec40d76"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:06:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee33613-0175-1000-a485-47b06bfbd9e6","parent":{"ref":"EID6ee33401-0175-1000-3ba2-c746eec40d76"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:06:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb9892162-2331-4727-8858-0a8138a2c6fe"},{"ref":"EID32ad086d-f626-4baf-801a-8d4ad69abf50"},{"ref":"EID5a5d3937-eb37-4921-a310-fe418b3ef4ff"}]},"parent":{"ref":"EID6ee331df-0175-1000-7348-9ad87b1f1ec9"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:06:25Z","duration":437,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:06:24Z","duration":1076,"status":"PASSED"},{"id":"EID6ee33613-0175-1000-2e98-74c33fdb9793","testStepResults":{"TestStepResult":[{"id":"EID6ee33613-0175-1000-ae02-f23bb39fed6c","attachments":{"attachment":[{"ref":"EIDfd101b3d-090b-4951-b6d3-47433a70ad77"},{"ref":"EID675c33d9-6bd5-4734-8d5c-c325dbd5ef42"}]},"parent":{"ref":"EID6ee33613-0175-1000-2e98-74c33fdb9793"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:06:25Z","duration":142,"status":"PASSED"},{"id":"EID6ee336ce-0175-1000-5ff3-f67beb464766","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee339f2-0175-1000-aa51-8a0c1545a34b","parent":{"ref":"EID6ee336ce-0175-1000-5ff3-f67beb464766"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee339f2-0175-1000-9634-fd3aa147c29f","parent":{"ref":"EID6ee336ce-0175-1000-5ff3-f67beb464766"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee339f2-0175-1000-d92b-4e071b7d4189","parent":{"ref":"EID6ee336ce-0175-1000-5ff3-f67beb464766"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee339f2-0175-1000-8395-f5f1444c7569","parent":{"ref":"EID6ee336ce-0175-1000-5ff3-f67beb464766"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee339f2-0175-1000-1bc5-c3acb3e84cca","parent":{"ref":"EID6ee336ce-0175-1000-5ff3-f67beb464766"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeb54781e-8cd0-4931-908d-a2385d8e32dd"},{"ref":"EID0906a1fe-d998-4385-845e-580093815e2e"},{"ref":"EID4dbd04a7-d6fb-4d8e-ae18-2a1e378ca32b"}]},"parent":{"ref":"EID6ee33613-0175-1000-2e98-74c33fdb9793"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:06:25Z","duration":665,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:06:25Z","duration":991,"status":"PASSED"},{"id":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0","testStepResults":{"TestStepResult":[{"id":"EID6ee339fb-0175-1000-96f2-241350a98b05","attachments":{"attachment":[{"ref":"EIDae8e8216-82c2-4a70-bcfe-4490c7b08bc1"},{"ref":"EIDa725eafc-755e-4e1c-ab92-0cb236da0a8b"}]},"parent":{"ref":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:06:26Z","duration":225,"status":"PASSED"},{"id":"EID6ee33b01-0175-1000-8641-022555cddd44","parent":{"ref":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:06:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee33b01-0175-1000-1869-152bd4c5fd79","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee33de8-0175-1000-ee88-e2da62026a50","parent":{"ref":"EID6ee33b01-0175-1000-1869-152bd4c5fd79"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:06:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee33de8-0175-1000-5e42-3348a54705e2","parent":{"ref":"EID6ee33b01-0175-1000-1869-152bd4c5fd79"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:06:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee33de8-0175-1000-db9e-83f77fa9364b","parent":{"ref":"EID6ee33b01-0175-1000-1869-152bd4c5fd79"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:06:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee33de8-0175-1000-309c-2ee2093d2ae8","parent":{"ref":"EID6ee33b01-0175-1000-1869-152bd4c5fd79"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:06:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5c4be46c-f5fd-4057-9a6b-e53343b9fbd4"},{"ref":"EID869a52ee-2ca1-4167-8d39-698550a82d54"},{"ref":"EIDfa4208d8-feb3-485d-89bb-e4e4be4e7bf7"}]},"parent":{"ref":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:06:26Z","duration":648,"status":"PASSED"},{"id":"EID6ee33de8-0175-1000-c356-69dc9ee79b3d","attachments":{"attachment":{"ref":"EIDf9f7471d-5f64-424a-bf47-c53d92ff3278"}},"parent":{"ref":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:06:27Z","duration":1,"status":"PASSED"},{"id":"EID6ee33df5-0175-1000-b282-829640c62fd8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3423b-0175-1000-c2a1-95e9e0e732a5","parent":{"ref":"EID6ee33df5-0175-1000-b282-829640c62fd8"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:06:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee3423b-0175-1000-246a-05700e307395","parent":{"ref":"EID6ee33df5-0175-1000-b282-829640c62fd8"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:06:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee3423b-0175-1000-e9dc-2c66648d4f89","parent":{"ref":"EID6ee33df5-0175-1000-b282-829640c62fd8"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:06:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee3423b-0175-1000-c86d-dd6aaf80cad0","parent":{"ref":"EID6ee33df5-0175-1000-b282-829640c62fd8"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:06:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee3423b-0175-1000-fcc6-14a23c6785cd","parent":{"ref":"EID6ee33df5-0175-1000-b282-829640c62fd8"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:06:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa8f87076-135b-4a10-ba4b-769164059699"},{"ref":"EID003bffb3-4310-43bf-9ed3-17fc09f95302"},{"ref":"EID1b3741b5-2fb0-4255-a731-562a43661d38"}]},"parent":{"ref":"EID6ee339f2-0175-1000-9b3b-0ad979fdb3c0"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:06:27Z","duration":883,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:06:26Z","duration":2130,"status":"PASSED"},{"id":"EID6ee34245-0175-1000-b30a-9636c93f4976","testStepResults":{"TestStepResult":[{"id":"EID6ee34245-0175-1000-b7a2-f75dd808d2c8","attachments":{"attachment":[{"ref":"EIDa13d4bfb-ca96-4424-af54-8289b8da387a"},{"ref":"EID97936430-2206-4362-b5ae-cf53d4ffc4b4"}]},"parent":{"ref":"EID6ee34245-0175-1000-b30a-9636c93f4976"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:06:28Z","duration":236,"status":"PASSED"},{"id":"EID6ee343ef-0175-1000-1aad-603c88c2af6a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3448f-0175-1000-7af1-3f6b5ab83b14","parent":{"ref":"EID6ee343ef-0175-1000-1aad-603c88c2af6a"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:06:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee34490-0175-1000-7949-bbe143796c74","parent":{"ref":"EID6ee343ef-0175-1000-1aad-603c88c2af6a"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:06:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee34490-0175-1000-f3fe-0090d60af1a5","parent":{"ref":"EID6ee343ef-0175-1000-1aad-603c88c2af6a"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:06:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee34490-0175-1000-5d88-15063d2a6f78","parent":{"ref":"EID6ee343ef-0175-1000-1aad-603c88c2af6a"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:06:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID75b91d75-7503-48e2-aac5-a8eb901e3ccb"},{"ref":"EIDa5f93d65-c2c2-4157-a275-e5bebfb1e337"},{"ref":"EID1efc96dd-57bc-499f-acfc-fae0d884eecb"}]},"parent":{"ref":"EID6ee34245-0175-1000-b30a-9636c93f4976"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:06:29Z","duration":54,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:06:28Z","duration":587,"status":"PASSED"},{"id":"EID6ee34491-0175-1000-dc95-e8b266115c1c","testStepResults":{"TestStepResult":[{"id":"EID6ee34491-0175-1000-b144-12d5a81734ea","attachments":{"attachment":[{"ref":"EID6634b03b-fe9d-46e4-8f4c-23afc8263cc0"},{"ref":"EID52beb9ea-a4f2-4e9c-a8d4-476449416485"}]},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:06:29Z","duration":118,"status":"PASSED"},{"id":"EID6ee34f5e-0175-1000-8d71-9f2d8f5f885d","parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:06:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee34f5e-0175-1000-1939-9fc1b28bc881","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee35214-0175-1000-cffe-3688a2aee75e","parent":{"ref":"EID6ee34f5e-0175-1000-1939-9fc1b28bc881"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:06:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee35214-0175-1000-c22b-edc7d500ae2a","parent":{"ref":"EID6ee34f5e-0175-1000-1939-9fc1b28bc881"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:06:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee35215-0175-1000-f308-944b07606142","parent":{"ref":"EID6ee34f5e-0175-1000-1939-9fc1b28bc881"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:06:32Z","duration":0,"status":"PASSED"},{"id":"EID6ee35215-0175-1000-d2c1-faf30dbde63f","parent":{"ref":"EID6ee34f5e-0175-1000-1939-9fc1b28bc881"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:06:32Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4c90490e-5b20-444a-b669-89ede8e92490"},{"ref":"EIDc748d4a7-4ea2-49f4-aca0-4bace3bb0065"},{"ref":"EIDcff41a73-cd9f-4498-83ab-fe14169d3fac"}]},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:06:32Z","duration":434,"status":"PASSED"},{"id":"EID6ee3521d-0175-1000-9cdc-f327330316a5","attachments":{"attachment":{"ref":"EID93a49d22-31ff-4e3e-bb50-4c23ae2e04df"}},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:06:32Z","duration":2,"status":"PASSED"},{"id":"EID6ee35267-0175-1000-f308-5a283a2d80f8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee35345-0175-1000-8ad9-e35f61756339","parent":{"ref":"EID6ee35267-0175-1000-f308-5a283a2d80f8"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee35345-0175-1000-1340-441dedff7521","parent":{"ref":"EID6ee35267-0175-1000-f308-5a283a2d80f8"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee35345-0175-1000-6488-6d664c7af591","parent":{"ref":"EID6ee35267-0175-1000-f308-5a283a2d80f8"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID741ea249-e317-40f0-82c0-aa03cb2e2613"},{"ref":"EIDa876c99c-8830-4c05-857c-74531543135a"},{"ref":"EIDe34471dd-8ebe-4ac9-bc57-dcf4ca9cb725"}]},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:06:32Z","duration":159,"status":"PASSED"},{"id":"EID6ee35345-0175-1000-3fa0-34ad9c27ae0d","attachments":{"attachment":{"ref":"EIDb64ef53e-f9d9-469a-80ef-adedeeb65db9"}},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:06:33Z","duration":1,"status":"PASSED"},{"id":"EID6ee35353-0175-1000-e541-3ac5b3fc103c","attachments":{"attachment":{"ref":"EID7c39ed2b-a260-49a1-9406-9b116fd5e0a0"}},"parent":{"ref":"EID6ee34491-0175-1000-dc95-e8b266115c1c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:06:29Z","duration":3793,"status":"PASSED"},{"id":"EID6ee35362-0175-1000-ce2a-984c68da84ca","testStepResults":{"TestStepResult":[{"id":"EID6ee35362-0175-1000-ed80-e9445ecf4816","attachments":{"attachment":[{"ref":"EIDcd7be1ca-a302-4aac-92f1-82b262852492"},{"ref":"EID82f3fcd0-d243-4d19-b670-b738f54562d9"}]},"parent":{"ref":"EID6ee35362-0175-1000-ce2a-984c68da84ca"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:06:33Z","duration":149,"status":"PASSED"},{"id":"EID6ee3543d-0175-1000-4303-4dd3cd3b1895","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee354f0-0175-1000-fa8b-ec40c83053da","parent":{"ref":"EID6ee3543d-0175-1000-4303-4dd3cd3b1895"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee354f0-0175-1000-9ef5-008a48b23a90","parent":{"ref":"EID6ee3543d-0175-1000-4303-4dd3cd3b1895"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee354f0-0175-1000-2224-a062351bc0fa","parent":{"ref":"EID6ee3543d-0175-1000-4303-4dd3cd3b1895"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee354f0-0175-1000-6763-9e5b981be0b1","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee3543d-0175-1000-4303-4dd3cd3b1895"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:06:33Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID00003ddf-ca2a-4001-8556-b4bac9983944"},{"ref":"EID2d0cc445-3f9c-4279-8e02-940908f70948"},{"ref":"EID8da56b87-9c13-4356-8ed0-f1f4fb6817d0"}]},"parent":{"ref":"EID6ee35362-0175-1000-ce2a-984c68da84ca"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:06:33Z","duration":79,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:06:33Z","duration":399,"status":"PASSED_MANUAL"},{"id":"EID6ee354f1-0175-1000-f71c-7572c7f0a1b2","testStepResults":{"TestStepResult":{"id":"EID6ee354f1-0175-1000-16f9-6e696b6453fe","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee35807-0175-1000-c4b3-52880536885a","parent":{"ref":"EID6ee354f1-0175-1000-16f9-6e696b6453fe"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:06:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee35807-0175-1000-0f30-8bc5e60d8df6","parent":{"ref":"EID6ee354f1-0175-1000-16f9-6e696b6453fe"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:06:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee35807-0175-1000-d846-98655b7763fb","parent":{"ref":"EID6ee354f1-0175-1000-16f9-6e696b6453fe"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:06:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee35807-0175-1000-dcb2-c87da1a87952","parent":{"ref":"EID6ee354f1-0175-1000-16f9-6e696b6453fe"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:06:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID054be42a-aac6-45e2-907a-19d62a6b0c60"},{"ref":"EID077443fb-6fcb-4cf5-91cf-a1c684bf86c8"},{"ref":"EIDccf4c8fd-80d4-4e2c-b52f-05a8a137dcd7"}]},"parent":{"ref":"EID6ee354f1-0175-1000-f71c-7572c7f0a1b2"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:06:33Z","duration":243,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:06:33Z","duration":2585,"status":"PASSED"},{"id":"EID6ee35f0a-0175-1000-3d03-661eb7021225","testStepResults":{"TestStepResult":{"id":"EID6ee35f0b-0175-1000-37a6-3cdaa1d509ed","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee35fdd-0175-1000-6266-04022263b9ff","parent":{"ref":"EID6ee35f0b-0175-1000-37a6-3cdaa1d509ed"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:06:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee35fdd-0175-1000-ad9d-06e31b175fff","parent":{"ref":"EID6ee35f0b-0175-1000-37a6-3cdaa1d509ed"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:06:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee35fdd-0175-1000-ce8a-98b56ab3449f","parent":{"ref":"EID6ee35f0b-0175-1000-37a6-3cdaa1d509ed"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:06:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee35fdd-0175-1000-2942-fe24f7ff6a91","parent":{"ref":"EID6ee35f0b-0175-1000-37a6-3cdaa1d509ed"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:06:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID489acee5-e337-4034-9359-f121555902e5"},{"ref":"EIDfcfcf6d4-5e4d-4278-a008-ba7e38a2e818"},{"ref":"EIDd43d1d95-0a86-4045-8a80-e96c1fdd2f80"}]},"parent":{"ref":"EID6ee35f0a-0175-1000-3d03-661eb7021225"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:06:36Z","duration":51,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:06:36Z","duration":212,"status":"PASSED"},{"id":"EID6ee35fed-0175-1000-c6f1-8c9bc4ab869c","testStepResults":{"TestStepResult":[{"id":"EID6ee35fed-0175-1000-6c4c-5fb53e03bd2c","attachments":{"attachment":[{"ref":"EID6a6ffd8e-f3ae-4e73-b71b-9a0a67a03095"},{"ref":"EID2828a0ab-43ed-4ef9-880a-162f7e13c2fa"},{"ref":"EID3e6150f9-81eb-4f6d-b7d0-3f7e5e63f841"},{"ref":"EIDeee302a2-cdbd-4856-8e11-751af77c6d40"},{"ref":"EID06ebc2a6-f100-47ae-a07c-3bb7445dd5fc"},{"ref":"EID8ffe661d-a3e5-46e4-90b4-0408208335cf"},{"ref":"EIDb4abc405-c28a-4616-afd4-ea9fea261082"},{"ref":"EIDcac6708d-f512-4f3e-b658-a6c00a95255e"},{"ref":"EID00d32160-c80b-4e34-b7e0-dbbf7eef457f"},{"ref":"EID5ff7ce8e-0882-42aa-924d-9d39380e1712"},{"ref":"EID6a841413-6475-47d9-a712-91c617d873c6"},{"ref":"EID2bb43f8d-c6d7-43aa-8a06-704f576da636"}]},"parent":{"ref":"EID6ee35fed-0175-1000-c6f1-8c9bc4ab869c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:06:36Z","duration":777,"status":"PASSED"},{"id":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36452-0175-1000-26d4-b6745c478cd4","parent":{"ref":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee36452-0175-1000-a78c-f4651150cec2","parent":{"ref":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee36452-0175-1000-448d-8393c58f0834","parent":{"ref":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee36452-0175-1000-34ff-17cc3f998f53","parent":{"ref":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee36452-0175-1000-b010-6b5a2b247f1a","parent":{"ref":"EID6ee363c1-0175-1000-f79c-3f7d6a45eee0"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb3410385-9b63-4002-b859-f0a113912cb2"},{"ref":"EID4ca3e2e6-4e06-4cdb-a49a-f6459e4b8412"},{"ref":"EIDc98ea2be-3fcf-4717-b999-827346fad906"}]},"parent":{"ref":"EID6ee35fed-0175-1000-c6f1-8c9bc4ab869c"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:06:37Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:06:36Z","duration":1125,"status":"PASSED"},{"id":"EID6ee36452-0175-1000-015b-43f6c1f467f7","testStepResults":{"TestStepResult":{"id":"EID6ee36452-0175-1000-97a0-ea2623a40d25","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee365a2-0175-1000-e73c-a79c9df06a38","parent":{"ref":"EID6ee36452-0175-1000-97a0-ea2623a40d25"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee365a2-0175-1000-d8e5-d5afd5cabbbb","parent":{"ref":"EID6ee36452-0175-1000-97a0-ea2623a40d25"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee365a2-0175-1000-f213-b2cc839ff6d6","parent":{"ref":"EID6ee36452-0175-1000-97a0-ea2623a40d25"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee365a2-0175-1000-d2e3-2e936fc14f41","parent":{"ref":"EID6ee36452-0175-1000-97a0-ea2623a40d25"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:06:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDca36f6f1-0f0c-47ba-8c01-d2e894ac3f4a"},{"ref":"EIDbca254cb-5f21-4fa1-a56b-4c5c483d817a"},{"ref":"EID3ab485e5-fe4d-4f69-bb43-e03d683c731a"}]},"parent":{"ref":"EID6ee36452-0175-1000-015b-43f6c1f467f7"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:06:37Z","duration":260,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:06:37Z","duration":345,"status":"PASSED"},{"id":"EID6ee365ab-0175-1000-a14c-2e0e2acaf022","testStepResults":{"TestStepResult":{"id":"EID6ee365ac-0175-1000-6b01-060f462a3386","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3668e-0175-1000-369b-1fc6d6613d8b","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-8b74-7c099ebd3b7f","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-ba7b-23e0f7597479","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-032c-19578fb32839","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-b924-19aa2e90ba59","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-39b1-0a3b5aee2b0a","parent":{"ref":"EID6ee365ac-0175-1000-6b01-060f462a3386"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDea186e04-136c-48d3-8062-7ad0af94801c"},{"ref":"EIDc4b957cc-d7e2-4095-b58a-af8bd12d383d"},{"ref":"EID0187e95c-4c22-454f-b381-3ad4225c4a86"}]},"parent":{"ref":"EID6ee365ab-0175-1000-a14c-2e0e2acaf022"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:06:37Z","duration":115,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:06:37Z","duration":227,"status":"PASSED"},{"id":"EID6ee3668e-0175-1000-97b5-4bfba8fe33f8","testStepResults":{"TestStepResult":{"id":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36835-0175-1000-8317-779d83dd9614","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36835-0175-1000-b78c-a9db976035c1","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36835-0175-1000-c28e-53e8e499ab30","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36835-0175-1000-27ab-4474e120f321","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36835-0175-1000-ed47-81ae2378e2a7","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36835-0175-1000-3523-6124e402d4b6","parent":{"ref":"EID6ee3668e-0175-1000-2082-fd2d10ebd70a"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID61657a0f-6517-4844-8fc4-e710e9a12cb6"},{"ref":"EIDf0c0556d-eee7-47c4-913c-cdb90948fbe4"},{"ref":"EID80f3600a-49f2-401d-b87f-5f41729d0e45"}]},"parent":{"ref":"EID6ee3668e-0175-1000-97b5-4bfba8fe33f8"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:06:38Z","duration":302,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:06:38Z","duration":424,"status":"PASSED"},{"id":"EID6ee36836-0175-1000-8eaf-04568d9b3d04","testStepResults":{"TestStepResult":{"id":"EID6ee36836-0175-1000-b082-0bdbc4baf01b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36945-0175-1000-f72f-a94c2bfa2990","parent":{"ref":"EID6ee36836-0175-1000-b082-0bdbc4baf01b"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36946-0175-1000-af11-18529bf854af","parent":{"ref":"EID6ee36836-0175-1000-b082-0bdbc4baf01b"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36946-0175-1000-c088-0196cf10292b","parent":{"ref":"EID6ee36836-0175-1000-b082-0bdbc4baf01b"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee36946-0175-1000-10f1-ee4fea021c89","parent":{"ref":"EID6ee36836-0175-1000-b082-0bdbc4baf01b"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:06:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID893ff786-37e2-4ceb-a710-f653624477cd"},{"ref":"EID3f17b153-310c-4787-bb9c-2348f63a3469"},{"ref":"EID73dd563c-4555-4d14-ade7-3f86e6a3ed4b"}]},"parent":{"ref":"EID6ee36836-0175-1000-8eaf-04568d9b3d04"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:06:38Z","duration":176,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:06:38Z","duration":272,"status":"PASSED"},{"id":"EID6ee36946-0175-1000-4442-d1c992d74a5f","testStepResults":{"TestStepResult":[{"id":"EID6ee36946-0175-1000-1262-5628427118a8","attachments":{"attachment":[{"ref":"EID059d87e1-a260-407d-b63b-e4b5f3560aa5"},{"ref":"EID377f4e72-4fcc-471b-ad18-5a04162ba424"},{"ref":"EID0d4545d9-0790-41f1-b1af-488db7ffa931"},{"ref":"EID446de59f-bf5d-45ea-875e-1253e312ffb9"}]},"parent":{"ref":"EID6ee36946-0175-1000-4442-d1c992d74a5f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:06:38Z","duration":349,"status":"PASSED"},{"id":"EID6ee36ad1-0175-1000-626c-1c1eb22ad2b2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36d20-0175-1000-fbe3-09855f5b8c6f","parent":{"ref":"EID6ee36ad1-0175-1000-626c-1c1eb22ad2b2"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:06:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee36d20-0175-1000-5c8a-28e0f489a93b","parent":{"ref":"EID6ee36ad1-0175-1000-626c-1c1eb22ad2b2"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:06:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee36d20-0175-1000-2230-0c68c5bcac4f","parent":{"ref":"EID6ee36ad1-0175-1000-626c-1c1eb22ad2b2"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:06:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee36d20-0175-1000-b774-310b3afc5677","parent":{"ref":"EID6ee36ad1-0175-1000-626c-1c1eb22ad2b2"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:06:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6cd5d412-f5cc-4515-b1ef-736c1c70ea66"},{"ref":"EID0e31e3e7-2ae7-459f-aff1-5ac03ba4e43f"},{"ref":"EID6ede91e5-3a43-4678-aeb8-2af2ec3d2ab3"}]},"parent":{"ref":"EID6ee36946-0175-1000-4442-d1c992d74a5f"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:06:39Z","duration":505,"status":"PASSED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:06:38Z","duration":993,"status":"PASSED"},{"id":"EID6ee36d28-0175-1000-3777-12718b48d3c5","testStepResults":{"TestStepResult":{"id":"EID6ee36d28-0175-1000-7416-8f2db9baad5c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36f2c-0175-1000-e338-745eeb7aa687","parent":{"ref":"EID6ee36d28-0175-1000-7416-8f2db9baad5c"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36f2c-0175-1000-05ce-9a96a15a71af","parent":{"ref":"EID6ee36d28-0175-1000-7416-8f2db9baad5c"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36f2c-0175-1000-e203-79d1edb490f9","parent":{"ref":"EID6ee36d28-0175-1000-7416-8f2db9baad5c"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36f2c-0175-1000-2b06-90b04d118f92","parent":{"ref":"EID6ee36d28-0175-1000-7416-8f2db9baad5c"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd4ec2a66-a5d2-40b0-899e-75c060f8b5eb"},{"ref":"EID9d8a94a7-f07e-4c11-8d21-f9c2f7786a65"},{"ref":"EIDc6f836b6-0f0c-41e7-92ac-8b23d4ff58c0"}]},"parent":{"ref":"EID6ee36d28-0175-1000-3777-12718b48d3c5"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:06:39Z","duration":365,"status":"PASSED"}},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:06:39Z","duration":516,"status":"PASSED"},{"id":"EID6ee36f2d-0175-1000-ca06-fb56dc155be6","testStepResults":{"TestStepResult":[{"id":"EID6ee36f2d-0175-1000-c45c-30a6412bb860","parent":{"ref":"EID6ee36f2d-0175-1000-ca06-fb56dc155be6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36f2d-0175-1000-797b-a0a41955c76c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee36fcd-0175-1000-6e22-ed4c367c78bd","parent":{"ref":"EID6ee36f2d-0175-1000-797b-a0a41955c76c"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36fcd-0175-1000-287d-3f219ef06136","parent":{"ref":"EID6ee36f2d-0175-1000-797b-a0a41955c76c"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36fcd-0175-1000-91bc-d93e4a941be8","parent":{"ref":"EID6ee36f2d-0175-1000-797b-a0a41955c76c"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee36fcd-0175-1000-dd3d-1cac233409f0","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee36f2d-0175-1000-797b-a0a41955c76c"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9783f740-b43a-42bf-9e0f-0d57eeed3ea2"},{"ref":"EID1c47cdb1-1686-4cd4-bda5-c41df92f9e98"},{"ref":"EIDa8887c85-e79a-49f3-9460-edf1589f1124"}]},"parent":{"ref":"EID6ee36f2d-0175-1000-ca06-fb56dc155be6"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:06:40Z","duration":40,"status":"FAILED"}]},"parent":{"ref":"EID6ee330ee-0175-1000-a03e-4c5ae2d91c76"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:06:40Z","duration":243,"status":"FAILED"}]},"parent":{"ref":"EID5c511005-9448-46df-88cc-056e216a47df"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:06:24Z","duration":16179,"status":"FAILED"},{"id":"EID6ee37021-0175-1000-de53-b148f20ef052","testCaseResults":{"TestCaseResult":[{"id":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7","testStepResults":{"TestStepResult":[{"id":"EID6ee37021-0175-1000-3d2d-a90a0fbbc174","parent":{"ref":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee37021-0175-1000-ce70-0cefbd967550","parent":{"ref":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:06:40Z","duration":365,"status":"PASSED"},{"id":"EID6ee37021-0175-1000-eb6f-ddd441cf9add","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee370cb-0175-1000-2c43-c20a6265aedc","parent":{"ref":"EID6ee37021-0175-1000-eb6f-ddd441cf9add"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee370cb-0175-1000-13da-93d70b2a288a","parent":{"ref":"EID6ee37021-0175-1000-eb6f-ddd441cf9add"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee370cb-0175-1000-076d-7e3ad2e77ac8","parent":{"ref":"EID6ee37021-0175-1000-eb6f-ddd441cf9add"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8346ab5b-d7b8-4371-a4b4-dcda179da0e7"},{"ref":"EID2ae61cb4-ef77-4cae-8c6c-70ef89eda5c8"},{"ref":"EID1447c337-53d5-4aa5-995c-0393365879f3"}]},"parent":{"ref":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:06:40Z","duration":52,"status":"PASSED"},{"id":"EID6ee370cb-0175-1000-1d29-a17c8b0f4879","attachments":{"attachment":{"ref":"EID8519004e-f5d4-44d3-9595-fba11b60bf65"}},"parent":{"ref":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:06:40Z","duration":0,"status":"PASSED"},{"id":"EID6ee370d8-0175-1000-f84d-efde4825584a","parent":{"ref":"EID6ee37021-0175-1000-5fcf-1a955bf4ddf7"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:06:40Z","duration":15,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:06:40Z","duration":199,"status":"PASSED"},{"id":"EID6ee370e8-0175-1000-9785-ad175eefa180","testStepResults":{"TestStepResult":[{"id":"EID6ee370e8-0175-1000-dedd-df9cbc577a89","parent":{"ref":"EID6ee370e8-0175-1000-9785-ad175eefa180"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:06:40Z","duration":798,"status":"PASSED"},{"id":"EID6ee370f3-0175-1000-db19-20b88923535a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37229-0175-1000-84cd-20f0efd7c8dc","parent":{"ref":"EID6ee370f3-0175-1000-db19-20b88923535a"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37229-0175-1000-bda5-f8609a171402","parent":{"ref":"EID6ee370f3-0175-1000-db19-20b88923535a"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37229-0175-1000-8f81-86e81f482e37","parent":{"ref":"EID6ee370f3-0175-1000-db19-20b88923535a"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37229-0175-1000-6327-ce5e409d4e43","parent":{"ref":"EID6ee370f3-0175-1000-db19-20b88923535a"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37229-0175-1000-5c89-e128e789ebe1","parent":{"ref":"EID6ee370f3-0175-1000-db19-20b88923535a"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeafd8cbc-3d5b-4472-9968-57959c62cd8d"},{"ref":"EID90bb27c2-1779-4026-a546-9691b0700640"},{"ref":"EID60ceaf8a-0940-4ed1-9483-5e36697e698a"}]},"parent":{"ref":"EID6ee370e8-0175-1000-9785-ad175eefa180"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:06:40Z","duration":231,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:06:40Z","duration":321,"status":"PASSED"},{"id":"EID6ee3722a-0175-1000-d85f-c9ef071a1590","testStepResults":{"TestStepResult":[{"id":"EID6ee3722a-0175-1000-a9d5-453513cae36a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37294-0175-1000-83de-5428a75a0310","parent":{"ref":"EID6ee3722a-0175-1000-a9d5-453513cae36a"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37294-0175-1000-793f-27ef5cc90bdc","parent":{"ref":"EID6ee3722a-0175-1000-a9d5-453513cae36a"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37294-0175-1000-54f8-b71da3514ffd","parent":{"ref":"EID6ee3722a-0175-1000-a9d5-453513cae36a"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6511de26-f626-4dbc-b8fa-a5a7d4fbe769"},{"ref":"EID523e050a-5eb3-47c4-a170-7cf78cc125eb"},{"ref":"EIDb3747de5-162a-4ad3-a526-f69efa689fdc"}]},"parent":{"ref":"EID6ee3722a-0175-1000-d85f-c9ef071a1590"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:06:41Z","duration":40,"status":"PASSED"},{"id":"EID6ee37294-0175-1000-e905-0b5d75bb8630","attachments":{"attachment":{"ref":"EID4d37cc6a-4f36-4bed-8004-a98ba5601fbd"}},"parent":{"ref":"EID6ee3722a-0175-1000-d85f-c9ef071a1590"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:06:41Z","duration":1,"status":"PASSED"},{"id":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37334-0175-1000-38c2-c4afd6540503","parent":{"ref":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37334-0175-1000-8da9-16f1249b37f1","parent":{"ref":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37334-0175-1000-a0de-9e8129427b89","parent":{"ref":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37334-0175-1000-69d7-049878d3fc1e","parent":{"ref":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37334-0175-1000-411e-db5cfed047c2","parent":{"ref":"EID6ee372a2-0175-1000-1e57-0b3ae701c12e"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID159153bb-7671-4106-a5eb-9dc224cf55ee"},{"ref":"EIDccf5a228-7a93-4ca7-b9de-bb67c7b59e1b"},{"ref":"EID09535642-27d8-4b4b-8720-ab0d7edb9440"}]},"parent":{"ref":"EID6ee3722a-0175-1000-d85f-c9ef071a1590"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:06:41Z","duration":50,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:06:41Z","duration":278,"status":"PASSED"},{"id":"EID6ee37340-0175-1000-06ed-128f1fb31368","testStepResults":{"TestStepResult":[{"id":"EID6ee37340-0175-1000-3eb6-5c82aac74bea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee373cd-0175-1000-714f-a1a69ad839f6","parent":{"ref":"EID6ee37340-0175-1000-3eb6-5c82aac74bea"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee373cd-0175-1000-3aae-70eb0f2cab35","parent":{"ref":"EID6ee37340-0175-1000-3eb6-5c82aac74bea"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee373cd-0175-1000-92b7-45c176f25031","parent":{"ref":"EID6ee37340-0175-1000-3eb6-5c82aac74bea"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee373cd-0175-1000-e370-108a799e1dbb","parent":{"ref":"EID6ee37340-0175-1000-3eb6-5c82aac74bea"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb927eb7-3f86-4c24-905e-b001976c7a1c"},{"ref":"EID22c027da-4104-42d7-82a9-2a19823b3ee0"},{"ref":"EIDe908d125-8159-4417-ba7e-ceca2d430e33"}]},"parent":{"ref":"EID6ee37340-0175-1000-06ed-128f1fb31368"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:06:41Z","duration":55,"status":"PASSED"},{"id":"EID6ee373ce-0175-1000-494a-bcb4c7ce51df","attachments":{"attachment":{"ref":"EIDd2d0981b-d245-4e40-8486-f30a34a20629"}},"parent":{"ref":"EID6ee37340-0175-1000-06ed-128f1fb31368"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee373d9-0175-1000-578f-07d3d29c0fb1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37455-0175-1000-fe26-ef74b6762a70","parent":{"ref":"EID6ee373d9-0175-1000-578f-07d3d29c0fb1"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37455-0175-1000-f11d-d781cbf9ffd9","parent":{"ref":"EID6ee373d9-0175-1000-578f-07d3d29c0fb1"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf81a9874-3cbb-461f-955a-164bbb561be4"},{"ref":"EIDac3ddf73-ce26-4157-beda-e735fa848498"}]},"parent":{"ref":"EID6ee37340-0175-1000-06ed-128f1fb31368"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:06:41Z","duration":120,"status":"PASSED"},{"id":"EID6ee37455-0175-1000-0b03-6171ec77fa98","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee374b0-0175-1000-77f9-4c94d151d13b","parent":{"ref":"EID6ee37455-0175-1000-0b03-6171ec77fa98"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee374b0-0175-1000-20a3-b23ce7e3a31d","parent":{"ref":"EID6ee37455-0175-1000-0b03-6171ec77fa98"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee374b0-0175-1000-82e7-149981ee0415","parent":{"ref":"EID6ee37455-0175-1000-0b03-6171ec77fa98"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee374b0-0175-1000-b7ad-15710e15a8f1","parent":{"ref":"EID6ee37455-0175-1000-0b03-6171ec77fa98"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55ae836f-ed3d-4da9-9a2f-04fec34fd837"},{"ref":"EID44b372a2-e512-494d-b71c-e513d3267ef2"},{"ref":"EIDaba7937c-b9c9-4959-957e-e01e73ac093d"}]},"parent":{"ref":"EID6ee37340-0175-1000-06ed-128f1fb31368"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:06:41Z","duration":33,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:06:41Z","duration":368,"status":"PASSED"},{"id":"EID6ee374b0-0175-1000-5b52-d22dea6a0a0f","testStepResults":{"TestStepResult":{"id":"EID6ee374b0-0175-1000-5d80-e4d0b543c683","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37510-0175-1000-2a29-75c47c8729b2","parent":{"ref":"EID6ee374b0-0175-1000-5d80-e4d0b543c683"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37510-0175-1000-c52b-b0abf730be51","parent":{"ref":"EID6ee374b0-0175-1000-5d80-e4d0b543c683"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee37510-0175-1000-b60a-dea488a7a51b","parent":{"ref":"EID6ee374b0-0175-1000-5d80-e4d0b543c683"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5dd8e505-bc37-463e-87b5-7b30589e351d"},{"ref":"EID07a20a26-a3eb-4e93-ab41-c4f6bcafb69d"},{"ref":"EID02515318-bcf2-4257-840c-a6886e052d7e"}]},"parent":{"ref":"EID6ee374b0-0175-1000-5b52-d22dea6a0a0f"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:06:41Z","duration":40,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:06:41Z","duration":96,"status":"PASSED"},{"id":"EID6ee3751c-0175-1000-eb8a-728967b242c1","testStepResults":{"TestStepResult":{"id":"EID6ee3751c-0175-1000-f806-0838554917eb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee375c7-0175-1000-3bbd-c5ff490d0731","parent":{"ref":"EID6ee3751c-0175-1000-f806-0838554917eb"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee375c7-0175-1000-3494-4782a8f24081","parent":{"ref":"EID6ee3751c-0175-1000-f806-0838554917eb"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee375c7-0175-1000-801d-4be36bd84e4c","parent":{"ref":"EID6ee3751c-0175-1000-f806-0838554917eb"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:06:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID50cd1c36-8b85-4b1d-b2da-6120ae7931a2"},{"ref":"EIDf59f0bf5-d7a6-4e12-a6b8-67be85ca9a50"},{"ref":"EID00567e14-9296-46ae-8f3e-68c886b64d03"}]},"parent":{"ref":"EID6ee3751c-0175-1000-eb8a-728967b242c1"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:06:41Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:06:41Z","duration":171,"status":"PASSED"},{"id":"EID6ee375c7-0175-1000-cecc-5cf0f197a86b","testStepResults":{"TestStepResult":{"id":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee377b4-0175-1000-6c0e-5e551cbde019","parent":{"ref":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee377b4-0175-1000-4dad-67028b6dde6b","parent":{"ref":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee377b4-0175-1000-32f5-bd2d94d741d3","parent":{"ref":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee377b4-0175-1000-edcc-b3ce1d08a3bc","parent":{"ref":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee377b4-0175-1000-796e-ed2bcdc66fec","parent":{"ref":"EID6ee375c7-0175-1000-fa5b-9ba9015b899f"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2d091640-616e-45aa-915c-9ae09b911563"},{"ref":"EID5e945003-99cf-4ddb-a8f3-a170af96a8e5"},{"ref":"EID6e17ada7-b93d-48b6-9d54-ed4933b69fb4"}]},"parent":{"ref":"EID6ee375c7-0175-1000-cecc-5cf0f197a86b"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:06:41Z","duration":394,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:06:41Z","duration":493,"status":"PASSED"},{"id":"EID6ee377b5-0175-1000-9fdb-502df83b2dba","testStepResults":{"TestStepResult":{"id":"EID6ee377b5-0175-1000-57a2-6ef2e34e0237","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3784f-0175-1000-c4b5-e4f6823f7a3e","parent":{"ref":"EID6ee377b5-0175-1000-57a2-6ef2e34e0237"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee3784f-0175-1000-983f-431e4bc916ba","parent":{"ref":"EID6ee377b5-0175-1000-57a2-6ef2e34e0237"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee3784f-0175-1000-c17b-4a4d9a5492a8","parent":{"ref":"EID6ee377b5-0175-1000-57a2-6ef2e34e0237"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8f0d81ad-89cc-4e0e-a891-18d2c44ce446"},{"ref":"EIDdf0fb92d-c7bc-4ff8-8f5e-5d378a754b54"},{"ref":"EID6edb7766-c98e-4851-b9a9-ddfe83061d16"}]},"parent":{"ref":"EID6ee377b5-0175-1000-9fdb-502df83b2dba"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:06:42Z","duration":98,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:06:42Z","duration":155,"status":"PASSED"},{"id":"EID6ee37850-0175-1000-eecb-0984bf0fb9a1","testStepResults":{"TestStepResult":{"id":"EID6ee37850-0175-1000-f122-028ec4fcb6ef","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37988-0175-1000-4a3e-50c298255875","parent":{"ref":"EID6ee37850-0175-1000-f122-028ec4fcb6ef"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee37988-0175-1000-432f-ff70d08aa5f9","parent":{"ref":"EID6ee37850-0175-1000-f122-028ec4fcb6ef"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee37988-0175-1000-5997-d9f2077eb48d","parent":{"ref":"EID6ee37850-0175-1000-f122-028ec4fcb6ef"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:06:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID96e65777-0e16-4330-8ade-243607ae86e1"},{"ref":"EID9afd904d-7ee0-4ee9-8029-c774681c13ab"},{"ref":"EID7f5d2458-ff99-4595-9e87-15b9bf979803"}]},"parent":{"ref":"EID6ee37850-0175-1000-eecb-0984bf0fb9a1"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:06:42Z","duration":143,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:06:42Z","duration":312,"status":"PASSED"},{"id":"EID6ee37988-0175-1000-9647-1567aaca972c","testStepResults":{"TestStepResult":{"id":"EID6ee37988-0175-1000-c179-d4b7f69008c4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37c6b-0175-1000-2b7a-c149f748b944","parent":{"ref":"EID6ee37988-0175-1000-c179-d4b7f69008c4"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37c6b-0175-1000-3190-57870b2b566b","parent":{"ref":"EID6ee37988-0175-1000-c179-d4b7f69008c4"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37c6b-0175-1000-578a-24348b804a66","parent":{"ref":"EID6ee37988-0175-1000-c179-d4b7f69008c4"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37c6b-0175-1000-1eb0-981e85420d81","parent":{"ref":"EID6ee37988-0175-1000-c179-d4b7f69008c4"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7208d7ec-e685-402e-ab37-5cb2955ae37e"},{"ref":"EID091a047f-daf5-4b08-a7a0-8045742d553b"},{"ref":"EIDb516f7e8-f8c5-4d19-9c25-fb2fbbff1971"}]},"parent":{"ref":"EID6ee37988-0175-1000-9647-1567aaca972c"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:06:42Z","duration":626,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:06:42Z","duration":739,"status":"PASSED"},{"id":"EID6ee37c6b-0175-1000-1363-59ae975b9d75","testStepResults":{"TestStepResult":{"id":"EID6ee37c6c-0175-1000-c794-a856eb1c8421","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37dde-0175-1000-dc03-8c0cce1ea0a5","parent":{"ref":"EID6ee37c6c-0175-1000-c794-a856eb1c8421"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37dde-0175-1000-be0f-bb1c824cf13b","parent":{"ref":"EID6ee37c6c-0175-1000-c794-a856eb1c8421"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37dde-0175-1000-b519-6b19135ab94d","parent":{"ref":"EID6ee37c6c-0175-1000-c794-a856eb1c8421"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37dde-0175-1000-21d3-35bb45cade86","parent":{"ref":"EID6ee37c6c-0175-1000-c794-a856eb1c8421"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa3fc46e1-e46e-4736-9d03-0330c873d5e5"},{"ref":"EID6603777b-8797-40ff-bbff-f3c6946967c7"},{"ref":"EID4b3dfd43-8dd9-4c4d-9f1a-b39fe0e303a7"}]},"parent":{"ref":"EID6ee37c6b-0175-1000-1363-59ae975b9d75"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:06:43Z","duration":291,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:06:43Z","duration":371,"status":"PASSED"},{"id":"EID6ee37dde-0175-1000-4005-e8eeca240900","testStepResults":{"TestStepResult":[{"id":"EID6ee37ddf-0175-1000-3c9d-115b6eff45b5","parent":{"ref":"EID6ee37dde-0175-1000-4005-e8eeca240900"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37ddf-0175-1000-fc31-612707ad6fdd","parent":{"ref":"EID6ee37dde-0175-1000-4005-e8eeca240900"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":939,"status":"PASSED"},{"id":"EID6ee37ddf-0175-1000-362c-50cd3f58cce8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37ff0-0175-1000-9c69-8e3846f1e026","parent":{"ref":"EID6ee37ddf-0175-1000-362c-50cd3f58cce8"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37ff0-0175-1000-18e0-8e85b582d665","parent":{"ref":"EID6ee37ddf-0175-1000-362c-50cd3f58cce8"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37ff0-0175-1000-395e-f11b5666d70f","parent":{"ref":"EID6ee37ddf-0175-1000-362c-50cd3f58cce8"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37ff0-0175-1000-9ab5-e6eb63d15787","parent":{"ref":"EID6ee37ddf-0175-1000-362c-50cd3f58cce8"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID10289541-3e02-4747-ac20-611d22af55a7"},{"ref":"EIDfaf2545a-a919-4d53-82d2-951f25fbc2ba"},{"ref":"EIDe30d0c33-bbc7-413e-9223-37c428cc78ba"}]},"parent":{"ref":"EID6ee37dde-0175-1000-4005-e8eeca240900"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:06:44Z","duration":418,"status":"PASSED"},{"id":"EID6ee37ff0-0175-1000-419e-8f2dac1d0ed8","attachments":{"attachment":{"ref":"EIDc8d8598b-b0e1-4276-8b9a-36c9c292d997"}},"parent":{"ref":"EID6ee37dde-0175-1000-4005-e8eeca240900"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":1,"status":"PASSED"},{"id":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3843c-0175-1000-b5cf-2a5b0571be1d","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-aa51-4639ef77d218","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-42c7-5778b6c3f86c","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-2db6-676bb4c6d9c6","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-8484-16f0aac70418","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-2784-f220c0725642","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-735d-d3a43143b94c","parent":{"ref":"EID6ee37ffb-0175-1000-d19e-c2d0101eaaf6"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID71189bcb-163b-4da7-b712-359182aea82e"},{"ref":"EIDbde98f15-5dfe-4572-b613-7e99a7077ac2"},{"ref":"EID058d70a3-e443-4bcf-9363-978b193a1430"}]},"parent":{"ref":"EID6ee37dde-0175-1000-4005-e8eeca240900"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:06:44Z","duration":984,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:06:44Z","duration":1630,"status":"PASSED"},{"id":"EID6ee3843c-0175-1000-e872-fb1532e42a69","testStepResults":{"TestStepResult":[{"id":"EID6ee3843d-0175-1000-1a53-ec0c1fa83e62","parent":{"ref":"EID6ee3843c-0175-1000-e872-fb1532e42a69"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee3843d-0175-1000-bc0c-87c994590e24","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38537-0175-1000-0825-29a0bbe6b575","parent":{"ref":"EID6ee3843d-0175-1000-bc0c-87c994590e24"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38537-0175-1000-55e6-6e88047d8824","parent":{"ref":"EID6ee3843d-0175-1000-bc0c-87c994590e24"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38537-0175-1000-e76d-ca7c9918af34","parent":{"ref":"EID6ee3843d-0175-1000-bc0c-87c994590e24"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38537-0175-1000-4fd0-b2a43b744ecd","parent":{"ref":"EID6ee3843d-0175-1000-bc0c-87c994590e24"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID286673b7-6fe2-473f-8709-b4da1e723878"},{"ref":"EID62ea4cb2-f0be-4211-984f-e0302103fc67"},{"ref":"EID9ea9866d-456c-4cce-84a6-52f55bc99625"}]},"parent":{"ref":"EID6ee3843c-0175-1000-e872-fb1532e42a69"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:06:45Z","duration":150,"status":"PASSED"},{"id":"EID6ee38544-0175-1000-a26a-01422e6676f9","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee38553-0175-1000-cd18-29f7c1c0c353","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38645-0175-1000-4015-261cd025dbc8","parent":{"ref":"EID6ee38553-0175-1000-cd18-29f7c1c0c353"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee38645-0175-1000-6a1f-349daf8ebea5","parent":{"ref":"EID6ee38553-0175-1000-cd18-29f7c1c0c353"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee38645-0175-1000-7337-d0bee315f8f0","parent":{"ref":"EID6ee38553-0175-1000-cd18-29f7c1c0c353"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID085d83c9-c06a-4cf7-aa71-6266985ae983"},{"ref":"EID32695e26-1061-493d-b088-053eb2cf2abd"},{"ref":"EIDaef7805c-4fa1-434b-a018-892dd64aaeec"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:45Z","duration":151,"status":"PASSED"},{"id":"EID6ee38646-0175-1000-7b64-fb978c15ee82","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3870b-0175-1000-39af-d115c1df5b16","parent":{"ref":"EID6ee38646-0175-1000-7b64-fb978c15ee82"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee3870b-0175-1000-a7fe-b528b0d18036","parent":{"ref":"EID6ee38646-0175-1000-7b64-fb978c15ee82"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee3870b-0175-1000-5cd3-5a906661f8de","parent":{"ref":"EID6ee38646-0175-1000-7b64-fb978c15ee82"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2a403a2b-18eb-4d60-98d2-3c47db16a72d"},{"ref":"EID63b55ff2-0910-40e8-850c-9ec29cbca1e3"},{"ref":"EID29e14523-a6ed-430d-9280-c54d667e75dc"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:46Z","duration":146,"status":"PASSED"},{"id":"EID6ee3870c-0175-1000-b780-c50841fbcf20","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38780-0175-1000-a382-83191c929fdd","parent":{"ref":"EID6ee3870c-0175-1000-b780-c50841fbcf20"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee38780-0175-1000-bf81-a271e004e730","parent":{"ref":"EID6ee3870c-0175-1000-b780-c50841fbcf20"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee38780-0175-1000-0cb7-28745e53606b","parent":{"ref":"EID6ee3870c-0175-1000-b780-c50841fbcf20"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdee1e6fa-5867-43d4-ae53-7bbfecb7d647"},{"ref":"EID43c9f26e-1d57-4bbe-b1e7-7b6de60df328"},{"ref":"EID09b79a10-2915-4f4c-b58e-ade05e870662"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:46Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee3843c-0175-1000-e872-fb1532e42a69"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:06:45Z","duration":573,"status":"PASSED"},{"id":"EID6ee38781-0175-1000-b31b-e1050f2d4472","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38c54-0175-1000-e786-0f3b110e8c19","parent":{"ref":"EID6ee38781-0175-1000-b31b-e1050f2d4472"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c54-0175-1000-1639-30e31ab382c3","parent":{"ref":"EID6ee38781-0175-1000-b31b-e1050f2d4472"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c54-0175-1000-aad3-5cc17b5adc7d","parent":{"ref":"EID6ee38781-0175-1000-b31b-e1050f2d4472"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c54-0175-1000-be35-6cd1b48c2983","parent":{"ref":"EID6ee38781-0175-1000-b31b-e1050f2d4472"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID27ff2e02-4180-4acd-bdea-6bc9158a56fd"},{"ref":"EIDaf7d4e98-f066-435d-93b7-f82dfce34fd1"},{"ref":"EIDc7b62a0f-cf63-453c-a87f-b52205aeaf3b"}]},"parent":{"ref":"EID6ee3843c-0175-1000-e872-fb1532e42a69"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:06:46Z","duration":1158,"status":"PASSED"}]},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:06:45Z","duration":2072,"status":"PASSED"},{"id":"EID6ee38c54-0175-1000-e00c-33df21169471","testStepResults":{"TestStepResult":{"id":"EID6ee38c54-0175-1000-5d0a-e7feaca6e47d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38e13-0175-1000-8746-013947f097bb","parent":{"ref":"EID6ee38c54-0175-1000-5d0a-e7feaca6e47d"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:06:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee38e13-0175-1000-e2c7-03b79cfc5cb8","parent":{"ref":"EID6ee38c54-0175-1000-5d0a-e7feaca6e47d"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:06:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee38e13-0175-1000-ce0c-3f290c63f7ef","parent":{"ref":"EID6ee38c54-0175-1000-5d0a-e7feaca6e47d"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:06:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee38e13-0175-1000-9c44-0930b10608e9","parent":{"ref":"EID6ee38c54-0175-1000-5d0a-e7feaca6e47d"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:06:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID286b03c7-a09e-46a7-af4a-c6e28b9576dc"},{"ref":"EID78cdcfdc-cb3b-4ade-8de0-179ff957ccb5"},{"ref":"EIDe7295cb2-e011-4312-bf58-b2720e8858ec"}]},"parent":{"ref":"EID6ee38c54-0175-1000-e00c-33df21169471"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:06:47Z","duration":343,"status":"PASSED"}},"parent":{"ref":"EID6ee37021-0175-1000-de53-b148f20ef052"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:06:47Z","duration":448,"status":"PASSED"}]},"parent":{"ref":"EID5c511005-9448-46df-88cc-056e216a47df"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:06:40Z","duration":7667,"status":"PASSED"},{"id":"EID6ee38e14-0175-1000-659c-6f299b80fc01","testCaseResults":{"TestCaseResult":[{"id":"EID6ee38e14-0175-1000-bf00-5b841afe1128","testStepResults":{"TestStepResult":[{"id":"EID6ee38e1d-0175-1000-d79d-c578bc868d1c","parent":{"ref":"EID6ee38e14-0175-1000-bf00-5b841afe1128"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:06:48Z","duration":701,"status":"PASSED"},{"id":"EID6ee38e1e-0175-1000-02a8-45f9618d39e7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee391e5-0175-1000-0b35-6af923e51cb1","parent":{"ref":"EID6ee38e1e-0175-1000-02a8-45f9618d39e7"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee391e5-0175-1000-0677-ea86e0780a1f","parent":{"ref":"EID6ee38e1e-0175-1000-02a8-45f9618d39e7"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee391e5-0175-1000-ef02-7955e14157d2","parent":{"ref":"EID6ee38e1e-0175-1000-02a8-45f9618d39e7"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1c5f0bfe-be34-4c02-9404-56d93f71c463"},{"ref":"EID32448f67-36d9-4305-a10a-02e37a068acf"},{"ref":"EIDb1750680-726c-42f5-b400-b8d06d22dbd5"}]},"parent":{"ref":"EID6ee38e14-0175-1000-bf00-5b841afe1128"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:06:48Z","duration":867,"status":"PASSED"},{"id":"EID6ee391e5-0175-1000-beef-149a523ba0cb","attachments":{"attachment":{"ref":"EID26ad6f2a-f0c4-4754-9d1e-34e2ebcab699"}},"parent":{"ref":"EID6ee38e14-0175-1000-bf00-5b841afe1128"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:06:48Z","duration":989,"status":"PASSED"},{"id":"EID6ee391f1-0175-1000-579b-156c8c9e3bbf","testStepResults":{"TestStepResult":[{"id":"EID6ee391f1-0175-1000-cfa8-f416c29ded99","parent":{"ref":"EID6ee391f1-0175-1000-579b-156c8c9e3bbf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":700,"status":"PASSED"},{"id":"EID6ee391f1-0175-1000-37d6-4beb393b5fc1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee392a2-0175-1000-91c6-049b9a3c40df","parent":{"ref":"EID6ee391f1-0175-1000-37d6-4beb393b5fc1"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee392a2-0175-1000-eec4-9433502d8836","parent":{"ref":"EID6ee391f1-0175-1000-37d6-4beb393b5fc1"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee392a2-0175-1000-2976-a50c745e66cb","parent":{"ref":"EID6ee391f1-0175-1000-37d6-4beb393b5fc1"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee392a2-0175-1000-28f3-1d854684d6ed","parent":{"ref":"EID6ee391f1-0175-1000-37d6-4beb393b5fc1"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID27e053ec-771b-4d42-83a8-254eacd67427"},{"ref":"EIDd0360f44-542e-4d9f-abef-eeef5d910849"},{"ref":"EID862f316b-dcd1-4329-b942-9708dfbee2ab"}]},"parent":{"ref":"EID6ee391f1-0175-1000-579b-156c8c9e3bbf"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:06:49Z","duration":113,"status":"PASSED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:06:49Z","duration":184,"status":"PASSED"},{"id":"EID6ee392a9-0175-1000-c919-23498203c1de","testStepResults":{"TestStepResult":[{"id":"EID6ee392a9-0175-1000-cdb4-4a5c3c352cb3","parent":{"ref":"EID6ee392a9-0175-1000-c919-23498203c1de"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":700,"status":"PASSED"},{"id":"EID6ee392a9-0175-1000-6e46-40437283189b","parent":{"ref":"EID6ee392a9-0175-1000-c919-23498203c1de"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee392a9-0175-1000-57e9-fe16572a902d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39359-0175-1000-a153-70323a6d0a7b","parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39359-0175-1000-6274-a0d99a3cade8","parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39359-0175-1000-2a82-5b1ed7ec6023","parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39359-0175-1000-d533-fdb4d751c5ae","parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39359-0175-1000-2d89-61a80fdeaad8","parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39359-0175-1000-1eb5-5f059032991b","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"FAILED"},{"id":"EID6ee39359-0175-1000-9499-2a037392e732","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee392a9-0175-1000-57e9-fe16572a902d"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDca09c82a-a225-43d2-b97e-b5b5e2d24b0d"},{"ref":"EID6ff0b6aa-7937-4863-a839-62e6e2a9122c"},{"ref":"EID6d3a5913-2261-41c5-89e5-67337eb496ef"}]},"parent":{"ref":"EID6ee392a9-0175-1000-c919-23498203c1de"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:06:49Z","duration":84,"status":"FAILED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:06:49Z","duration":185,"status":"FAILED"},{"id":"EID6ee39362-0175-1000-027c-8d1c57962f6f","testStepResults":{"TestStepResult":[{"id":"EID6ee39362-0175-1000-53bf-794223c3170f","parent":{"ref":"EID6ee39362-0175-1000-027c-8d1c57962f6f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":700,"status":"PASSED"},{"id":"EID6ee39362-0175-1000-628b-931cd50582a4","parent":{"ref":"EID6ee39362-0175-1000-027c-8d1c57962f6f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39363-0175-1000-84c7-dcd9453906ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3940c-0175-1000-d6a7-6e288fa469c3","parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3940c-0175-1000-1ebe-e85cf5ddb1ad","parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3940c-0175-1000-0b16-0abe46ee5472","parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3940c-0175-1000-9345-0b8e78f5f9a3","parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3940c-0175-1000-9574-345cea4aabd2","parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3940c-0175-1000-a32a-4496ee46a632","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee39363-0175-1000-84c7-dcd9453906ca"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa571ffe9-4a7a-44f8-a440-a66ace998316"},{"ref":"EIDa839c6dc-5c7c-433c-a8df-d4d72cfca6bb"},{"ref":"EID0f18e577-7bd5-4ce2-b6d8-726c544b2b7d"}]},"parent":{"ref":"EID6ee39362-0175-1000-027c-8d1c57962f6f"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:06:49Z","duration":79,"status":"FAILED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:06:49Z","duration":176,"status":"FAILED"},{"id":"EID6ee39412-0175-1000-e708-5b6d4a45ec87","testStepResults":{"TestStepResult":[{"id":"EID6ee39412-0175-1000-839c-32931504dea7","parent":{"ref":"EID6ee39412-0175-1000-e708-5b6d4a45ec87"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":700,"status":"PASSED"},{"id":"EID6ee39412-0175-1000-1ae1-555fd579ce17","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EIDd930522b-69bb-4536-a1c8-474294e10207"},{"ref":"EIDb7f1c3f8-a002-42a4-9aba-c3d71679d9ca"},{"ref":"EID172036c2-6e00-4463-b833-bdcb1c3649e7"},{"ref":"EIDfb8f6ab3-6abe-4b9a-863e-c7de61fa1dad"},{"ref":"EID38441fb5-3f43-4387-9a31-e1fb4b081853"},{"ref":"EIDcb6022c4-b454-4ca9-a3f4-9a706b77d653"},{"ref":"EID09545a31-b591-4a0a-ba9c-82a54d3e04b9"},{"ref":"EIDcf0a11d2-aeb8-4406-bfdd-15f6ac4cf587"},{"ref":"EID42a3d740-5b51-48e3-b7ca-8d00a5a05359"},{"ref":"EID87a81e3d-f4f3-4b83-acbd-40b164be9607"},{"ref":"EID63c49f21-de49-4140-b21b-6fb23572b9de"},{"ref":"EID643d30b4-0e76-4485-8fd2-24361c561245"},{"ref":"EID65bf6f51-5530-409c-8a8f-15dcccede7c9"},{"ref":"EID64886265-8521-4ad9-96ac-b9d45f0c5a66"},{"ref":"EID39f1c16e-cf51-4bab-95cb-97cd8a5ee3f3"}]},"parent":{"ref":"EID6ee39412-0175-1000-e708-5b6d4a45ec87"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":992,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:06:49Z","duration":1258,"status":"SKIPPED"},{"id":"EID6ee398fc-0175-1000-f9c4-4c52a8179392","testStepResults":{"TestStepResult":[{"id":"EID6ee398fc-0175-1000-d15e-7b1419000b78","parent":{"ref":"EID6ee398fc-0175-1000-f9c4-4c52a8179392"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:06:51Z","duration":700,"status":"PASSED"},{"id":"EID6ee398fc-0175-1000-6c4c-3f5dd0818b74","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3999c-0175-1000-fcb0-c97b25f0a0e3","parent":{"ref":"EID6ee398fc-0175-1000-6c4c-3f5dd0818b74"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee3999c-0175-1000-5d1a-bb37f41306b7","parent":{"ref":"EID6ee398fc-0175-1000-6c4c-3f5dd0818b74"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee3999c-0175-1000-38ba-e87d542592ee","parent":{"ref":"EID6ee398fc-0175-1000-6c4c-3f5dd0818b74"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee3999c-0175-1000-19fb-2ce6f4fd2edd","parent":{"ref":"EID6ee398fc-0175-1000-6c4c-3f5dd0818b74"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID03e82f26-014f-40e3-b54e-516880e0eda4"},{"ref":"EIDb86ca6ea-ebe0-4335-9fbf-dbeb3ab29809"},{"ref":"EID8313703d-47c8-4b46-b660-43cc87b60014"}]},"parent":{"ref":"EID6ee398fc-0175-1000-f9c4-4c52a8179392"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:06:51Z","duration":86,"status":"PASSED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:06:51Z","duration":160,"status":"PASSED"},{"id":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9","testStepResults":{"TestStepResult":[{"id":"EID6ee3999c-0175-1000-4d07-2eb269d0c4fc","parent":{"ref":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:06:51Z","duration":700,"status":"PASSED"},{"id":"EID6ee3999c-0175-1000-6831-63d939e81427","parent":{"ref":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee3999d-0175-1000-05d0-b02ac014c369","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39a48-0175-1000-08a6-cc567872a770","parent":{"ref":"EID6ee3999d-0175-1000-05d0-b02ac014c369"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a48-0175-1000-b6b8-1a6fe538e6b3","parent":{"ref":"EID6ee3999d-0175-1000-05d0-b02ac014c369"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a48-0175-1000-fc80-373bdc28ae75","parent":{"ref":"EID6ee3999d-0175-1000-05d0-b02ac014c369"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a48-0175-1000-d6c9-f4ad757351d3","parent":{"ref":"EID6ee3999d-0175-1000-05d0-b02ac014c369"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc6b2c78a-8669-483e-9a49-aa34807b511c"},{"ref":"EID451ba838-bc5d-4c80-81fd-2ffc366ffd1f"},{"ref":"EID4a86f088-a37c-4be4-9039-ffc36d3725b9"}]},"parent":{"ref":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:06:51Z","duration":86,"status":"PASSED"},{"id":"EID6ee39a48-0175-1000-c70a-5d5e6a9fbd74","attachments":{"attachment":{"ref":"EID30f7de4d-22cb-4e41-92eb-39b0fc2a8508"}},"parent":{"ref":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a52-0175-1000-8433-cce47d57c1a1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39a56-0175-1000-8efa-0f1d948c3dbe","parent":{"ref":"EID6ee39a52-0175-1000-8433-cce47d57c1a1"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a56-0175-1000-ce18-68f034ea0388","parent":{"ref":"EID6ee39a52-0175-1000-8433-cce47d57c1a1"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a56-0175-1000-e1de-770ebc772586","parent":{"ref":"EID6ee39a52-0175-1000-8433-cce47d57c1a1"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9631a866-71bc-4a9f-9d93-9a03e5a84e91"},{"ref":"EIDa28ff422-3b54-4c3b-90dd-a0073d2e4b39"}]},"parent":{"ref":"EID6ee3999c-0175-1000-eeb0-3c1c5b8b92d9"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee38e14-0175-1000-659c-6f299b80fc01"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:06:51Z","duration":186,"status":"PASSED"}]},"parent":{"ref":"EID5c511005-9448-46df-88cc-056e216a47df"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:06:48Z","duration":3138,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EIDc7b62a0f-cf63-453c-a87f-b52205aeaf3b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID0d4545d9-0790-41f1-b1af-488db7ffa931","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID0d4545d9-0790-41f1-b1af-488db7ffa931"}},{"type":"GetParameter","id":"EIDe34471dd-8ebe-4ac9-bc57-dcf4ca9cb725","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDca09c82a-a225-43d2-b97e-b5b5e2d24b0d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDaba7937c-b9c9-4959-957e-e01e73ac093d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDd4ab3146-e1fe-48fa-a05f-9cb0cfab5d9d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc6f836b6-0f0c-41e7-92ac-8b23d4ff58c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID4c90490e-5b20-444a-b669-89ede8e92490","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa876c99c-8830-4c05-857c-74531543135a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa876c99c-8830-4c05-857c-74531543135a"}},{"type":"ServiceEndpoint","id":"EIDeafd8cbc-3d5b-4472-9968-57959c62cd8d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDa725eafc-755e-4e1c-ab92-0cb236da0a8b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa725eafc-755e-4e1c-ab92-0cb236da0a8b"}},{"type":"GetParameter","id":"EID7f5d2458-ff99-4595-9e87-15b9bf979803","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID38441fb5-3f43-4387-9a31-e1fb4b081853","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID38441fb5-3f43-4387-9a31-e1fb4b081853"}},{"type":"ServiceEndpoint","id":"EID2d091640-616e-45aa-915c-9ae09b911563","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EIDe908d125-8159-4417-ba7e-ceca2d430e33","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID6511de26-f626-4dbc-b8fa-a5a7d4fbe769","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID8ffe661d-a3e5-46e4-90b4-0408208335cf","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID8ffe661d-a3e5-46e4-90b4-0408208335cf"}},{"type":"ServiceResponse","id":"EIDaf7d4e98-f066-435d-93b7-f82dfce34fd1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDaf7d4e98-f066-435d-93b7-f82dfce34fd1"}},{"type":"ServiceEndpoint","id":"EID286b03c7-a09e-46a7-af4a-c6e28b9576dc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID4a86f088-a37c-4be4-9039-ffc36d3725b9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID32448f67-36d9-4305-a10a-02e37a068acf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID32448f67-36d9-4305-a10a-02e37a068acf"}},{"type":"Message","id":"EID172036c2-6e00-4463-b833-bdcb1c3649e7","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID172036c2-6e00-4463-b833-bdcb1c3649e7"}},{"type":"GetParameter","id":"EID1b3741b5-2fb0-4255-a731-562a43661d38","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb9892162-2331-4727-8858-0a8138a2c6fe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID80f3600a-49f2-401d-b87f-5f41729d0e45","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID27ff2e02-4180-4acd-bdea-6bc9158a56fd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID4dbd04a7-d6fb-4d8e-ae18-2a1e378ca32b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID8313703d-47c8-4b46-b660-43cc87b60014","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID2c997aa1-609c-4ac8-8a61-38422b7612c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID00567e14-9296-46ae-8f3e-68c886b64d03","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID3e6150f9-81eb-4f6d-b7d0-3f7e5e63f841","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID3e6150f9-81eb-4f6d-b7d0-3f7e5e63f841"}},{"type":"ServiceResponse","id":"EID869a52ee-2ca1-4167-8d39-698550a82d54","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID869a52ee-2ca1-4167-8d39-698550a82d54"}},{"type":"ServiceEndpoint","id":"EID085d83c9-c06a-4cf7-aa71-6266985ae983","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID30f7de4d-22cb-4e41-92eb-39b0fc2a8508","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID30f7de4d-22cb-4e41-92eb-39b0fc2a8508"}},{"type":"Message","id":"EID82f3fcd0-d243-4d19-b670-b738f54562d9","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID82f3fcd0-d243-4d19-b670-b738f54562d9"}},{"type":"Message","id":"EID64886265-8521-4ad9-96ac-b9d45f0c5a66","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID64886265-8521-4ad9-96ac-b9d45f0c5a66"}},{"type":"ServiceResponse","id":"EIDdf0fb92d-c7bc-4ff8-8f5e-5d378a754b54","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDdf0fb92d-c7bc-4ff8-8f5e-5d378a754b54"}},{"type":"Message","id":"EIDd930522b-69bb-4536-a1c8-474294e10207","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDd930522b-69bb-4536-a1c8-474294e10207"}},{"type":"ServiceEndpoint","id":"EID50cd1c36-8b85-4b1d-b2da-6120ae7931a2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDc4b957cc-d7e2-4095-b58a-af8bd12d383d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDc4b957cc-d7e2-4095-b58a-af8bd12d383d"}},{"type":"GetParameter","id":"EID6e17ada7-b93d-48b6-9d54-ed4933b69fb4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID446de59f-bf5d-45ea-875e-1253e312ffb9","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID446de59f-bf5d-45ea-875e-1253e312ffb9"}},{"type":"ServiceEndpoint","id":"EID8346ab5b-d7b8-4371-a4b4-dcda179da0e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDbde98f15-5dfe-4572-b613-7e99a7077ac2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDbde98f15-5dfe-4572-b613-7e99a7077ac2"}},{"type":"ServiceEndpoint","id":"EID96e65777-0e16-4330-8ade-243607ae86e1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDca36f6f1-0f0c-47ba-8c01-d2e894ac3f4a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID62ea4cb2-f0be-4211-984f-e0302103fc67","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID62ea4cb2-f0be-4211-984f-e0302103fc67"}},{"type":"GetParameter","id":"EIDcff41a73-cd9f-4498-83ab-fe14169d3fac","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfaf2545a-a919-4d53-82d2-951f25fbc2ba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDfaf2545a-a919-4d53-82d2-951f25fbc2ba"}},{"type":"Message","id":"EID8519004e-f5d4-44d3-9595-fba11b60bf65","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID8519004e-f5d4-44d3-9595-fba11b60bf65"}},{"type":"ServiceEndpoint","id":"EIDa571ffe9-4a7a-44f8-a440-a66ace998316","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID2ae61cb4-ef77-4cae-8c6c-70ef89eda5c8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID2ae61cb4-ef77-4cae-8c6c-70ef89eda5c8"}},{"type":"Message","id":"EID6069f1b2-7762-4d13-9e8c-dfcb7f95051b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6069f1b2-7762-4d13-9e8c-dfcb7f95051b"}},{"type":"GetParameter","id":"EIDb516f7e8-f8c5-4d19-9c25-fb2fbbff1971","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDdee1e6fa-5867-43d4-ae53-7bbfecb7d647","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID52beb9ea-a4f2-4e9c-a8d4-476449416485","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID52beb9ea-a4f2-4e9c-a8d4-476449416485"}},{"type":"Message","id":"EIDc8d8598b-b0e1-4276-8b9a-36c9c292d997","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDc8d8598b-b0e1-4276-8b9a-36c9c292d997"}},{"type":"GetParameter","id":"EIDe7295cb2-e011-4312-bf58-b2720e8858ec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID377f4e72-4fcc-471b-ad18-5a04162ba424","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID377f4e72-4fcc-471b-ad18-5a04162ba424"}},{"type":"Message","id":"EID93a49d22-31ff-4e3e-bb50-4c23ae2e04df","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID93a49d22-31ff-4e3e-bb50-4c23ae2e04df"}},{"type":"Message","id":"EID059d87e1-a260-407d-b63b-e4b5f3560aa5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID059d87e1-a260-407d-b63b-e4b5f3560aa5"}},{"type":"ServiceEndpoint","id":"EID61657a0f-6517-4844-8fc4-e710e9a12cb6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5a5d3937-eb37-4921-a310-fe418b3ef4ff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDeee302a2-cdbd-4856-8e11-751af77c6d40","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDeee302a2-cdbd-4856-8e11-751af77c6d40"}},{"type":"GetParameter","id":"EIDb3747de5-162a-4ad3-a526-f69efa689fdc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID09545a31-b591-4a0a-ba9c-82a54d3e04b9","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID09545a31-b591-4a0a-ba9c-82a54d3e04b9"}},{"type":"LogFile","id":"EIDc83dfbcf-0245-4be5-84ca-9adbbcb3d0ec","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDc83dfbcf-0245-4be5-84ca-9adbbcb3d0ec"}},{"type":"ServiceResponse","id":"EID44b372a2-e512-494d-b71c-e513d3267ef2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID44b372a2-e512-494d-b71c-e513d3267ef2"}},{"type":"GetParameter","id":"EID6d3a5913-2261-41c5-89e5-67337eb496ef","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDeb54781e-8cd0-4931-908d-a2385d8e32dd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID27e053ec-771b-4d42-83a8-254eacd67427","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID39f1c16e-cf51-4bab-95cb-97cd8a5ee3f3","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID39f1c16e-cf51-4bab-95cb-97cd8a5ee3f3"}},{"type":"ServiceResponse","id":"EIDbca254cb-5f21-4fa1-a56b-4c5c483d817a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDbca254cb-5f21-4fa1-a56b-4c5c483d817a"}},{"type":"ServiceEndpoint","id":"EIDea00d514-cb2a-4b8a-a5e7-04f1d2e7096c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1c47cdb1-1686-4cd4-bda5-c41df92f9e98","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID1c47cdb1-1686-4cd4-bda5-c41df92f9e98"}},{"type":"GetParameter","id":"EID09535642-27d8-4b4b-8720-ab0d7edb9440","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID643d30b4-0e76-4485-8fd2-24361c561245","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID643d30b4-0e76-4485-8fd2-24361c561245"}},{"type":"Message","id":"EIDb64ef53e-f9d9-469a-80ef-adedeeb65db9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDb64ef53e-f9d9-469a-80ef-adedeeb65db9"}},{"type":"Message","id":"EID26ad6f2a-f0c4-4754-9d1e-34e2ebcab699","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID26ad6f2a-f0c4-4754-9d1e-34e2ebcab699"}},{"type":"GetParameter","id":"EIDa28ff422-3b54-4c3b-90dd-a0073d2e4b39","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EIDd43d1d95-0a86-4045-8a80-e96c1fdd2f80","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID9d8a94a7-f07e-4c11-8d21-f9c2f7786a65","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID9d8a94a7-f07e-4c11-8d21-f9c2f7786a65"}},{"type":"ServiceResponse","id":"EID523e050a-5eb3-47c4-a170-7cf78cc125eb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID523e050a-5eb3-47c4-a170-7cf78cc125eb"}},{"type":"GetParameter","id":"EIDa8887c85-e79a-49f3-9460-edf1589f1124","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb3410385-9b63-4002-b859-f0a113912cb2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID29e14523-a6ed-430d-9280-c54d667e75dc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EIDa309b385-559a-414c-b836-b4cc03c94d24","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa309b385-559a-414c-b836-b4cc03c94d24"}},{"type":"GetParameter","id":"EID02515318-bcf2-4257-840c-a6886e052d7e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDf59f0bf5-d7a6-4e12-a6b8-67be85ca9a50","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDf59f0bf5-d7a6-4e12-a6b8-67be85ca9a50"}},{"type":"ServiceResponse","id":"EIDf0c0556d-eee7-47c4-913c-cdb90948fbe4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDf0c0556d-eee7-47c4-913c-cdb90948fbe4"}},{"type":"ServiceEndpoint","id":"EID8f0d81ad-89cc-4e0e-a891-18d2c44ce446","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID42a3d740-5b51-48e3-b7ca-8d00a5a05359","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID42a3d740-5b51-48e3-b7ca-8d00a5a05359"}},{"type":"Message","id":"EID675c33d9-6bd5-4734-8d5c-c325dbd5ef42","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID675c33d9-6bd5-4734-8d5c-c325dbd5ef42"}},{"type":"ServiceResponse","id":"EIDa839c6dc-5c7c-433c-a8df-d4d72cfca6bb","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa839c6dc-5c7c-433c-a8df-d4d72cfca6bb"}},{"type":"ServiceEndpoint","id":"EIDdb927eb7-3f86-4c24-905e-b001976c7a1c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID9afd904d-7ee0-4ee9-8029-c774681c13ab","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID9afd904d-7ee0-4ee9-8029-c774681c13ab"}},{"type":"Message","id":"EID06ebc2a6-f100-47ae-a07c-3bb7445dd5fc","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID06ebc2a6-f100-47ae-a07c-3bb7445dd5fc"}},{"type":"GetParameter","id":"EID9ea9866d-456c-4cce-84a6-52f55bc99625","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID32695e26-1061-493d-b088-053eb2cf2abd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID32695e26-1061-493d-b088-053eb2cf2abd"}},{"type":"Message","id":"EIDa13d4bfb-ca96-4424-af54-8289b8da387a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa13d4bfb-ca96-4424-af54-8289b8da387a"}},{"type":"Message","id":"EID87a81e3d-f4f3-4b83-acbd-40b164be9607","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID87a81e3d-f4f3-4b83-acbd-40b164be9607"}},{"type":"ServiceEndpoint","id":"EID00003ddf-ca2a-4001-8556-b4bac9983944","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb86ca6ea-ebe0-4335-9fbf-dbeb3ab29809","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDb86ca6ea-ebe0-4335-9fbf-dbeb3ab29809"}},{"type":"ServiceEndpoint","id":"EIDd4ec2a66-a5d2-40b0-899e-75c060f8b5eb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb1750680-726c-42f5-b400-b8d06d22dbd5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDcd7be1ca-a302-4aac-92f1-82b262852492","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDcd7be1ca-a302-4aac-92f1-82b262852492"}},{"type":"ServiceResponse","id":"EID4ca3e2e6-4e06-4cdb-a49a-f6459e4b8412","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID4ca3e2e6-4e06-4cdb-a49a-f6459e4b8412"}},{"type":"ServiceResponse","id":"EID3f17b153-310c-4787-bb9c-2348f63a3469","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID3f17b153-310c-4787-bb9c-2348f63a3469"}},{"type":"ServiceEndpoint","id":"EIDf81a9874-3cbb-461f-955a-164bbb561be4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"ServiceResponse","id":"EIDd0360f44-542e-4d9f-abef-eeef5d910849","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDd0360f44-542e-4d9f-abef-eeef5d910849"}},{"type":"GetParameter","id":"EID60ceaf8a-0940-4ed1-9483-5e36697e698a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID6603777b-8797-40ff-bbff-f3c6946967c7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6603777b-8797-40ff-bbff-f3c6946967c7"}},{"type":"ServiceEndpoint","id":"EID2a403a2b-18eb-4d60-98d2-3c47db16a72d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID7208d7ec-e685-402e-ab37-5cb2955ae37e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID077443fb-6fcb-4cf5-91cf-a1c684bf86c8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID077443fb-6fcb-4cf5-91cf-a1c684bf86c8"}},{"type":"GetParameter","id":"EID0f18e577-7bd5-4ce2-b6d8-726c544b2b7d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID71189bcb-163b-4da7-b712-359182aea82e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDfb8f6ab3-6abe-4b9a-863e-c7de61fa1dad","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDfb8f6ab3-6abe-4b9a-863e-c7de61fa1dad"}},{"type":"ServiceEndpoint","id":"EID1c5f0bfe-be34-4c02-9404-56d93f71c463","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID058d70a3-e443-4bcf-9363-978b193a1430","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID22c027da-4104-42d7-82a9-2a19823b3ee0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID22c027da-4104-42d7-82a9-2a19823b3ee0"}},{"type":"GetParameter","id":"EID1efc96dd-57bc-499f-acfc-fae0d884eecb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc98ea2be-3fcf-4717-b999-827346fad906","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID65bf6f51-5530-409c-8a8f-15dcccede7c9","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID65bf6f51-5530-409c-8a8f-15dcccede7c9"}},{"type":"ServiceResponse","id":"EIDfcfcf6d4-5e4d-4278-a008-ba7e38a2e818","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDfcfcf6d4-5e4d-4278-a008-ba7e38a2e818"}},{"type":"ServiceResponse","id":"EID07a20a26-a3eb-4e93-ab41-c4f6bcafb69d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID07a20a26-a3eb-4e93-ab41-c4f6bcafb69d"}},{"type":"ServiceEndpoint","id":"EID75b91d75-7503-48e2-aac5-a8eb901e3ccb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDac3ddf73-ce26-4157-beda-e735fa848498","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EID054be42a-aac6-45e2-907a-19d62a6b0c60","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6ff0b6aa-7937-4863-a839-62e6e2a9122c","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6ff0b6aa-7937-4863-a839-62e6e2a9122c"}},{"type":"ServiceEndpoint","id":"EIDa8f87076-135b-4a10-ba4b-769164059699","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3ab485e5-fe4d-4f69-bb43-e03d683c731a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa3fc46e1-e46e-4736-9d03-0330c873d5e5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDb7f1c3f8-a002-42a4-9aba-c3d71679d9ca","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDb7f1c3f8-a002-42a4-9aba-c3d71679d9ca"}},{"type":"ServiceEndpoint","id":"EID19a9bac5-0c67-435b-a8b8-cf14d311d394","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf9f7471d-5f64-424a-bf47-c53d92ff3278","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDf9f7471d-5f64-424a-bf47-c53d92ff3278"}},{"type":"ServiceEndpoint","id":"EID9783f740-b43a-42bf-9e0f-0d57eeed3ea2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDaef7805c-4fa1-434b-a018-892dd64aaeec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDd2d0981b-d245-4e40-8486-f30a34a20629","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDd2d0981b-d245-4e40-8486-f30a34a20629"}},{"type":"Message","id":"EID49e65f73-c055-4484-9e9f-38bd901f0cfa","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID49e65f73-c055-4484-9e9f-38bd901f0cfa"}},{"type":"Message","id":"EID2828a0ab-43ed-4ef9-880a-162f7e13c2fa","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID2828a0ab-43ed-4ef9-880a-162f7e13c2fa"}},{"type":"GetParameter","id":"EID6edb7766-c98e-4851-b9a9-ddfe83061d16","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID63c49f21-de49-4140-b21b-6fb23572b9de","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID63c49f21-de49-4140-b21b-6fb23572b9de"}},{"type":"GetParameter","id":"EID862f316b-dcd1-4329-b942-9708dfbee2ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID893ff786-37e2-4ceb-a710-f653624477cd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID32ad086d-f626-4baf-801a-8d4ad69abf50","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID32ad086d-f626-4baf-801a-8d4ad69abf50"}},{"type":"ServiceResponse","id":"EID78cdcfdc-cb3b-4ade-8de0-179ff957ccb5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID78cdcfdc-cb3b-4ade-8de0-179ff957ccb5"}},{"type":"Message","id":"EID97936430-2206-4362-b5ae-cf53d4ffc4b4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID97936430-2206-4362-b5ae-cf53d4ffc4b4"}},{"type":"ServiceEndpoint","id":"EIDea186e04-136c-48d3-8062-7ad0af94801c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc748d4a7-4ea2-49f4-aca0-4bace3bb0065","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDc748d4a7-4ea2-49f4-aca0-4bace3bb0065"}},{"type":"Message","id":"EID5ff7ce8e-0882-42aa-924d-9d39380e1712","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID5ff7ce8e-0882-42aa-924d-9d39380e1712"}},{"type":"ServiceResponse","id":"EID451ba838-bc5d-4c80-81fd-2ffc366ffd1f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID451ba838-bc5d-4c80-81fd-2ffc366ffd1f"}},{"type":"ServiceEndpoint","id":"EID286673b7-6fe2-473f-8709-b4da1e723878","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID6a841413-6475-47d9-a712-91c617d873c6","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6a841413-6475-47d9-a712-91c617d873c6"}},{"type":"GetParameter","id":"EID0187e95c-4c22-454f-b381-3ad4225c4a86","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID6634b03b-fe9d-46e4-8f4c-23afc8263cc0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6634b03b-fe9d-46e4-8f4c-23afc8263cc0"}},{"type":"ServiceEndpoint","id":"EID55ae836f-ed3d-4da9-9a2f-04fec34fd837","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID2bb43f8d-c6d7-43aa-8a06-704f576da636","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID2bb43f8d-c6d7-43aa-8a06-704f576da636"}},{"type":"Message","id":"EIDcf0a11d2-aeb8-4406-bfdd-15f6ac4cf587","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDcf0a11d2-aeb8-4406-bfdd-15f6ac4cf587"}},{"type":"GetParameter","id":"EIDe30d0c33-bbc7-413e-9223-37c428cc78ba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6cd5d412-f5cc-4515-b1ef-736c1c70ea66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDccf4c8fd-80d4-4e2c-b52f-05a8a137dcd7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4b3dfd43-8dd9-4c4d-9f1a-b39fe0e303a7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID63b55ff2-0910-40e8-850c-9ec29cbca1e3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID63b55ff2-0910-40e8-850c-9ec29cbca1e3"}},{"type":"Message","id":"EIDfd101b3d-090b-4951-b6d3-47433a70ad77","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDfd101b3d-090b-4951-b6d3-47433a70ad77"}},{"type":"Message","id":"EIDcb6022c4-b454-4ca9-a3f4-9a706b77d653","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDcb6022c4-b454-4ca9-a3f4-9a706b77d653"}},{"type":"Message","id":"EID6a6ffd8e-f3ae-4e73-b71b-9a0a67a03095","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID6a6ffd8e-f3ae-4e73-b71b-9a0a67a03095"}},{"type":"Message","id":"EIDae8e8216-82c2-4a70-bcfe-4490c7b08bc1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDae8e8216-82c2-4a70-bcfe-4490c7b08bc1"}},{"type":"ServiceEndpoint","id":"EID5dd8e505-bc37-463e-87b5-7b30589e351d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID5e945003-99cf-4ddb-a8f3-a170af96a8e5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID5e945003-99cf-4ddb-a8f3-a170af96a8e5"}},{"type":"ServiceEndpoint","id":"EID9631a866-71bc-4a9f-9d93-9a03e5a84e91","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDe43cd953-f878-4cf9-9df8-fc215feb8398","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDe43cd953-f878-4cf9-9df8-fc215feb8398"}},{"type":"ServiceResponse","id":"EID90bb27c2-1779-4026-a546-9691b0700640","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID90bb27c2-1779-4026-a546-9691b0700640"}},{"type":"ServiceEndpoint","id":"EID5c4be46c-f5fd-4057-9a6b-e53343b9fbd4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDccf5a228-7a93-4ca7-b9de-bb67c7b59e1b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDccf5a228-7a93-4ca7-b9de-bb67c7b59e1b"}},{"type":"ServiceEndpoint","id":"EID159153bb-7671-4106-a5eb-9dc224cf55ee","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID03e82f26-014f-40e3-b54e-516880e0eda4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDfa4208d8-feb3-485d-89bb-e4e4be4e7bf7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa5f93d65-c2c2-4157-a275-e5bebfb1e337","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDa5f93d65-c2c2-4157-a275-e5bebfb1e337"}},{"type":"GetParameter","id":"EID8da56b87-9c13-4356-8ed0-f1f4fb6817d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID43c9f26e-1d57-4bbe-b1e7-7b6de60df328","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID43c9f26e-1d57-4bbe-b1e7-7b6de60df328"}},{"type":"Message","id":"EID4d37cc6a-4f36-4bed-8004-a98ba5601fbd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID4d37cc6a-4f36-4bed-8004-a98ba5601fbd"}},{"type":"ServiceEndpoint","id":"EIDc6b2c78a-8669-483e-9a49-aa34807b511c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID9e4efc8f-87a8-4ff1-aec4-7e643ae1702c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID09b79a10-2915-4f4c-b58e-ade05e870662","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID73dd563c-4555-4d14-ade7-3f86e6a3ed4b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID091a047f-daf5-4b08-a7a0-8045742d553b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID091a047f-daf5-4b08-a7a0-8045742d553b"}},{"type":"ServiceResponse","id":"EID0ec6d6ec-e429-4f00-a323-2f8335e0ac05","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID0ec6d6ec-e429-4f00-a323-2f8335e0ac05"}},{"type":"ServiceEndpoint","id":"EID10289541-3e02-4747-ac20-611d22af55a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID489acee5-e337-4034-9359-f121555902e5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDad76908f-c66b-441c-9ef9-cef6bc91eddf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID003bffb3-4310-43bf-9ed3-17fc09f95302","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID003bffb3-4310-43bf-9ed3-17fc09f95302"}},{"type":"ServiceResponse","id":"EID0906a1fe-d998-4385-845e-580093815e2e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID0906a1fe-d998-4385-845e-580093815e2e"}},{"type":"GetParameter","id":"EID6ede91e5-3a43-4678-aeb8-2af2ec3d2ab3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2d0cc445-3f9c-4279-8e02-940908f70948","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID2d0cc445-3f9c-4279-8e02-940908f70948"}},{"type":"Message","id":"EIDb4abc405-c28a-4616-afd4-ea9fea261082","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDb4abc405-c28a-4616-afd4-ea9fea261082"}},{"type":"ServiceResponse","id":"EID0e31e3e7-2ae7-459f-aff1-5ac03ba4e43f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID0e31e3e7-2ae7-459f-aff1-5ac03ba4e43f"}},{"type":"Message","id":"EID7c39ed2b-a260-49a1-9406-9b116fd5e0a0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID7c39ed2b-a260-49a1-9406-9b116fd5e0a0"}},{"type":"Message","id":"EIDcac6708d-f512-4f3e-b658-a6c00a95255e","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EIDcac6708d-f512-4f3e-b658-a6c00a95255e"}},{"type":"GetParameter","id":"EID1447c337-53d5-4aa5-995c-0393365879f3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID00d32160-c80b-4e34-b7e0-dbbf7eef457f","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5c511005-9448-46df-88cc-056e216a47df/Attachments/EID00d32160-c80b-4e34-b7e0-dbbf7eef457f"}},{"type":"ServiceEndpoint","id":"EID741ea249-e317-40f0-82c0-aa03cb2e2613","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:06:22Z","duration":29124,"status":"FAILED"}}}}}
11:06:59.849 [print] EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a
11:06:59.850 [print] FAILED
11:06:59.850 [print] FAILED
11:06:59.851 [print] Conformance Class Download Service - Pre-defined Atom
11:06:59.851 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a.json
11:06:59.851 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/df1229b3-8be9-4dd2-b416-bd2b2eaf3d6a.json
11:06:59.852 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdf1229b3-8be9-4dd2-b416-bd2b2eaf3d6a/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:06:59.885 [print] [ "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:06:59.886 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:40.526 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ad/wfs?request=GetCapabilities&service=WFS"}}}
11:16:40.527 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 289
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ad/wfs?request=GetCapabilities&service=WFS"}}}
11:16:43.741 response time in milliseconds: 3107.79
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:43 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883803574","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:43.742 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:44.739 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-c/wfs?request=GetCapabilities"}}}
11:16:44.739 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 279
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-c/wfs?request=GetCapabilities"}}}
11:16:48.137 response time in milliseconds: 3292.23
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:47 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883807972","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:48.137 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:05:58.456 [print] testing url:https://service.pdok.nl/rce/ps-ch/atom/v1_0/index.xml
11:05:58.456 request: 1 > HEAD https://service.pdok.nl/rce/ps-ch/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:59.182 response time in milliseconds: 725.49 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3377 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:05:58 GMT 1 < Etag: "2323579506" 1 < Last-Modified: Wed, 28 Oct 2020 05:06:40 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:05:59.200 request: 1 > HEAD https://service.pdok.nl/rce/ps-ch/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:59.558 response time in milliseconds: 357.83 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3377 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:05:59 GMT 1 < Etag: "2200453337" 1 < Last-Modified: Wed, 28 Oct 2020 05:05:28 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:22.631 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:10:22.633 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:10:29.962 response time in milliseconds: 7223.95
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:29 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883429792","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:29.963 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:05:26.406 [print] testing url:https://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCapabilities&service=wcs
11:05:26.409 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCapabilities&service=wcs 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:26.818 response time in milliseconds: 407.34 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:05:26 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:05:26.827 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ahn1/wcs?request=GetCapabilities&service=wcs 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:27.229 response time in milliseconds: 402.03 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:05:27 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:05:27.230 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:09.073 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:06:09.074 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:06:14.697 response time in milliseconds: 4878.88
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:13 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:06:11 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a581ace8-1be9-4ab0-9997-d33ae7c378ea.json","testRuns":{"TestRun":{"id":"EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:10.833Z","testTasks":{"TestTask":{"id":"EID89eb9479-19d7-45e7-90aa-b9c7139a6cba","parent":{"ref":"EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID07885ef6-db2e-4420-be2a-fc56528a7c14"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID07885ef6-db2e-4420-be2a-fc56528a7c14","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:09.508Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:10.324Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:06:14.704 [print] EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea
11:06:14.706 [print] UNDEFINED
11:06:14.707 [print] Conformance Class Download Service - Pre-defined Atom
11:06:14.708 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a581ace8-1be9-4ab0-9997-d33ae7c378ea.json
11:06:14.708 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/log
11:06:14.708 [print] statuspath TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea
11:06:14.708 [print] progresspath TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/progress
11:06:14.709 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:15.244 response time in milliseconds: 531.46
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:06:15 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:06:10 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:10 UTC 2020)","28.10.2020 11:06:10 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:10 - Preparing 1 Test Task:","28.10.2020 11:06:10 - TestTask 1 (89eb9479-19d7-45e7-90aa-b9c7139a6cba)","28.10.2020 11:06:10 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:10 - with parameters: ","28.10.2020 11:06:10 - etf.testcases = *","28.10.2020 11:06:10 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:10 - Setting state to CREATED","28.10.2020 11:06:10 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:12 - Starting TestRun.a581ace8-1be9-4ab0-9997-d33ae7c378ea at 2020-10-28T11:06:13Z","28.10.2020 11:06:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:13 - Project Properties: ","28.10.2020 11:06:13 - etf.testcases - * ","28.10.2020 11:06:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:13 - username - ","28.10.2020 11:06:13 - authUser - ","28.10.2020 11:06:13 - authMethod - basic ","28.10.2020 11:06:13 - TestRunTask initialized"]}
11:06:15.244 [print] {
"val": "21",
"max": "22",
"log": [
"28.10.2020 11:06:10 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:10 UTC 2020)",
"28.10.2020 11:06:10 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:06:10 - Preparing 1 Test Task:",
"28.10.2020 11:06:10 - TestTask 1 (89eb9479-19d7-45e7-90aa-b9c7139a6cba)",
"28.10.2020 11:06:10 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:06:10 - with parameters: ",
"28.10.2020 11:06:10 - etf.testcases = *",
"28.10.2020 11:06:10 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:06:10 - Setting state to CREATED",
"28.10.2020 11:06:10 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:06:12 - Starting TestRun.a581ace8-1be9-4ab0-9997-d33ae7c378ea at 2020-10-28T11:06:13Z",
"28.10.2020 11:06:13 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:06:13 - Project Properties: ",
"28.10.2020 11:06:13 - etf.testcases - * ",
"28.10.2020 11:06:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:06:13 - username - ",
"28.10.2020 11:06:13 - authUser - ",
"28.10.2020 11:06:13 - authMethod - basic ",
"28.10.2020 11:06:13 - TestRunTask initialized"
]
}
11:06:15.246 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:15.775 response time in milliseconds: 525.38
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:06:15 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:06:10 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:10 UTC 2020)","28.10.2020 11:06:10 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:10 - Preparing 1 Test Task:","28.10.2020 11:06:10 - TestTask 1 (89eb9479-19d7-45e7-90aa-b9c7139a6cba)","28.10.2020 11:06:10 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:10 - with parameters: ","28.10.2020 11:06:10 - etf.testcases = *","28.10.2020 11:06:10 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:10 - Setting state to CREATED","28.10.2020 11:06:10 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:12 - Starting TestRun.a581ace8-1be9-4ab0-9997-d33ae7c378ea at 2020-10-28T11:06:13Z","28.10.2020 11:06:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:13 - Project Properties: ","28.10.2020 11:06:13 - etf.testcases - * ","28.10.2020 11:06:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:13 - username - ","28.10.2020 11:06:13 - authUser - ","28.10.2020 11:06:13 - authMethod - basic ","28.10.2020 11:06:13 - TestRunTask initialized"]}
11:06:15.776 retry condition not satisfied: response.val == response.max
11:06:15.776 sleeping before retry #1
11:06:20.777 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:21.303 response time in milliseconds: 524.42
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:06:21 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"101","log":["28.10.2020 11:06:10 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:10 UTC 2020)","28.10.2020 11:06:10 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:10 - Preparing 1 Test Task:","28.10.2020 11:06:10 - TestTask 1 (89eb9479-19d7-45e7-90aa-b9c7139a6cba)","28.10.2020 11:06:10 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:10 - with parameters: ","28.10.2020 11:06:10 - etf.testcases = *","28.10.2020 11:06:10 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:10 - Setting state to CREATED","28.10.2020 11:06:10 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:12 - Starting TestRun.a581ace8-1be9-4ab0-9997-d33ae7c378ea at 2020-10-28T11:06:13Z","28.10.2020 11:06:13 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:13 - Project Properties: ","28.10.2020 11:06:13 - etf.testcases - * ","28.10.2020 11:06:13 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:13 - username - ","28.10.2020 11:06:13 - authUser - ","28.10.2020 11:06:13 - authMethod - basic ","28.10.2020 11:06:13 - TestRunTask initialized","28.10.2020 11:06:16 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:06:16 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:06:18 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:06:20 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:06:20 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:06:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:06:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:06:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:06:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:06:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:06:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:06:21 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:06:21 ERROR Response status code:404 is not in acceptable list of status codes"]}
11:06:21.303 retry condition not satisfied: response.val == response.max
11:06:21.303 sleeping before retry #2
11:06:26.305 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:28.323 response time in milliseconds: 2015.76
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:06:28 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:06:28.323 retry condition satisfied
11:06:28.324 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:06:28.325 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:35.067 response time in milliseconds: 5786.93
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:06:34 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:06:26 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a581ace8-1be9-4ab0-9997-d33ae7c378ea.json","testRuns":{"TestRun":{"id":"EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:10.833Z","testTasks":{"TestTask":{"id":"EID89eb9479-19d7-45e7-90aa-b9c7139a6cba","parent":{"ref":"EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID07885ef6-db2e-4420-be2a-fc56528a7c14"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID07885ef6-db2e-4420-be2a-fc56528a7c14","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:09.508Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:10.324Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39","testObject":{"ref":"EID07885ef6-db2e-4420-be2a-fc56528a7c14"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee306c6-0175-1000-50cc-14a3bda7fc86","testCaseResults":{"TestCaseResult":[{"id":"EID6ee306c7-0175-1000-7fd2-1b5da05fd4cb","testStepResults":{"TestStepResult":[{"id":"EID6ee306c8-0175-1000-8a59-038c143bb412","parent":{"ref":"EID6ee306c7-0175-1000-7fd2-1b5da05fd4cb"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:06:13Z","duration":24,"status":"PASSED"},{"id":"EID6ee306e0-0175-1000-ecdc-f5a50f750e0a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee30785-0175-1000-fd6d-95aaac66efd6","parent":{"ref":"EID6ee306e0-0175-1000-ecdc-f5a50f750e0a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee30785-0175-1000-24a9-37ed2c6238f2","parent":{"ref":"EID6ee306e0-0175-1000-ecdc-f5a50f750e0a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee30785-0175-1000-dcd0-f575613e187a","parent":{"ref":"EID6ee306e0-0175-1000-ecdc-f5a50f750e0a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee30785-0175-1000-402d-6a129bac3699","parent":{"ref":"EID6ee306e0-0175-1000-ecdc-f5a50f750e0a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc92d138f-6b14-448f-bec1-e30ba4832714"},{"ref":"EIDa1656a08-17df-4dd5-ad7a-757836369b5b"},{"ref":"EID612f5e8a-7ae2-4f43-8de4-871246ac814d"}]},"parent":{"ref":"EID6ee306c7-0175-1000-7fd2-1b5da05fd4cb"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:06:13Z","duration":44,"status":"PASSED"}]},"parent":{"ref":"EID6ee306c6-0175-1000-50cc-14a3bda7fc86"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:06:13Z","duration":204,"status":"PASSED"},{"id":"EID6ee307aa-0175-1000-b388-fc214467eb23","testStepResults":{"TestStepResult":{"id":"EID6ee307aa-0175-1000-4941-2e7baca19d9c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3082f-0175-1000-6410-b743af95b84d","parent":{"ref":"EID6ee307aa-0175-1000-4941-2e7baca19d9c"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3082f-0175-1000-76b2-7a58d5a0c70b","parent":{"ref":"EID6ee307aa-0175-1000-4941-2e7baca19d9c"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3082f-0175-1000-8abf-24bb65403bdd","parent":{"ref":"EID6ee307aa-0175-1000-4941-2e7baca19d9c"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:06:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4ab2b5a2-eff0-4918-9924-98187bce3e66"},{"ref":"EIDa941c3c2-5e92-4b2b-b6e7-73f0eab02853"},{"ref":"EID66225936-21be-479f-b1a3-2f92d2b2b299"}]},"parent":{"ref":"EID6ee307aa-0175-1000-b388-fc214467eb23"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:06:13Z","duration":44,"status":"PASSED"}},"parent":{"ref":"EID6ee306c6-0175-1000-50cc-14a3bda7fc86"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:06:13Z","duration":133,"status":"PASSED"}]},"parent":{"ref":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:06:13Z","duration":361,"status":"PASSED"},{"id":"EID6ee3082f-0175-1000-513f-8e2b997d36a5","testCaseResults":{"TestCaseResult":[{"id":"EID6ee30830-0175-1000-6d83-48ce40d16276","testStepResults":{"TestStepResult":[{"id":"EID6ee30830-0175-1000-fe19-728b79d6d244","parent":{"ref":"EID6ee30830-0175-1000-6d83-48ce40d16276"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:06:13Z","duration":53,"status":"PASSED"},{"id":"EID6ee3083a-0175-1000-3dc9-02916014900a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3095e-0175-1000-2b8a-fd23e0689c9a","parent":{"ref":"EID6ee3083a-0175-1000-3dc9-02916014900a"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee3095e-0175-1000-60ac-428d7b4c3bb4","parent":{"ref":"EID6ee3083a-0175-1000-3dc9-02916014900a"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee3095e-0175-1000-7b9c-a200977be71d","parent":{"ref":"EID6ee3083a-0175-1000-3dc9-02916014900a"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee3095e-0175-1000-dbd6-87a017e4f4c5","parent":{"ref":"EID6ee3083a-0175-1000-3dc9-02916014900a"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee3095f-0175-1000-f74d-950a8b082f40","parent":{"ref":"EID6ee3083a-0175-1000-3dc9-02916014900a"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1da857ae-9252-49ad-a9b8-223fa0387a83"},{"ref":"EID45caac5c-81d7-4651-8bc2-8117b3f79346"},{"ref":"EIDbf0aa9fa-c67f-4584-8401-b305788d0480"}]},"parent":{"ref":"EID6ee30830-0175-1000-6d83-48ce40d16276"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:06:13Z","duration":98,"status":"PASSED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:06:13Z","duration":303,"status":"PASSED"},{"id":"EID6ee3095f-0175-1000-34bc-c62080ab251c","testStepResults":{"TestStepResult":[{"id":"EID6ee30967-0175-1000-077e-ffd39fd71ae3","attachments":{"attachment":[{"ref":"EID5db55e68-17f6-46e2-bc8b-41ffad728190"},{"ref":"EIDe6c7ea2f-1f57-4863-8983-c971e6c08cc3"}]},"parent":{"ref":"EID6ee3095f-0175-1000-34bc-c62080ab251c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:06:14Z","duration":82,"status":"PASSED"},{"id":"EID6ee30a10-0175-1000-b2b2-1d46a6ea24bb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee30aaf-0175-1000-9f36-4f8fa787480b","parent":{"ref":"EID6ee30a10-0175-1000-b2b2-1d46a6ea24bb"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30aaf-0175-1000-5ca5-fec9c7307295","parent":{"ref":"EID6ee30a10-0175-1000-b2b2-1d46a6ea24bb"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30aaf-0175-1000-e9a7-df63febfe3d5","parent":{"ref":"EID6ee30a10-0175-1000-b2b2-1d46a6ea24bb"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30aaf-0175-1000-6faa-acca7bde26ac","parent":{"ref":"EID6ee30a10-0175-1000-b2b2-1d46a6ea24bb"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID817d1d53-c689-49fa-ba07-9f7a3372030d"},{"ref":"EID876ef7c0-c48e-4f54-a113-56f0959a3839"},{"ref":"EIDef9caf72-a064-4e58-9be2-27064ca08621"}]},"parent":{"ref":"EID6ee3095f-0175-1000-34bc-c62080ab251c"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:06:14Z","duration":38,"status":"PASSED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:06:14Z","duration":336,"status":"PASSED"},{"id":"EID6ee30aaf-0175-1000-adcb-82e291923ca7","testStepResults":{"TestStepResult":[{"id":"EID6ee30ab7-0175-1000-c5cb-31efbc5ff15b","attachments":{"attachment":[{"ref":"EID38a84270-5b62-4fe1-a1f3-b614e6948f01"},{"ref":"EID38beec96-b03c-4adf-92cb-b9fbaf2a9ab1"}]},"parent":{"ref":"EID6ee30aaf-0175-1000-adcb-82e291923ca7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:06:14Z","duration":117,"status":"PASSED"},{"id":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee30c27-0175-1000-7386-37d2a34a3bf0","parent":{"ref":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30c27-0175-1000-65e0-6e397e9e3173","parent":{"ref":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30c27-0175-1000-27b5-5f9c0cad3e7d","parent":{"ref":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30c27-0175-1000-adf6-e98bbdf2c207","parent":{"ref":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee30c27-0175-1000-dbff-00eb9a341eef","parent":{"ref":"EID6ee30b52-0175-1000-3550-b4d3a825c3a9"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:06:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe6a6a5a3-46b4-46ef-aafe-f732f6c682cd"},{"ref":"EID0fd53386-4c18-4d0a-91ac-25f1545bc20c"},{"ref":"EID2505c271-5ea8-42fa-8333-7b01aec6254c"}]},"parent":{"ref":"EID6ee30aaf-0175-1000-adcb-82e291923ca7"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:06:14Z","duration":88,"status":"PASSED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:06:14Z","duration":385,"status":"PASSED"},{"id":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01","testStepResults":{"TestStepResult":[{"id":"EID6ee30c30-0175-1000-8d6a-72fc292e6d5f","attachments":{"attachment":[{"ref":"EID5917af01-cefd-4cb0-886a-a29cf84b3650"},{"ref":"EID775f1ead-4a04-4eca-b948-890c52fcaa13"}]},"parent":{"ref":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:06:14Z","duration":183,"status":"PASSED"},{"id":"EID6ee30d27-0175-1000-b403-c0b6d0d2b70d","parent":{"ref":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30d27-0175-1000-d38d-440498c491a8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee30ddc-0175-1000-19dd-b1d71bd95598","parent":{"ref":"EID6ee30d27-0175-1000-d38d-440498c491a8"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30ddc-0175-1000-b34a-02e3098cfe39","parent":{"ref":"EID6ee30d27-0175-1000-d38d-440498c491a8"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30ddc-0175-1000-93dc-4bc345a965c9","parent":{"ref":"EID6ee30d27-0175-1000-d38d-440498c491a8"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30ddc-0175-1000-4e7f-7ef3bcc13c2b","parent":{"ref":"EID6ee30d27-0175-1000-d38d-440498c491a8"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID83fb0b16-9de3-40b9-bb35-7058b3b8571c"},{"ref":"EIDf2909364-765b-4b80-8c4c-f70e818d8294"},{"ref":"EID0a487310-f46e-4b05-a683-03e9e0435b9c"}]},"parent":{"ref":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:06:15Z","duration":73,"status":"PASSED"},{"id":"EID6ee30de5-0175-1000-1f21-e61dd9ae9db2","attachments":{"attachment":{"ref":"EID9844067c-6abe-48b6-883c-f3585ae22f30"}},"parent":{"ref":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:06:15Z","duration":2,"status":"PASSED"},{"id":"EID6ee30df3-0175-1000-8e91-a245f5af2495","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee30f11-0175-1000-764b-6ee318c166c2","parent":{"ref":"EID6ee30df3-0175-1000-8e91-a245f5af2495"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30f11-0175-1000-7aa3-49efdcf3db1f","parent":{"ref":"EID6ee30df3-0175-1000-8e91-a245f5af2495"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30f11-0175-1000-271e-136481a16c7e","parent":{"ref":"EID6ee30df3-0175-1000-8e91-a245f5af2495"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30f11-0175-1000-15ea-c0c057d35dd5","parent":{"ref":"EID6ee30df3-0175-1000-8e91-a245f5af2495"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee30f11-0175-1000-5d77-f58f8efde270","parent":{"ref":"EID6ee30df3-0175-1000-8e91-a245f5af2495"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:06:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb56dac84-d315-4706-af04-0161459f3115"},{"ref":"EID6c298dc5-24f6-4cb1-9f72-981c6618336e"},{"ref":"EIDdb2511e1-f30e-406e-97e6-9ed2440d6126"}]},"parent":{"ref":"EID6ee30c30-0175-1000-ba7f-d64b1b68bc01"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:06:15Z","duration":91,"status":"PASSED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:06:14Z","duration":737,"status":"PASSED"},{"id":"EID6ee30f11-0175-1000-cd00-c01617d8be3d","testStepResults":{"TestStepResult":[{"id":"EID6ee30f11-0175-1000-7440-7173d9e7b55f","attachments":{"attachment":[{"ref":"EID5e198dc0-bcb1-4774-a0a5-6885ec53ec25"},{"ref":"EID451a5efc-38fa-4ac4-bbc9-884091ac8591"}]},"parent":{"ref":"EID6ee30f11-0175-1000-cd00-c01617d8be3d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:06:15Z","duration":115,"status":"PASSED"},{"id":"EID6ee30fae-0175-1000-2ca4-1b0f351857aa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31094-0175-1000-0dd8-b70464991bbf","parent":{"ref":"EID6ee30fae-0175-1000-2ca4-1b0f351857aa"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee31094-0175-1000-c76a-77e5612e96d2","parent":{"ref":"EID6ee30fae-0175-1000-2ca4-1b0f351857aa"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee31094-0175-1000-0655-bc1a6041396b","parent":{"ref":"EID6ee30fae-0175-1000-2ca4-1b0f351857aa"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee31094-0175-1000-6478-bb93efab269e","parent":{"ref":"EID6ee30fae-0175-1000-2ca4-1b0f351857aa"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd1b7ea28-a863-4f51-b652-f0f000e78a79"},{"ref":"EID56195e77-44a7-4816-875b-6a46af02d8b6"},{"ref":"EID8f45e24f-b7c1-4757-9372-4202f6c24501"}]},"parent":{"ref":"EID6ee30f11-0175-1000-cd00-c01617d8be3d"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:06:15Z","duration":107,"status":"PASSED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:06:15Z","duration":388,"status":"PASSED"},{"id":"EID6ee31095-0175-1000-7ed8-cabcb039ca91","testStepResults":{"TestStepResult":[{"id":"EID6ee31095-0175-1000-45e4-0bc16b419641","attachments":{"attachment":[{"ref":"EID6d4b06c9-c6da-4ec1-86c3-305c80a0d193"},{"ref":"EIDd5ab164f-9364-413f-9b10-cd9ac9b3fe3c"}]},"parent":{"ref":"EID6ee31095-0175-1000-7ed8-cabcb039ca91"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:06:16Z","duration":147,"status":"PASSED"},{"id":"EID6ee31155-0175-1000-8aec-2fa658f809ec","parent":{"ref":"EID6ee31095-0175-1000-7ed8-cabcb039ca91"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee31155-0175-1000-2406-8ad76315cc8c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3120c-0175-1000-731d-cd0000694639","parent":{"ref":"EID6ee31155-0175-1000-2406-8ad76315cc8c"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3120c-0175-1000-6221-32734a0bdc7f","parent":{"ref":"EID6ee31155-0175-1000-2406-8ad76315cc8c"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3120c-0175-1000-d369-956f6b7edae3","parent":{"ref":"EID6ee31155-0175-1000-2406-8ad76315cc8c"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3120c-0175-1000-a256-700140680f22","parent":{"ref":"EID6ee31155-0175-1000-2406-8ad76315cc8c"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID91656ed6-0443-440b-941c-be3d8d446193"},{"ref":"EID3a772445-bd91-4caf-9a91-25e5f70530ce"},{"ref":"EID9e7e9f98-5bba-4725-bb33-39da078dc7da"}]},"parent":{"ref":"EID6ee31095-0175-1000-7ed8-cabcb039ca91"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:06:16Z","duration":79,"status":"PASSED"},{"id":"EID6ee31215-0175-1000-24a2-335430b48000","attachments":{"attachment":{"ref":"EIDe41c80c9-46cc-4738-9b60-9178e4401a34"}},"parent":{"ref":"EID6ee31095-0175-1000-7ed8-cabcb039ca91"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:06:16Z","duration":1,"status":"PASSED"},{"id":"EID6ee31223-0175-1000-c19f-67a717853695","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3136c-0175-1000-0e26-604d94972580","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee31223-0175-1000-c19f-67a717853695"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:06:16Z","duration":12,"status":"FAILED"},{"id":"EID6ee31378-0175-1000-1218-0160cd349e66","parent":{"ref":"EID6ee31223-0175-1000-c19f-67a717853695"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee31378-0175-1000-8515-b1031301cda3","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee31223-0175-1000-c19f-67a717853695"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:06:16Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfd39d4a8-c550-4a22-98a7-ef27f8086038"},{"ref":"EID65c49752-1abf-4ea1-8bca-59e2bbb7e49f"},{"ref":"EID9cb9b723-769e-48d7-bfdb-45a81fc39951"}]},"parent":{"ref":"EID6ee31095-0175-1000-7ed8-cabcb039ca91"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:06:16Z","duration":270,"status":"FAILED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:06:16Z","duration":740,"status":"FAILED"},{"id":"EID6ee31391-0175-1000-711c-246bb1bc2d22","testStepResults":{"TestStepResult":[{"id":"EID6ee31391-0175-1000-981f-d91e89291aab","attachments":{"attachment":[{"ref":"EID55f4a93e-6954-40f7-9a55-d4c8cdf68f82"},{"ref":"EIDc153008c-92f5-43db-878c-ccf8b02f726f"}]},"parent":{"ref":"EID6ee31391-0175-1000-711c-246bb1bc2d22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:06:16Z","duration":78,"status":"PASSED"},{"id":"EID6ee31476-0175-1000-4972-c4e7cd9c8b2e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31531-0175-1000-6f35-ab9c50e583d3","parent":{"ref":"EID6ee31476-0175-1000-4972-c4e7cd9c8b2e"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee31531-0175-1000-4669-a7b8649262d7","parent":{"ref":"EID6ee31476-0175-1000-4972-c4e7cd9c8b2e"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee31531-0175-1000-9d13-5b442037657f","parent":{"ref":"EID6ee31476-0175-1000-4972-c4e7cd9c8b2e"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee31531-0175-1000-2d8f-00ac6ee30da6","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee31476-0175-1000-4972-c4e7cd9c8b2e"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID927d8932-708e-41ec-a8c9-fe524f6ebec1"},{"ref":"EIDfd84594b-c0a0-414d-8084-8e9b701675e9"},{"ref":"EID9d6b5b24-8ded-4501-a66d-e5a169540335"}]},"parent":{"ref":"EID6ee31391-0175-1000-711c-246bb1bc2d22"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:06:17Z","duration":43,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:06:16Z","duration":416,"status":"PASSED_MANUAL"},{"id":"EID6ee31531-0175-1000-4a0f-bf73d7ff60b4","testStepResults":{"TestStepResult":{"id":"EID6ee31531-0175-1000-1fe4-4ee1f23642f9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee315db-0175-1000-e414-a120fd98bdc9","parent":{"ref":"EID6ee31531-0175-1000-1fe4-4ee1f23642f9"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee315db-0175-1000-2b38-1b697d439bce","parent":{"ref":"EID6ee31531-0175-1000-1fe4-4ee1f23642f9"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee315db-0175-1000-0b60-541fbbaac65e","parent":{"ref":"EID6ee31531-0175-1000-1fe4-4ee1f23642f9"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee315db-0175-1000-3f0a-7e25f6b3ffe2","parent":{"ref":"EID6ee31531-0175-1000-1fe4-4ee1f23642f9"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4881d89d-19c7-4ea3-aadd-c0a1da9db152"},{"ref":"EIDff5687e6-b855-4dcc-9843-d181537864d7"},{"ref":"EID25618100-ec94-437a-8500-a41b71c43dd0"}]},"parent":{"ref":"EID6ee31531-0175-1000-4a0f-bf73d7ff60b4"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:06:17Z","duration":54,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:06:17Z","duration":170,"status":"PASSED"},{"id":"EID6ee315e5-0175-1000-16f1-20a082614a8d","testStepResults":{"TestStepResult":{"id":"EID6ee315e5-0175-1000-103a-8cfb0d044ffa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee316d1-0175-1000-3a7f-40fbb58bc55f","parent":{"ref":"EID6ee315e5-0175-1000-103a-8cfb0d044ffa"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee316d1-0175-1000-69f9-19251437e17f","parent":{"ref":"EID6ee315e5-0175-1000-103a-8cfb0d044ffa"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee316d1-0175-1000-8af2-77affb25d482","parent":{"ref":"EID6ee315e5-0175-1000-103a-8cfb0d044ffa"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee316d1-0175-1000-ab5f-5ee503fe9f50","parent":{"ref":"EID6ee315e5-0175-1000-103a-8cfb0d044ffa"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:06:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd5e8db0b-2533-43cc-aa6c-0ef6b91e8680"},{"ref":"EID935e02ba-f0f5-436d-925c-a6b271f4d9c8"},{"ref":"EID30196305-293b-44a4-938b-1b4e520b4765"}]},"parent":{"ref":"EID6ee315e5-0175-1000-16f1-20a082614a8d"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:06:17Z","duration":126,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:06:17Z","duration":237,"status":"PASSED"},{"id":"EID6ee316d2-0175-1000-918c-81a755c2f738","testStepResults":{"TestStepResult":{"id":"EID6ee316d2-0175-1000-75ce-8b61aedbe3d3","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID8e9bb5b4-1616-40af-90e3-10d67b5ddfc0"},{"ref":"EIDd3c82d6d-5ec0-471a-bf8f-08d44f9ade94"},{"ref":"EID708ad491-499b-444f-9c22-9eaae4d9047d"},{"ref":"EID0996f64b-31f6-4ec5-8621-d49fd15ef88f"},{"ref":"EID95be255c-44fa-4c79-a496-bab412bee2d4"},{"ref":"EID9a862a9b-32ff-449f-8b9c-c1a05a7911aa"},{"ref":"EID96dee8b5-c8ea-4fd4-af38-4af72ebf1dc7"},{"ref":"EID6e0c9625-0a4d-4906-88a9-02864060ca6a"},{"ref":"EID07ddf41d-5262-416d-bad1-3c690abf4f66"}]},"parent":{"ref":"EID6ee316d2-0175-1000-918c-81a755c2f738"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:06:17Z","duration":646,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:06:17Z","duration":819,"status":"SKIPPED"},{"id":"EID6ee31a05-0175-1000-11d1-e8be1f82c891","testStepResults":{"TestStepResult":{"id":"EID6ee31a05-0175-1000-b327-3ccc9e18604d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31b30-0175-1000-1ece-fa8482d228db","parent":{"ref":"EID6ee31a05-0175-1000-b327-3ccc9e18604d"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:06:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee31b30-0175-1000-5a36-60c6401aa573","parent":{"ref":"EID6ee31a05-0175-1000-b327-3ccc9e18604d"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:06:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee31b30-0175-1000-a1ee-e74239910a59","parent":{"ref":"EID6ee31a05-0175-1000-b327-3ccc9e18604d"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:06:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee31b30-0175-1000-95a7-14fd1c672141","parent":{"ref":"EID6ee31a05-0175-1000-b327-3ccc9e18604d"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:06:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID382e45d2-87fd-4a39-9692-b8e416334106"},{"ref":"EIDd45b185f-4281-4d78-98ce-f960626a1521"},{"ref":"EID48b3aa8e-7c4e-4076-b239-cbda274490f5"}]},"parent":{"ref":"EID6ee31a05-0175-1000-11d1-e8be1f82c891"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:06:18Z","duration":142,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:06:18Z","duration":316,"status":"PASSED"},{"id":"EID6ee31b41-0175-1000-5477-4d3c207bd534","testStepResults":{"TestStepResult":{"id":"EID6ee31b41-0175-1000-f49f-6e1c7341a609","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31c27-0175-1000-b51a-b434b73296ae","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-fe28-48e44bf7cece","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-4938-bd3694276f9d","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-2fde-89964d7cd4d2","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-158b-0a937a60f616","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-0f6e-6d937674aa6d","parent":{"ref":"EID6ee31b41-0175-1000-f49f-6e1c7341a609"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb8c4a454-a612-4323-84cb-8de65e30de2c"},{"ref":"EIDf3935679-6c51-41dc-806d-f78bc86ae7a6"},{"ref":"EID1dcc2f22-7ef0-4627-bb02-416875357d7b"}]},"parent":{"ref":"EID6ee31b41-0175-1000-5477-4d3c207bd534"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:06:18Z","duration":90,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:06:18Z","duration":230,"status":"PASSED"},{"id":"EID6ee31c27-0175-1000-886a-242664947e67","testStepResults":{"TestStepResult":{"id":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31d4f-0175-1000-70c5-dbddf8e77f4b","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31d4f-0175-1000-8bc4-9c409c2390e9","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31d4f-0175-1000-34a0-f67c61e68558","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31d4f-0175-1000-1a48-8da5cebe2ed8","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31d4f-0175-1000-7098-1c9a1f3369bb","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31d4f-0175-1000-6634-52c78bf690e1","parent":{"ref":"EID6ee31c27-0175-1000-5b3f-d3459d556f1f"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48e321bc-c3bc-4c01-a886-f2fb95fda702"},{"ref":"EID63c5e522-f415-4a17-b612-097ec88c9385"},{"ref":"EIDa626773b-6ac4-4a7f-8259-958291ed7596"}]},"parent":{"ref":"EID6ee31c27-0175-1000-886a-242664947e67"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:06:19Z","duration":74,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:06:19Z","duration":306,"status":"PASSED"},{"id":"EID6ee31d59-0175-1000-ebf8-57ef9a53c028","testStepResults":{"TestStepResult":{"id":"EID6ee31d59-0175-1000-7cab-86110a06c8f4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee31dfc-0175-1000-4a69-a0d1f523b00b","parent":{"ref":"EID6ee31d59-0175-1000-7cab-86110a06c8f4"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31dfc-0175-1000-8287-e4248ba8d14a","parent":{"ref":"EID6ee31d59-0175-1000-7cab-86110a06c8f4"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31dfc-0175-1000-d176-3ffbdf00ad03","parent":{"ref":"EID6ee31d59-0175-1000-7cab-86110a06c8f4"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee31dfc-0175-1000-7c32-0d473550bc02","parent":{"ref":"EID6ee31d59-0175-1000-7cab-86110a06c8f4"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:06:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID14c819c9-d51a-4380-a2fb-edf4c106e984"},{"ref":"EIDd726735d-e349-40d8-9dd6-d6e6e52f4cbd"},{"ref":"EID4fd14429-e02e-40d4-80bc-8e16501ce11b"}]},"parent":{"ref":"EID6ee31d59-0175-1000-ebf8-57ef9a53c028"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:06:19Z","duration":27,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:06:19Z","duration":163,"status":"PASSED"},{"id":"EID6ee31dfc-0175-1000-ad80-08923702c290","testStepResults":{"TestStepResult":[{"id":"EID6ee31dfc-0175-1000-bbfa-78fac721c7eb","attachments":{"attachment":[{"ref":"EID675dc6dd-c6a3-4722-a7b6-3fa1b5329968"},{"ref":"EID39ff539f-cc61-467a-9983-81cd9559e492"},{"ref":"EID1b75bc01-3b2c-48ef-a419-d1bf03b2596b"},{"ref":"EID784af662-fcb7-4e1e-82a8-c0c765cc48f6"}]},"parent":{"ref":"EID6ee31dfc-0175-1000-ad80-08923702c290"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:06:19Z","duration":362,"status":"PASSED"},{"id":"EID6ee31fa8-0175-1000-5b40-ae60c3d2670a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32075-0175-1000-549b-7fed095f6ea3","parent":{"ref":"EID6ee31fa8-0175-1000-5b40-ae60c3d2670a"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32075-0175-1000-b902-bc6a701409d4","parent":{"ref":"EID6ee31fa8-0175-1000-5b40-ae60c3d2670a"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32075-0175-1000-a4b7-a010ab98bfe0","parent":{"ref":"EID6ee31fa8-0175-1000-5b40-ae60c3d2670a"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32075-0175-1000-0994-efa0d441d0d1","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee31fa8-0175-1000-5b40-ae60c3d2670a"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDe2156344-9969-488f-b687-dd037db376e7"},{"ref":"EIDaee92ca1-51bd-40d1-9c9f-4720cc26224a"},{"ref":"EID21a91b8f-2cf6-4d09-a004-d28dee7978a4"}]},"parent":{"ref":"EID6ee31dfc-0175-1000-ad80-08923702c290"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:06:19Z","duration":30,"status":"FAILED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:06:19Z","duration":634,"status":"FAILED"},{"id":"EID6ee32076-0175-1000-e7b5-5f09ebdd9e0d","testStepResults":{"TestStepResult":{"id":"EID6ee32076-0175-1000-2ad1-f9f1a75f3917","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3210a-0175-1000-d28c-6ecea832b018","parent":{"ref":"EID6ee32076-0175-1000-2ad1-f9f1a75f3917"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee3210a-0175-1000-f6b2-f1842e798ee3","parent":{"ref":"EID6ee32076-0175-1000-2ad1-f9f1a75f3917"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee3210b-0175-1000-a62d-f88baa721c8a","parent":{"ref":"EID6ee32076-0175-1000-2ad1-f9f1a75f3917"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee3210b-0175-1000-4882-f0405aa370cb","parent":{"ref":"EID6ee32076-0175-1000-2ad1-f9f1a75f3917"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdfc924ff-54a2-41de-81f7-a58e52be3de0"},{"ref":"EID07f11f46-5112-4bde-9148-3564da8126a2"},{"ref":"EID6870c3e8-3a8a-4e30-8d06-722931264e68"}]},"parent":{"ref":"EID6ee32076-0175-1000-e7b5-5f09ebdd9e0d"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:06:20Z","duration":31,"status":"PASSED"}},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:06:20Z","duration":156,"status":"PASSED"},{"id":"EID6ee32112-0175-1000-f76c-31c48b1461d7","testStepResults":{"TestStepResult":[{"id":"EID6ee32112-0175-1000-442e-a793d548d239","parent":{"ref":"EID6ee32112-0175-1000-f76c-31c48b1461d7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32112-0175-1000-43e3-9fc0833ddff7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee321ea-0175-1000-1c12-ec73569c3117","parent":{"ref":"EID6ee32112-0175-1000-43e3-9fc0833ddff7"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee321ea-0175-1000-76aa-ad24d722e734","parent":{"ref":"EID6ee32112-0175-1000-43e3-9fc0833ddff7"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee321ea-0175-1000-c659-7f9fd0b4f2c7","parent":{"ref":"EID6ee32112-0175-1000-43e3-9fc0833ddff7"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee321ea-0175-1000-d4b2-75de209d6045","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee32112-0175-1000-43e3-9fc0833ddff7"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID94af022b-26e3-4099-b993-bc805b304442"},{"ref":"EID01a1e39d-4a10-4d69-8f00-df1c5ef0103a"},{"ref":"EID7918d2b8-8082-40c5-9be9-245aa3a85a71"}]},"parent":{"ref":"EID6ee32112-0175-1000-f76c-31c48b1461d7"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:06:20Z","duration":64,"status":"FAILED"}]},"parent":{"ref":"EID6ee3082f-0175-1000-513f-8e2b997d36a5"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:06:20Z","duration":216,"status":"FAILED"}]},"parent":{"ref":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:06:13Z","duration":6587,"status":"FAILED"},{"id":"EID6ee321ea-0175-1000-7e23-962bf7021c56","testCaseResults":{"TestCaseResult":[{"id":"EID6ee321ea-0175-1000-a20d-ed43fbec619c","testStepResults":{"TestStepResult":[{"id":"EID6ee321ea-0175-1000-f2b5-e63ca433d9f0","parent":{"ref":"EID6ee321ea-0175-1000-a20d-ed43fbec619c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee321eb-0175-1000-cd02-c27c4f4745fc","parent":{"ref":"EID6ee321ea-0175-1000-a20d-ed43fbec619c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:06:20Z","duration":31,"status":"PASSED"},{"id":"EID6ee321eb-0175-1000-0fd2-3c107bf18995","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee322b7-0175-1000-4c19-a71d4e73184d","parent":{"ref":"EID6ee321eb-0175-1000-0fd2-3c107bf18995"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee322b7-0175-1000-02a6-db3fb8d93d0c","parent":{"ref":"EID6ee321eb-0175-1000-0fd2-3c107bf18995"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee322b7-0175-1000-c799-dc153f2268b3","parent":{"ref":"EID6ee321eb-0175-1000-0fd2-3c107bf18995"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8fad5e8e-2024-4b72-88c0-e93ce5291f7d"},{"ref":"EIDb4ca7463-ccf7-4a77-9dc7-0223093491cf"},{"ref":"EID602a212a-ff1c-4acf-9da9-f64d7315c144"}]},"parent":{"ref":"EID6ee321ea-0175-1000-a20d-ed43fbec619c"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:06:20Z","duration":120,"status":"PASSED"},{"id":"EID6ee322bf-0175-1000-b67c-30476da0e718","attachments":{"attachment":{"ref":"EID973c9af3-a56b-47f7-89e0-e05d8564ed3f"}},"parent":{"ref":"EID6ee321ea-0175-1000-a20d-ed43fbec619c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee322cc-0175-1000-e736-28ccfed4dedc","parent":{"ref":"EID6ee321ea-0175-1000-a20d-ed43fbec619c"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:06:20Z","duration":36,"status":"PASSED"}]},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:06:20Z","duration":263,"status":"PASSED"},{"id":"EID6ee322f1-0175-1000-6fcd-96451900a7e9","testStepResults":{"TestStepResult":[{"id":"EID6ee322f1-0175-1000-e06f-a08b106d1d99","parent":{"ref":"EID6ee322f1-0175-1000-6fcd-96451900a7e9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:06:20Z","duration":44,"status":"PASSED"},{"id":"EID6ee322f1-0175-1000-6402-35007a90ecd5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32356-0175-1000-fb94-da180c08cbb0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee322f1-0175-1000-6402-35007a90ecd5"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:06:20Z","duration":13,"status":"FAILED"},{"id":"EID6ee32363-0175-1000-6bc7-3b2b423e5747","parent":{"ref":"EID6ee322f1-0175-1000-6402-35007a90ecd5"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32363-0175-1000-ea8a-7da2480fd5ef","parent":{"ref":"EID6ee322f1-0175-1000-6402-35007a90ecd5"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee32363-0175-1000-f65c-f8ead7a09ef7","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee322f1-0175-1000-6402-35007a90ecd5"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"FAILED"},{"id":"EID6ee32363-0175-1000-57f4-4ce3642d3e84","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee322f1-0175-1000-6402-35007a90ecd5"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:06:20Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDb27f1e6c-6f13-4b11-bcbb-58094026a474"},{"ref":"EIDc61f6080-cec0-41db-853e-18bb4485014b"},{"ref":"EID45da2e2c-50c7-44f3-986e-2f65c28ae7f3"}]},"parent":{"ref":"EID6ee322f1-0175-1000-6fcd-96451900a7e9"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:06:20Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:06:20Z","duration":130,"status":"FAILED"},{"id":"EID6ee32373-0175-1000-b93c-9e95e1a0e35b","testStepResults":{"TestStepResult":{"id":"EID6ee32373-0175-1000-c524-098087350d8c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee323cb-0175-1000-c194-a3bcecaf205c","parent":{"ref":"EID6ee32373-0175-1000-c524-098087350d8c"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee323cb-0175-1000-03a5-ddb7f52036e9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32373-0175-1000-c524-098087350d8c"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:06:21Z","duration":13,"status":"FAILED"},{"id":"EID6ee323d8-0175-1000-5876-1a6c058dba4d","parent":{"ref":"EID6ee32373-0175-1000-c524-098087350d8c"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb2dd2c43-3fc0-4548-9d52-265649be0cf4"},{"ref":"EID1da67f53-8df6-4a52-8b78-2c38bd0a70a2"},{"ref":"EIDa759897f-6fa9-40bb-bfc8-d345c0f02ba7"}]},"parent":{"ref":"EID6ee32373-0175-1000-b93c-9e95e1a0e35b"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:06:20Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:06:20Z","duration":101,"status":"FAILED"},{"id":"EID6ee323d8-0175-1000-9a98-2b358b808958","testStepResults":{"TestStepResult":{"id":"EID6ee323d8-0175-1000-e76d-72b003b55518","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32449-0175-1000-a276-e4456e5bfac1","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee323d8-0175-1000-e76d-72b003b55518"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:06:21Z","duration":1,"status":"FAILED"},{"id":"EID6ee3244a-0175-1000-cde5-7258afc26aba","parent":{"ref":"EID6ee323d8-0175-1000-e76d-72b003b55518"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee3244a-0175-1000-e1e0-d32f0e7fe5d1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee323d8-0175-1000-e76d-72b003b55518"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:06:21Z","duration":11,"status":"FAILED"},{"id":"EID6ee32455-0175-1000-f85b-64ffc38154f0","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee323d8-0175-1000-e76d-72b003b55518"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4f3a460c-9c8a-4863-93f2-3b1286764ae6"},{"ref":"EID68734ec8-bdfe-48cd-b098-9c4f7aad568c"},{"ref":"EID8f6a0139-dcc5-458d-9300-eae62a56fddc"}]},"parent":{"ref":"EID6ee323d8-0175-1000-9a98-2b358b808958"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:06:21Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:06:21Z","duration":125,"status":"FAILED"},{"id":"EID6ee32455-0175-1000-ad5f-73dcda520cc6","testStepResults":{"TestStepResult":{"id":"EID6ee32455-0175-1000-6557-c84ab944be32","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee324a8-0175-1000-91a0-43c0942e7589","parent":{"ref":"EID6ee32455-0175-1000-6557-c84ab944be32"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee324a8-0175-1000-798e-f86f7a7dade0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32455-0175-1000-6557-c84ab944be32"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:06:21Z","duration":15,"status":"FAILED"},{"id":"EID6ee324b7-0175-1000-9d18-abf502be7301","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee32455-0175-1000-6557-c84ab944be32"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID813773cb-ef27-4c06-9680-eceead08a5c3"},{"ref":"EIDaf41bf32-3546-4e8d-a2ab-a459aa9d5aad"},{"ref":"EIDe6560840-cc88-483b-8680-84c537cd9d9d"}]},"parent":{"ref":"EID6ee32455-0175-1000-ad5f-73dcda520cc6"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:06:21Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:06:21Z","duration":98,"status":"FAILED"},{"id":"EID6ee324b7-0175-1000-b8c1-a0f5a94ba3bb","testStepResults":{"TestStepResult":{"id":"EID6ee324b8-0175-1000-11fb-e9a399a66fa5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32510-0175-1000-d42c-f5c0a12e7696","parent":{"ref":"EID6ee324b8-0175-1000-11fb-e9a399a66fa5"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee32510-0175-1000-e5fc-98a7c8ad4d53","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee324b8-0175-1000-11fb-e9a399a66fa5"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:06:21Z","duration":12,"status":"FAILED"},{"id":"EID6ee3251c-0175-1000-edd6-f850776aea4c","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee324b8-0175-1000-11fb-e9a399a66fa5"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf9407ac5-ed71-422b-bcc7-ac6a5f66e782"},{"ref":"EID5ee21fcd-3ff2-48a9-aaa4-30672fa4b556"},{"ref":"EID9f0e2e11-ad0d-4005-a8b0-17d4421826f1"}]},"parent":{"ref":"EID6ee324b7-0175-1000-b8c1-a0f5a94ba3bb"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:06:21Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:06:21Z","duration":101,"status":"FAILED"},{"id":"EID6ee3251c-0175-1000-20c9-c473de596e60","testStepResults":{"TestStepResult":{"id":"EID6ee3251c-0175-1000-e203-4d40874e30f4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32594-0175-1000-6ed1-a334362cbbef","parent":{"ref":"EID6ee3251c-0175-1000-e203-4d40874e30f4"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee32594-0175-1000-91e1-6616308bcb53","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee3251c-0175-1000-e203-4d40874e30f4"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:06:21Z","duration":14,"status":"FAILED"},{"id":"EID6ee325a2-0175-1000-09d2-5f31b36a3d86","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee3251c-0175-1000-e203-4d40874e30f4"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee325a2-0175-1000-c44d-033ad1b47c92","parent":{"ref":"EID6ee3251c-0175-1000-e203-4d40874e30f4"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee325a2-0175-1000-fe63-927b14e515de","parent":{"ref":"EID6ee3251c-0175-1000-e203-4d40874e30f4"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1573aa4f-cb71-41ab-8b73-c2977dca0035"},{"ref":"EIDf4aef25b-a378-44ad-9954-deab7d0be128"},{"ref":"EIDd254fb3a-dc35-4cff-bf19-f66e06c22285"}]},"parent":{"ref":"EID6ee3251c-0175-1000-20c9-c473de596e60"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:06:21Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:06:21Z","duration":135,"status":"FAILED"},{"id":"EID6ee325a3-0175-1000-b786-52461d7c4530","testStepResults":{"TestStepResult":{"id":"EID6ee325a3-0175-1000-4b29-58c25601f8f9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32602-0175-1000-f157-2c804a709939","parent":{"ref":"EID6ee325a3-0175-1000-4b29-58c25601f8f9"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee32602-0175-1000-f60c-1b8342116f7a","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee325a3-0175-1000-4b29-58c25601f8f9"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:06:21Z","duration":20,"status":"FAILED"},{"id":"EID6ee32616-0175-1000-fe6f-39a3591f45b7","parent":{"ref":"EID6ee325a3-0175-1000-4b29-58c25601f8f9"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4b390d83-9b55-4ba3-8b83-b6987c4a550f"},{"ref":"EID318b35c5-06e3-4cf3-828e-5f9bac0bcdbd"},{"ref":"EID4202c208-33b3-49ec-9ed0-d899a26c1888"}]},"parent":{"ref":"EID6ee325a3-0175-1000-b786-52461d7c4530"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:06:21Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:06:21Z","duration":115,"status":"FAILED"},{"id":"EID6ee32616-0175-1000-fbde-7c6b5aba7b30","testStepResults":{"TestStepResult":{"id":"EID6ee32620-0175-1000-6e18-fae487c1b969","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3269a-0175-1000-918d-01f5cd9270f3","parent":{"ref":"EID6ee32620-0175-1000-6e18-fae487c1b969"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee3269a-0175-1000-7906-0234bb87a4b2","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32620-0175-1000-6e18-fae487c1b969"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:06:21Z","duration":13,"status":"FAILED"},{"id":"EID6ee326a7-0175-1000-1189-6a5a19781bb3","parent":{"ref":"EID6ee32620-0175-1000-6e18-fae487c1b969"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID13c146cf-8bbe-4106-89cc-0ec9f990eef9"},{"ref":"EID9f6e1093-25e2-4937-bf82-068e3d6f8693"},{"ref":"EIDe7c19b50-53c4-4134-867f-2102e0da6f05"}]},"parent":{"ref":"EID6ee32616-0175-1000-fbde-7c6b5aba7b30"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:06:21Z","duration":37,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:06:21Z","duration":145,"status":"FAILED"},{"id":"EID6ee326a7-0175-1000-f910-d9c319d724d4","testStepResults":{"TestStepResult":{"id":"EID6ee326a7-0175-1000-cedd-c8a32f157ccd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3271f-0175-1000-f8b7-5fc59e87ee5d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee326a7-0175-1000-cedd-c8a32f157ccd"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:06:21Z","duration":17,"status":"FAILED"},{"id":"EID6ee32730-0175-1000-ef71-d01dda4cbda0","parent":{"ref":"EID6ee326a7-0175-1000-cedd-c8a32f157ccd"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee32730-0175-1000-83f8-9a7942822ae1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee326a7-0175-1000-cedd-c8a32f157ccd"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee32730-0175-1000-12ce-f1fa818a2660","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee326a7-0175-1000-cedd-c8a32f157ccd"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:06:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa78470c6-1631-4cff-8233-deb7318a131e"},{"ref":"EIDb2184452-3ff0-4330-ad44-95a6cc2d4e6f"},{"ref":"EIDe481dabd-6350-4146-8e90-8fd88ef73e2e"}]},"parent":{"ref":"EID6ee326a7-0175-1000-f910-d9c319d724d4"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:06:21Z","duration":37,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:06:21Z","duration":138,"status":"FAILED"},{"id":"EID6ee32731-0175-1000-256d-48654780fde8","testStepResults":{"TestStepResult":{"id":"EID6ee32731-0175-1000-8056-312d3d3e2e29","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee327a7-0175-1000-ba22-b0e4b543e52a","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32731-0175-1000-8056-312d3d3e2e29"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:06:21Z","duration":13,"status":"FAILED"},{"id":"EID6ee327b5-0175-1000-99a4-d094c25ff857","parent":{"ref":"EID6ee32731-0175-1000-8056-312d3d3e2e29"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee327b5-0175-1000-e933-78e6b17967f9","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee32731-0175-1000-8056-312d3d3e2e29"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"FAILED"},{"id":"EID6ee327b5-0175-1000-7a13-3f5df809d314","parent":{"ref":"EID6ee32731-0175-1000-8056-312d3d3e2e29"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaec31793-97d6-4a90-a5ef-67c58293fb86"},{"ref":"EID2f6a1e54-5af6-4b0b-a68b-f9d08c288f94"},{"ref":"EID7eb177d6-4c1a-480e-8f22-7c17c1d98692"}]},"parent":{"ref":"EID6ee32731-0175-1000-256d-48654780fde8"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:06:21Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:06:21Z","duration":132,"status":"FAILED"},{"id":"EID6ee327b5-0175-1000-7992-7fee8160c9fe","testStepResults":{"TestStepResult":[{"id":"EID6ee327b5-0175-1000-c50b-e7a987468b31","parent":{"ref":"EID6ee327b5-0175-1000-7992-7fee8160c9fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee327b5-0175-1000-2538-096109c7b527","parent":{"ref":"EID6ee327b5-0175-1000-7992-7fee8160c9fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:06:22Z","duration":142,"status":"PASSED"},{"id":"EID6ee327b5-0175-1000-50ad-c36d8e3fa93a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3286f-0175-1000-1521-b5ff12e40edf","parent":{"ref":"EID6ee327b5-0175-1000-50ad-c36d8e3fa93a"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3286f-0175-1000-6308-db997a69ebc3","parent":{"ref":"EID6ee327b5-0175-1000-50ad-c36d8e3fa93a"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3286f-0175-1000-599a-11af70d96c80","parent":{"ref":"EID6ee327b5-0175-1000-50ad-c36d8e3fa93a"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3286f-0175-1000-cc81-157b194e9308","parent":{"ref":"EID6ee327b5-0175-1000-50ad-c36d8e3fa93a"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7e25500e-050a-4fc6-a597-236ed97c2570"},{"ref":"EIDe1db4e59-11e4-4ed9-98e5-2c96af959a70"},{"ref":"EID9fa6050d-2d44-464d-b7ff-7899c0b56df1"}]},"parent":{"ref":"EID6ee327b5-0175-1000-7992-7fee8160c9fe"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:06:22Z","duration":59,"status":"PASSED"},{"id":"EID6ee3286f-0175-1000-ee44-b9822abcdb05","attachments":{"attachment":{"ref":"EID37c77ab8-1e98-4459-89b3-3f7b4d654ac0"}},"parent":{"ref":"EID6ee327b5-0175-1000-7992-7fee8160c9fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:06:22Z","duration":4,"status":"PASSED"},{"id":"EID6ee328a7-0175-1000-1bc5-f264326551b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32922-0175-1000-e5b8-5df177e0ee04","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32922-0175-1000-2d94-258b8f5bf701","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:06:22Z","duration":11,"status":"FAILED"},{"id":"EID6ee3292d-0175-1000-7540-2567c95f49da","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3292d-0175-1000-4e60-2431a8662600","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3292d-0175-1000-caf2-330863741d27","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3292d-0175-1000-4457-14063900ae39","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee3292d-0175-1000-e6e1-55a94a933d7c","parent":{"ref":"EID6ee328a7-0175-1000-1bc5-f264326551b5"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2a5e9599-3381-4ed6-af42-3b074505e7a7"},{"ref":"EID7db33714-7621-44d2-80ea-9cf74aadc795"},{"ref":"EID66e014c5-6d85-4fc0-8afe-8eb01e7e6a82"}]},"parent":{"ref":"EID6ee327b5-0175-1000-7992-7fee8160c9fe"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:06:22Z","duration":36,"status":"FAILED"}]},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:06:22Z","duration":386,"status":"FAILED"},{"id":"EID6ee32937-0175-1000-c715-bbcaa4395976","testStepResults":{"TestStepResult":[{"id":"EID6ee32937-0175-1000-680c-231d7265db53","parent":{"ref":"EID6ee32937-0175-1000-c715-bbcaa4395976"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32937-0175-1000-ee4b-5a382f4542db","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32a22-0175-1000-2f0c-03bb5c5b013f","parent":{"ref":"EID6ee32937-0175-1000-ee4b-5a382f4542db"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32a22-0175-1000-e378-871ef33d0b3a","parent":{"ref":"EID6ee32937-0175-1000-ee4b-5a382f4542db"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32a22-0175-1000-77aa-f21b47645264","parent":{"ref":"EID6ee32937-0175-1000-ee4b-5a382f4542db"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32a22-0175-1000-f358-82d0cc777ea5","parent":{"ref":"EID6ee32937-0175-1000-ee4b-5a382f4542db"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID96a9f36f-b485-47d8-8431-485f50a7567a"},{"ref":"EID7bd3d913-68b8-4907-be98-c9944efb41dc"},{"ref":"EIDdc9a784e-db2a-418d-b88c-7681e62c06aa"}]},"parent":{"ref":"EID6ee32937-0175-1000-c715-bbcaa4395976"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:06:22Z","duration":143,"status":"PASSED"},{"id":"EID6ee32a22-0175-1000-2fae-f31e0e1bbc28","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee32a31-0175-1000-b101-d4c2f4946c5a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32b2f-0175-1000-73ec-a47f77647e5e","parent":{"ref":"EID6ee32a31-0175-1000-b101-d4c2f4946c5a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32b2f-0175-1000-8ff5-ec9e7aa753b0","parent":{"ref":"EID6ee32a31-0175-1000-b101-d4c2f4946c5a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee32b2f-0175-1000-b949-082fe7ff30c8","parent":{"ref":"EID6ee32a31-0175-1000-b101-d4c2f4946c5a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd0e3ad41-ab1b-4aa6-b73c-e8f1a8050186"},{"ref":"EID6bec038a-111e-4b5c-8e0e-4c1a2e178e4d"},{"ref":"EIDab037e56-9f49-4ac1-8f63-3b177aac8c83"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:22Z","duration":150,"status":"PASSED"},{"id":"EID6ee32b31-0175-1000-9389-50b17114e1c2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32bff-0175-1000-2202-f80871ae9fb0","parent":{"ref":"EID6ee32b31-0175-1000-9389-50b17114e1c2"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:23Z","duration":1,"status":"PASSED"},{"id":"EID6ee32c00-0175-1000-d26e-ab0d2e3f98be","parent":{"ref":"EID6ee32b31-0175-1000-9389-50b17114e1c2"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32c00-0175-1000-68dc-639f808b50ca","parent":{"ref":"EID6ee32b31-0175-1000-9389-50b17114e1c2"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd3ba1845-7bcb-46d3-96fa-d3a4cca5a404"},{"ref":"EID31448fcb-a390-4f85-b7fa-d87185ad748c"},{"ref":"EID4b19e0ec-7669-4460-9e43-6b011c95c1e4"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:22Z","duration":148,"status":"PASSED"},{"id":"EID6ee32c01-0175-1000-24bd-142748a2a68f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32c5f-0175-1000-dd41-9912e3b08a6d","parent":{"ref":"EID6ee32c01-0175-1000-24bd-142748a2a68f"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32c5f-0175-1000-48ec-d4568f4629d6","parent":{"ref":"EID6ee32c01-0175-1000-24bd-142748a2a68f"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32c5f-0175-1000-620e-6290334d4ff3","parent":{"ref":"EID6ee32c01-0175-1000-24bd-142748a2a68f"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2dba7c6b-1310-4fac-8986-8d837e145a0c"},{"ref":"EID69232494-cc90-4057-83fe-4c7c9a42041a"},{"ref":"EID54ab0841-0bf0-48fc-af70-db1bdd85056f"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:23Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee32937-0175-1000-c715-bbcaa4395976"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:06:22Z","duration":574,"status":"PASSED"},{"id":"EID6ee32c60-0175-1000-eb85-97bf24707f43","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32cc0-0175-1000-b896-8a301b260f2a","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32c60-0175-1000-eb85-97bf24707f43"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:06:23Z","duration":11,"status":"FAILED"},{"id":"EID6ee32ccb-0175-1000-56cf-7263f3b34967","parent":{"ref":"EID6ee32c60-0175-1000-eb85-97bf24707f43"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32ccb-0175-1000-4bf1-adcff071b372","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee32c60-0175-1000-eb85-97bf24707f43"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"FAILED"},{"id":"EID6ee32ccb-0175-1000-a0c4-9361d11c64de","parent":{"ref":"EID6ee32c60-0175-1000-eb85-97bf24707f43"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9ca40c92-9bab-4efa-a3cc-f7160872e0a8"},{"ref":"EID8636c3be-e6a0-4e42-b3e2-af061e561ca8"},{"ref":"EID8c1e4f72-c106-415c-8928-39d48eae573a"}]},"parent":{"ref":"EID6ee32937-0175-1000-c715-bbcaa4395976"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:06:23Z","duration":37,"status":"FAILED"}]},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:06:22Z","duration":916,"status":"FAILED"},{"id":"EID6ee32ccc-0175-1000-0ab7-004f8c2febea","testStepResults":{"TestStepResult":{"id":"EID6ee32ccc-0175-1000-cd5e-3feaf438d788","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee32d32-0175-1000-7fad-50d9215a5d0d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee32ccc-0175-1000-cd5e-3feaf438d788"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:06:23Z","duration":12,"status":"FAILED"},{"id":"EID6ee32d3e-0175-1000-46d0-94622ecd6d29","parent":{"ref":"EID6ee32ccc-0175-1000-cd5e-3feaf438d788"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee32d3e-0175-1000-77fd-a8b1b87dcade","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee32ccc-0175-1000-cd5e-3feaf438d788"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"FAILED"},{"id":"EID6ee32d3e-0175-1000-2f76-9d4096ea2881","parent":{"ref":"EID6ee32ccc-0175-1000-cd5e-3feaf438d788"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1e008288-2d5b-4800-8a49-21c8673088f4"},{"ref":"EIDbb99e339-8e63-422f-9c2c-73b6a00a6998"},{"ref":"EID05359a2b-a2a0-409a-ada2-9b0b9a7c5e72"}]},"parent":{"ref":"EID6ee32ccc-0175-1000-0ab7-004f8c2febea"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:06:23Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee321ea-0175-1000-7e23-962bf7021c56"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:06:23Z","duration":114,"status":"FAILED"}]},"parent":{"ref":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:06:20Z","duration":2900,"status":"FAILED"},{"id":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee32d3e-0175-1000-b2ec-9a3bc49b3199","testStepResults":{"TestStepResult":{"id":"EID6ee32d3e-0175-1000-94ac-3b50cc9820b0","parent":{"ref":"EID6ee32d3e-0175-1000-b2ec-9a3bc49b3199"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:06:23Z","duration":1,"status":"SKIPPED"},{"id":"EID6ee32d3f-0175-1000-6de8-cfa69589d55f","testStepResults":{"TestStepResult":{"id":"EID6ee32d3f-0175-1000-361d-de14d3a4b170","parent":{"ref":"EID6ee32d3f-0175-1000-6de8-cfa69589d55f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee32d3f-0175-1000-4285-8a13a2f56a75","testStepResults":{"TestStepResult":{"id":"EID6ee32d3f-0175-1000-deac-086c5ae04f03","parent":{"ref":"EID6ee32d3f-0175-1000-4285-8a13a2f56a75"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee32d3f-0175-1000-c4b5-384054952f45","testStepResults":{"TestStepResult":{"id":"EID6ee32d3f-0175-1000-237e-f1e6471b421b","parent":{"ref":"EID6ee32d3f-0175-1000-c4b5-384054952f45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee32d3f-0175-1000-f2c3-bf2f6a717558","testStepResults":{"TestStepResult":{"id":"EID6ee32d3f-0175-1000-47e7-3d059d1dceea","parent":{"ref":"EID6ee32d3f-0175-1000-f2c3-bf2f6a717558"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":504,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:06:23Z","duration":7,"status":"SKIPPED"},{"id":"EID6ee32d46-0175-1000-a656-6c9439d3ade8","testStepResults":{"TestStepResult":{"id":"EID6ee32d46-0175-1000-cb50-4a48a81b25d7","parent":{"ref":"EID6ee32d46-0175-1000-a656-6c9439d3ade8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee32d47-0175-1000-358e-2b75c3522bb3","testStepResults":{"TestStepResult":{"id":"EID6ee32d47-0175-1000-e3d6-376739962b6f","parent":{"ref":"EID6ee32d47-0175-1000-358e-2b75c3522bb3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:06:23Z","duration":497,"status":"SKIPPED"}},"parent":{"ref":"EID6ee32d3e-0175-1000-7b82-68c12b9e421a"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:06:23Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID6812d803-7ce2-4b31-a2c3-0540b14d9e39"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:06:23Z","duration":9,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EIDbf0aa9fa-c67f-4584-8401-b305788d0480","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd5ab164f-9364-413f-9b10-cd9ac9b3fe3c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd5ab164f-9364-413f-9b10-cd9ac9b3fe3c"}},{"type":"Message","id":"EID708ad491-499b-444f-9c22-9eaae4d9047d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID708ad491-499b-444f-9c22-9eaae4d9047d"}},{"type":"Error","id":"EIDa2b4e737-b7dd-475b-8f87-f330304ed19f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDa2b4e737-b7dd-475b-8f87-f330304ed19f"}},{"type":"ServiceResponse","id":"EID69232494-cc90-4057-83fe-4c7c9a42041a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID69232494-cc90-4057-83fe-4c7c9a42041a"}},{"type":"ServiceResponse","id":"EID7bd3d913-68b8-4907-be98-c9944efb41dc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID7bd3d913-68b8-4907-be98-c9944efb41dc"}},{"type":"Message","id":"EID5db55e68-17f6-46e2-bc8b-41ffad728190","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID5db55e68-17f6-46e2-bc8b-41ffad728190"}},{"type":"ServiceResponse","id":"EIDb4ca7463-ccf7-4a77-9dc7-0223093491cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDb4ca7463-ccf7-4a77-9dc7-0223093491cf"}},{"type":"ServiceEndpoint","id":"EIDf9407ac5-ed71-422b-bcc7-ac6a5f66e782","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID7db33714-7621-44d2-80ea-9cf74aadc795","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID7db33714-7621-44d2-80ea-9cf74aadc795"}},{"type":"GetParameter","id":"EIDa759897f-6fa9-40bb-bfc8-d345c0f02ba7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID31448fcb-a390-4f85-b7fa-d87185ad748c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID31448fcb-a390-4f85-b7fa-d87185ad748c"}},{"type":"ServiceEndpoint","id":"EID4ab2b5a2-eff0-4918-9924-98187bce3e66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDb5f5ae6a-e88a-4bab-9317-6171fa451f82","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDb5f5ae6a-e88a-4bab-9317-6171fa451f82"}},{"type":"Message","id":"EID9a862a9b-32ff-449f-8b9c-c1a05a7911aa","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID9a862a9b-32ff-449f-8b9c-c1a05a7911aa"}},{"type":"ServiceEndpoint","id":"EID7e25500e-050a-4fc6-a597-236ed97c2570","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID14c819c9-d51a-4380-a2fb-edf4c106e984","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID8fad5e8e-2024-4b72-88c0-e93ce5291f7d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID25618100-ec94-437a-8500-a41b71c43dd0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0a487310-f46e-4b05-a683-03e9e0435b9c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID95be255c-44fa-4c79-a496-bab412bee2d4","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID95be255c-44fa-4c79-a496-bab412bee2d4"}},{"type":"ServiceEndpoint","id":"EIDc92d138f-6b14-448f-bec1-e30ba4832714","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd254fb3a-dc35-4cff-bf19-f66e06c22285","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDd0f39fdc-2829-435f-9e83-80c2b8f64843","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd0f39fdc-2829-435f-9e83-80c2b8f64843"}},{"type":"GetParameter","id":"EID4fd14429-e02e-40d4-80bc-8e16501ce11b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb2dd2c43-3fc0-4548-9d52-265649be0cf4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDd3ba1845-7bcb-46d3-96fa-d3a4cca5a404","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID66225936-21be-479f-b1a3-2f92d2b2b299","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID4881d89d-19c7-4ea3-aadd-c0a1da9db152","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID30196305-293b-44a4-938b-1b4e520b4765","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID7eb177d6-4c1a-480e-8f22-7c17c1d98692","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDd8163b56-4dfb-447c-a221-47c07164b1b9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd8163b56-4dfb-447c-a221-47c07164b1b9"}},{"type":"ServiceEndpoint","id":"EID813773cb-ef27-4c06-9680-eceead08a5c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDf4aef25b-a378-44ad-9954-deab7d0be128","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDf4aef25b-a378-44ad-9954-deab7d0be128"}},{"type":"Message","id":"EID9844067c-6abe-48b6-883c-f3585ae22f30","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID9844067c-6abe-48b6-883c-f3585ae22f30"}},{"type":"ServiceEndpoint","id":"EID94af022b-26e3-4099-b993-bc805b304442","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa626773b-6ac4-4a7f-8259-958291ed7596","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID38a84270-5b62-4fe1-a1f3-b614e6948f01","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID38a84270-5b62-4fe1-a1f3-b614e6948f01"}},{"type":"Error","id":"EID29355450-bb78-4261-bdae-668e50aa13ad","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID29355450-bb78-4261-bdae-668e50aa13ad"}},{"type":"GetParameter","id":"EID8f45e24f-b7c1-4757-9372-4202f6c24501","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDdfc924ff-54a2-41de-81f7-a58e52be3de0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe1db4e59-11e4-4ed9-98e5-2c96af959a70","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDe1db4e59-11e4-4ed9-98e5-2c96af959a70"}},{"type":"ServiceEndpoint","id":"EID4b390d83-9b55-4ba3-8b83-b6987c4a550f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID83fb0b16-9de3-40b9-bb35-7058b3b8571c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2f6a1e54-5af6-4b0b-a68b-f9d08c288f94","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID2f6a1e54-5af6-4b0b-a68b-f9d08c288f94"}},{"type":"ServiceResponse","id":"EIDfd84594b-c0a0-414d-8084-8e9b701675e9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDfd84594b-c0a0-414d-8084-8e9b701675e9"}},{"type":"ServiceEndpoint","id":"EIDb56dac84-d315-4706-af04-0161459f3115","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EIDe41c80c9-46cc-4738-9b60-9178e4401a34","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDe41c80c9-46cc-4738-9b60-9178e4401a34"}},{"type":"Message","id":"EID96dee8b5-c8ea-4fd4-af38-4af72ebf1dc7","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID96dee8b5-c8ea-4fd4-af38-4af72ebf1dc7"}},{"type":"ServiceEndpoint","id":"EIDe2156344-9969-488f-b687-dd037db376e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDab037e56-9f49-4ac1-8f63-3b177aac8c83","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDb27f1e6c-6f13-4b11-bcbb-58094026a474","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID318b35c5-06e3-4cf3-828e-5f9bac0bcdbd","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID318b35c5-06e3-4cf3-828e-5f9bac0bcdbd"}},{"type":"GetParameter","id":"EID05359a2b-a2a0-409a-ada2-9b0b9a7c5e72","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9d6b5b24-8ded-4501-a66d-e5a169540335","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1da67f53-8df6-4a52-8b78-2c38bd0a70a2","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID1da67f53-8df6-4a52-8b78-2c38bd0a70a2"}},{"type":"GetParameter","id":"EID4b19e0ec-7669-4460-9e43-6b011c95c1e4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EIDdb2511e1-f30e-406e-97e6-9ed2440d6126","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID612f5e8a-7ae2-4f43-8de4-871246ac814d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID8e9bb5b4-1616-40af-90e3-10d67b5ddfc0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID8e9bb5b4-1616-40af-90e3-10d67b5ddfc0"}},{"type":"GetParameter","id":"EID2505c271-5ea8-42fa-8333-7b01aec6254c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe7c19b50-53c4-4134-867f-2102e0da6f05","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID3483cdfa-7f56-428d-aeb0-a2f11d5b0dbe","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID3483cdfa-7f56-428d-aeb0-a2f11d5b0dbe"}},{"type":"ServiceResponse","id":"EIDbb99e339-8e63-422f-9c2c-73b6a00a6998","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDbb99e339-8e63-422f-9c2c-73b6a00a6998"}},{"type":"ServiceEndpoint","id":"EID382e45d2-87fd-4a39-9692-b8e416334106","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID48b3aa8e-7c4e-4076-b239-cbda274490f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDfabc9eb0-b7f1-42e7-ac1b-5d330fdf7338","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDfabc9eb0-b7f1-42e7-ac1b-5d330fdf7338"}},{"type":"GetParameter","id":"EID602a212a-ff1c-4acf-9da9-f64d7315c144","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID66e014c5-6d85-4fc0-8afe-8eb01e7e6a82","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID54ab0841-0bf0-48fc-af70-db1bdd85056f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID13c146cf-8bbe-4106-89cc-0ec9f990eef9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID39ff539f-cc61-467a-9983-81cd9559e492","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID39ff539f-cc61-467a-9983-81cd9559e492"}},{"type":"Error","id":"EID8a426328-3513-493f-8e8a-cf01ae7b6172","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID8a426328-3513-493f-8e8a-cf01ae7b6172"}},{"type":"Message","id":"EID55f4a93e-6954-40f7-9a55-d4c8cdf68f82","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID55f4a93e-6954-40f7-9a55-d4c8cdf68f82"}},{"type":"ServiceEndpoint","id":"EID927d8932-708e-41ec-a8c9-fe524f6ebec1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID68734ec8-bdfe-48cd-b098-9c4f7aad568c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID68734ec8-bdfe-48cd-b098-9c4f7aad568c"}},{"type":"Message","id":"EID38beec96-b03c-4adf-92cb-b9fbaf2a9ab1","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID38beec96-b03c-4adf-92cb-b9fbaf2a9ab1"}},{"type":"Message","id":"EID6d4b06c9-c6da-4ec1-86c3-305c80a0d193","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID6d4b06c9-c6da-4ec1-86c3-305c80a0d193"}},{"type":"ServiceResponse","id":"EID8636c3be-e6a0-4e42-b3e2-af061e561ca8","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID8636c3be-e6a0-4e42-b3e2-af061e561ca8"}},{"type":"ServiceResponse","id":"EID01a1e39d-4a10-4d69-8f00-df1c5ef0103a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID01a1e39d-4a10-4d69-8f00-df1c5ef0103a"}},{"type":"Message","id":"EID775f1ead-4a04-4eca-b948-890c52fcaa13","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID775f1ead-4a04-4eca-b948-890c52fcaa13"}},{"type":"LogFile","id":"EID1d6d301d-9f13-4c24-94d7-e4d95ae25bf3","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID1d6d301d-9f13-4c24-94d7-e4d95ae25bf3"}},{"type":"Message","id":"EIDc153008c-92f5-43db-878c-ccf8b02f726f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDc153008c-92f5-43db-878c-ccf8b02f726f"}},{"type":"GetParameter","id":"EID6870c3e8-3a8a-4e30-8d06-722931264e68","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID45da2e2c-50c7-44f3-986e-2f65c28ae7f3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDea71f716-768f-4476-b694-d920775281f5","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDea71f716-768f-4476-b694-d920775281f5"}},{"type":"Error","id":"EIDa2c9b57a-b9b0-4163-a712-514308824381","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDa2c9b57a-b9b0-4163-a712-514308824381"}},{"type":"ServiceResponse","id":"EIDff5687e6-b855-4dcc-9843-d181537864d7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDff5687e6-b855-4dcc-9843-d181537864d7"}},{"type":"Error","id":"EID5f10a44b-6557-4c64-95b8-01d756a22c9e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID5f10a44b-6557-4c64-95b8-01d756a22c9e"}},{"type":"Message","id":"EID07ddf41d-5262-416d-bad1-3c690abf4f66","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID07ddf41d-5262-416d-bad1-3c690abf4f66"}},{"type":"GetParameter","id":"EIDe6560840-cc88-483b-8680-84c537cd9d9d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID7918d2b8-8082-40c5-9be9-245aa3a85a71","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID5e198dc0-bcb1-4774-a0a5-6885ec53ec25","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID5e198dc0-bcb1-4774-a0a5-6885ec53ec25"}},{"type":"GetParameter","id":"EID4202c208-33b3-49ec-9ed0-d899a26c1888","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9fa6050d-2d44-464d-b7ff-7899c0b56df1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa1656a08-17df-4dd5-ad7a-757836369b5b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDa1656a08-17df-4dd5-ad7a-757836369b5b"}},{"type":"ServiceResponse","id":"EIDd45b185f-4281-4d78-98ce-f960626a1521","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd45b185f-4281-4d78-98ce-f960626a1521"}},{"type":"Message","id":"EID37c77ab8-1e98-4459-89b3-3f7b4d654ac0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID37c77ab8-1e98-4459-89b3-3f7b4d654ac0"}},{"type":"GetParameter","id":"EID9cb9b723-769e-48d7-bfdb-45a81fc39951","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID9f6e1093-25e2-4937-bf82-068e3d6f8693","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID9f6e1093-25e2-4937-bf82-068e3d6f8693"}},{"type":"ServiceEndpoint","id":"EID2a5e9599-3381-4ed6-af42-3b074505e7a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDd0e3ad41-ab1b-4aa6-b73c-e8f1a8050186","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDd5e8db0b-2533-43cc-aa6c-0ef6b91e8680","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd726735d-e349-40d8-9dd6-d6e6e52f4cbd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd726735d-e349-40d8-9dd6-d6e6e52f4cbd"}},{"type":"Message","id":"EIDe6c7ea2f-1f57-4863-8983-c971e6c08cc3","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDe6c7ea2f-1f57-4863-8983-c971e6c08cc3"}},{"type":"ServiceEndpoint","id":"EID1da857ae-9252-49ad-a9b8-223fa0387a83","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID07f11f46-5112-4bde-9148-3564da8126a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID07f11f46-5112-4bde-9148-3564da8126a2"}},{"type":"GetParameter","id":"EIDef9caf72-a064-4e58-9be2-27064ca08621","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd3c82d6d-5ec0-471a-bf8f-08d44f9ade94","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDd3c82d6d-5ec0-471a-bf8f-08d44f9ade94"}},{"type":"ServiceResponse","id":"EID5ee21fcd-3ff2-48a9-aaa4-30672fa4b556","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID5ee21fcd-3ff2-48a9-aaa4-30672fa4b556"}},{"type":"ServiceEndpoint","id":"EIDfd39d4a8-c550-4a22-98a7-ef27f8086038","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID935e02ba-f0f5-436d-925c-a6b271f4d9c8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID935e02ba-f0f5-436d-925c-a6b271f4d9c8"}},{"type":"ServiceResponse","id":"EIDc61f6080-cec0-41db-853e-18bb4485014b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDc61f6080-cec0-41db-853e-18bb4485014b"}},{"type":"ServiceEndpoint","id":"EID9ca40c92-9bab-4efa-a3cc-f7160872e0a8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID0fd53386-4c18-4d0a-91ac-25f1545bc20c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID0fd53386-4c18-4d0a-91ac-25f1545bc20c"}},{"type":"ServiceEndpoint","id":"EIDd1b7ea28-a863-4f51-b652-f0f000e78a79","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID48e321bc-c3bc-4c01-a886-f2fb95fda702","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID5917af01-cefd-4cb0-886a-a29cf84b3650","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID5917af01-cefd-4cb0-886a-a29cf84b3650"}},{"type":"ServiceResponse","id":"EID45caac5c-81d7-4651-8bc2-8117b3f79346","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID45caac5c-81d7-4651-8bc2-8117b3f79346"}},{"type":"Error","id":"EID91da485d-e2eb-477e-9702-0ed0c2b64fb8","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID91da485d-e2eb-477e-9702-0ed0c2b64fb8"}},{"type":"ServiceResponse","id":"EID56195e77-44a7-4816-875b-6a46af02d8b6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID56195e77-44a7-4816-875b-6a46af02d8b6"}},{"type":"ServiceResponse","id":"EID65c49752-1abf-4ea1-8bca-59e2bbb7e49f","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID65c49752-1abf-4ea1-8bca-59e2bbb7e49f"}},{"type":"Message","id":"EID1b75bc01-3b2c-48ef-a419-d1bf03b2596b","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID1b75bc01-3b2c-48ef-a419-d1bf03b2596b"}},{"type":"ServiceEndpoint","id":"EID1573aa4f-cb71-41ab-8b73-c2977dca0035","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID8b40df60-97ce-499b-a599-e6af6b5bfb7c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID8b40df60-97ce-499b-a599-e6af6b5bfb7c"}},{"type":"GetParameter","id":"EID9e7e9f98-5bba-4725-bb33-39da078dc7da","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb2184452-3ff0-4330-ad44-95a6cc2d4e6f","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDb2184452-3ff0-4330-ad44-95a6cc2d4e6f"}},{"type":"ServiceResponse","id":"EIDa941c3c2-5e92-4b2b-b6e7-73f0eab02853","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDa941c3c2-5e92-4b2b-b6e7-73f0eab02853"}},{"type":"ServiceEndpoint","id":"EIDaec31793-97d6-4a90-a5ef-67c58293fb86","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID3a772445-bd91-4caf-9a91-25e5f70530ce","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID3a772445-bd91-4caf-9a91-25e5f70530ce"}},{"type":"ServiceEndpoint","id":"EID96a9f36f-b485-47d8-8431-485f50a7567a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID1dcc2f22-7ef0-4627-bb02-416875357d7b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0996f64b-31f6-4ec5-8621-d49fd15ef88f","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID0996f64b-31f6-4ec5-8621-d49fd15ef88f"}},{"type":"Error","id":"EID1488e5bc-2466-4cc2-bbd7-928e132fa0a1","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID1488e5bc-2466-4cc2-bbd7-928e132fa0a1"}},{"type":"ServiceEndpoint","id":"EIDe6a6a5a3-46b4-46ef-aafe-f732f6c682cd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDdc9a784e-db2a-418d-b88c-7681e62c06aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID784af662-fcb7-4e1e-82a8-c0c765cc48f6","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID784af662-fcb7-4e1e-82a8-c0c765cc48f6"}},{"type":"GetParameter","id":"EID21a91b8f-2cf6-4d09-a004-d28dee7978a4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb8c4a454-a612-4323-84cb-8de65e30de2c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6c298dc5-24f6-4cb1-9f72-981c6618336e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID6c298dc5-24f6-4cb1-9f72-981c6618336e"}},{"type":"ServiceEndpoint","id":"EID2dba7c6b-1310-4fac-8986-8d837e145a0c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID817d1d53-c689-49fa-ba07-9f7a3372030d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf3935679-6c51-41dc-806d-f78bc86ae7a6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDf3935679-6c51-41dc-806d-f78bc86ae7a6"}},{"type":"GetParameter","id":"EID8c1e4f72-c106-415c-8928-39d48eae573a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDaee92ca1-51bd-40d1-9c9f-4720cc26224a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDaee92ca1-51bd-40d1-9c9f-4720cc26224a"}},{"type":"GetParameter","id":"EID9f0e2e11-ad0d-4005-a8b0-17d4421826f1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID4f3a460c-9c8a-4863-93f2-3b1286764ae6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDa78470c6-1631-4cff-8233-deb7318a131e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDaf41bf32-3546-4e8d-a2ab-a459aa9d5aad","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDaf41bf32-3546-4e8d-a2ab-a459aa9d5aad"}},{"type":"ServiceResponse","id":"EIDf2909364-765b-4b80-8c4c-f70e818d8294","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EIDf2909364-765b-4b80-8c4c-f70e818d8294"}},{"type":"Message","id":"EID973c9af3-a56b-47f7-89e0-e05d8564ed3f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID973c9af3-a56b-47f7-89e0-e05d8564ed3f"}},{"type":"ServiceResponse","id":"EID6bec038a-111e-4b5c-8e0e-4c1a2e178e4d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID6bec038a-111e-4b5c-8e0e-4c1a2e178e4d"}},{"type":"ServiceEndpoint","id":"EID91656ed6-0443-440b-941c-be3d8d446193","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID63c5e522-f415-4a17-b612-097ec88c9385","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID63c5e522-f415-4a17-b612-097ec88c9385"}},{"type":"Message","id":"EID6e0c9625-0a4d-4906-88a9-02864060ca6a","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID6e0c9625-0a4d-4906-88a9-02864060ca6a"}},{"type":"ServiceResponse","id":"EID876ef7c0-c48e-4f54-a113-56f0959a3839","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID876ef7c0-c48e-4f54-a113-56f0959a3839"}},{"type":"GetParameter","id":"EIDe481dabd-6350-4146-8e90-8fd88ef73e2e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID1e008288-2d5b-4800-8a49-21c8673088f4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID675dc6dd-c6a3-4722-a7b6-3fa1b5329968","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID675dc6dd-c6a3-4722-a7b6-3fa1b5329968"}},{"type":"GetParameter","id":"EID8f6a0139-dcc5-458d-9300-eae62a56fddc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID451a5efc-38fa-4ac4-bbc9-884091ac8591","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID6812d803-7ce2-4b31-a2c3-0540b14d9e39/Attachments/EID451a5efc-38fa-4ac4-bbc9-884091ac8591"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:06:13Z","duration":9890,"status":"FAILED"}}}}}
11:06:35.071 [print] EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea
11:06:35.071 [print] FAILED
11:06:35.072 [print] FAILED
11:06:35.072 [print] Conformance Class Download Service - Pre-defined Atom
11:06:35.072 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a581ace8-1be9-4ab0-9997-d33ae7c378ea.json
11:06:35.072 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a581ace8-1be9-4ab0-9997-d33ae7c378ea.json
11:06:35.072 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa581ace8-1be9-4ab0-9997-d33ae7c378ea/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:06:35.095 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:06:35.095 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:08.029 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml"}}}
11:14:08.029 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 249
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml"}}}
11:14:15.225 response time in milliseconds: 6531.99
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:14 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:11 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/80987e45-91b1-4a1e-ae6a-f743ba213f39.json","testRuns":{"TestRun":{"id":"EID80987e45-91b1-4a1e-ae6a-f743ba213f39","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:09.366Z","testTasks":{"TestTask":{"id":"EID52d5a1f2-5888-446f-b1f9-f2de97e61d30","parent":{"ref":"EID80987e45-91b1-4a1e-ae6a-f743ba213f39"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDa3f6a611-6c75-4068-9908-a3acc6e5e932"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDa3f6a611-6c75-4068-9908-a3acc6e5e932","remoteResource":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:08.475Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:08.86Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:15.228 [print] EID80987e45-91b1-4a1e-ae6a-f743ba213f39
11:14:15.228 [print] UNDEFINED
11:14:15.228 [print] Conformance Class Download Service - Pre-defined Atom
11:14:15.228 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/80987e45-91b1-4a1e-ae6a-f743ba213f39.json
11:14:15.228 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/log
11:14:15.229 [print] statuspath TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39
11:14:15.229 [print] progresspath TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/progress
11:14:15.229 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:15.768 response time in milliseconds: 538.19
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:15 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:14:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:09 UTC 2020)","28.10.2020 11:14:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:09 - Preparing 1 Test Task:","28.10.2020 11:14:09 - TestTask 1 (52d5a1f2-5888-446f-b1f9-f2de97e61d30)","28.10.2020 11:14:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:09 - with parameters: ","28.10.2020 11:14:09 - etf.testcases = *","28.10.2020 11:14:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:09 - Setting state to CREATED","28.10.2020 11:14:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:11 - Starting TestRun.80987e45-91b1-4a1e-ae6a-f743ba213f39 at 2020-10-28T11:14:12Z","28.10.2020 11:14:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:13 - Project Properties: ","28.10.2020 11:14:13 - etf.testcases - * ","28.10.2020 11:14:13 - serviceEndpoint - https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml ","28.10.2020 11:14:13 - username - ","28.10.2020 11:14:13 - authUser - ","28.10.2020 11:14:13 - authMethod - basic ","28.10.2020 11:14:13 - TestRunTask initialized"]}
11:14:15.768 [print] {
"val": "45",
"max": "46",
"log": [
"28.10.2020 11:14:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:09 UTC 2020)",
"28.10.2020 11:14:09 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:09 - Preparing 1 Test Task:",
"28.10.2020 11:14:09 - TestTask 1 (52d5a1f2-5888-446f-b1f9-f2de97e61d30)",
"28.10.2020 11:14:09 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:09 - with parameters: ",
"28.10.2020 11:14:09 - etf.testcases = *",
"28.10.2020 11:14:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:09 - Setting state to CREATED",
"28.10.2020 11:14:09 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:11 - Starting TestRun.80987e45-91b1-4a1e-ae6a-f743ba213f39 at 2020-10-28T11:14:12Z",
"28.10.2020 11:14:12 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:13 - Project Properties: ",
"28.10.2020 11:14:13 - etf.testcases - * ",
"28.10.2020 11:14:13 - serviceEndpoint - https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml ",
"28.10.2020 11:14:13 - username - ",
"28.10.2020 11:14:13 - authUser - ",
"28.10.2020 11:14:13 - authMethod - basic ",
"28.10.2020 11:14:13 - TestRunTask initialized"
]
}
11:14:15.768 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:16.285 response time in milliseconds: 515.86
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:16 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"53","max":"54","log":["28.10.2020 11:14:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:09 UTC 2020)","28.10.2020 11:14:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:09 - Preparing 1 Test Task:","28.10.2020 11:14:09 - TestTask 1 (52d5a1f2-5888-446f-b1f9-f2de97e61d30)","28.10.2020 11:14:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:09 - with parameters: ","28.10.2020 11:14:09 - etf.testcases = *","28.10.2020 11:14:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:09 - Setting state to CREATED","28.10.2020 11:14:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:11 - Starting TestRun.80987e45-91b1-4a1e-ae6a-f743ba213f39 at 2020-10-28T11:14:12Z","28.10.2020 11:14:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:13 - Project Properties: ","28.10.2020 11:14:13 - etf.testcases - * ","28.10.2020 11:14:13 - serviceEndpoint - https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml ","28.10.2020 11:14:13 - username - ","28.10.2020 11:14:13 - authUser - ","28.10.2020 11:14:13 - authMethod - basic ","28.10.2020 11:14:13 - TestRunTask initialized"]}
11:14:16.290 retry condition not satisfied: response.val == response.max
11:14:16.290 sleeping before retry #1
11:14:21.291 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:21.866 response time in milliseconds: 574.79
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:21 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"192","max":"193","log":["28.10.2020 11:14:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:09 UTC 2020)","28.10.2020 11:14:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:09 - Preparing 1 Test Task:","28.10.2020 11:14:09 - TestTask 1 (52d5a1f2-5888-446f-b1f9-f2de97e61d30)","28.10.2020 11:14:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:09 - with parameters: ","28.10.2020 11:14:09 - etf.testcases = *","28.10.2020 11:14:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:09 - Setting state to CREATED","28.10.2020 11:14:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:11 - Starting TestRun.80987e45-91b1-4a1e-ae6a-f743ba213f39 at 2020-10-28T11:14:12Z","28.10.2020 11:14:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:13 - Project Properties: ","28.10.2020 11:14:13 - etf.testcases - * ","28.10.2020 11:14:13 - serviceEndpoint - https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml ","28.10.2020 11:14:13 - username - ","28.10.2020 11:14:13 - authUser - ","28.10.2020 11:14:13 - authMethod - basic ","28.10.2020 11:14:13 - TestRunTask initialized","28.10.2020 11:14:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:14:21.866 retry condition not satisfied: response.val == response.max
11:14:21.866 sleeping before retry #2
11:14:26.868 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:28.874 response time in milliseconds: 2005.50
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:14:28 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:14:28.874 retry condition satisfied
11:14:28.874 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:14:28.875 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:32.738 response time in milliseconds: 2908.32
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:14:31 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:14:26 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/80987e45-91b1-4a1e-ae6a-f743ba213f39.json","testRuns":{"TestRun":{"id":"EID80987e45-91b1-4a1e-ae6a-f743ba213f39","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:09.366Z","testTasks":{"TestTask":{"id":"EID52d5a1f2-5888-446f-b1f9-f2de97e61d30","parent":{"ref":"EID80987e45-91b1-4a1e-ae6a-f743ba213f39"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDa3f6a611-6c75-4068-9908-a3acc6e5e932"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDa3f6a611-6c75-4068-9908-a3acc6e5e932","remoteResource":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:08.475Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:08.86Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a","testObject":{"ref":"EIDa3f6a611-6c75-4068-9908-a3acc6e5e932"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eea57de-0175-1000-ec18-d01d7855251a","testCaseResults":{"TestCaseResult":[{"id":"EID6eea57df-0175-1000-2d7d-0298d5e6c265","testStepResults":{"TestStepResult":[{"id":"EID6eea57e4-0175-1000-9642-debdad7e5dd4","parent":{"ref":"EID6eea57df-0175-1000-2d7d-0298d5e6c265"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:14:13Z","duration":25,"status":"PASSED"},{"id":"EID6eea57fd-0175-1000-f2f6-9afcec7cb98a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea58bd-0175-1000-cf7d-9a78b9abc0bc","parent":{"ref":"EID6eea57fd-0175-1000-f2f6-9afcec7cb98a"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea58bd-0175-1000-4507-29661af365f5","parent":{"ref":"EID6eea57fd-0175-1000-f2f6-9afcec7cb98a"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea58bd-0175-1000-70b1-2e684bd385e5","parent":{"ref":"EID6eea57fd-0175-1000-f2f6-9afcec7cb98a"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea58bd-0175-1000-2c6e-e0504e3a0064","parent":{"ref":"EID6eea57fd-0175-1000-f2f6-9afcec7cb98a"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8d01062f-b08c-4763-8e44-33d57d975df3"},{"ref":"EID38ddde6e-7888-4b0b-9f47-183c510ec3ee"},{"ref":"EIDea668053-41a4-4e39-a78e-4ea653f39373"}]},"parent":{"ref":"EID6eea57df-0175-1000-2d7d-0298d5e6c265"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:14:13Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea57de-0175-1000-ec18-d01d7855251a"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:14:13Z","duration":228,"status":"PASSED"},{"id":"EID6eea58c4-0175-1000-ed0e-94b1cba8f586","testStepResults":{"TestStepResult":{"id":"EID6eea58c4-0175-1000-c7d9-63222604caf7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5914-0175-1000-7a79-721f6e65ddfd","parent":{"ref":"EID6eea58c4-0175-1000-c7d9-63222604caf7"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea5914-0175-1000-695c-9deb6b8aa0ce","parent":{"ref":"EID6eea58c4-0175-1000-c7d9-63222604caf7"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea5914-0175-1000-927b-96ed7fa6e617","parent":{"ref":"EID6eea58c4-0175-1000-c7d9-63222604caf7"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc3502f8c-c1e9-40b6-8493-b536ea59b2b8"},{"ref":"EIDaca482d5-b4aa-489b-8630-b2d351b1ffd6"},{"ref":"EID45df123f-67ed-4815-a2bd-46f5fbabb044"}]},"parent":{"ref":"EID6eea58c4-0175-1000-ed0e-94b1cba8f586"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:14:13Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea57de-0175-1000-ec18-d01d7855251a"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:14:13Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:14:13Z","duration":310,"status":"PASSED"},{"id":"EID6eea5914-0175-1000-5ce0-e44d38995bf0","testCaseResults":{"TestCaseResult":[{"id":"EID6eea5914-0175-1000-8faf-38e2ba443f8e","testStepResults":{"TestStepResult":[{"id":"EID6eea5914-0175-1000-7677-8bb8a0f0356e","parent":{"ref":"EID6eea5914-0175-1000-8faf-38e2ba443f8e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:14:13Z","duration":20,"status":"PASSED"},{"id":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea59f3-0175-1000-5644-74dbbd1d83c7","parent":{"ref":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea59f3-0175-1000-e246-144c5f9f950c","parent":{"ref":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea59f3-0175-1000-20f2-3857e20f7b8e","parent":{"ref":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea59f3-0175-1000-db45-312eafe4455f","parent":{"ref":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea59f3-0175-1000-36ef-eab7615dd64a","parent":{"ref":"EID6eea5914-0175-1000-d4ca-3aa6a3a47dd2"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbd7ce5cf-16cb-414a-b2fb-f6b30d769843"},{"ref":"EID42eb0575-d217-46e9-902f-0dba8f97a83d"},{"ref":"EID7864087b-ce0a-4eff-902a-ba2945a02eb6"}]},"parent":{"ref":"EID6eea5914-0175-1000-8faf-38e2ba443f8e"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:14:13Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:14:13Z","duration":224,"status":"PASSED"},{"id":"EID6eea59f4-0175-1000-230f-d70198327670","testStepResults":{"TestStepResult":[{"id":"EID6eea59f4-0175-1000-6532-ab9c4e4c839c","attachments":{"attachment":[{"ref":"EIDb81cddf8-3daa-4725-9f1c-8513396f4d7a"},{"ref":"EIDbc8d0275-93ab-4417-9799-b5bc7c9356f6"}]},"parent":{"ref":"EID6eea59f4-0175-1000-230f-d70198327670"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:14:13Z","duration":53,"status":"PASSED"},{"id":"EID6eea5a56-0175-1000-2f8f-ea2904e14728","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5b0b-0175-1000-bf24-7439c0e5c8a7","parent":{"ref":"EID6eea5a56-0175-1000-2f8f-ea2904e14728"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea5b0b-0175-1000-3bd4-23446b4fd5b8","parent":{"ref":"EID6eea5a56-0175-1000-2f8f-ea2904e14728"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea5b0b-0175-1000-1e0c-d909dd8c71ab","parent":{"ref":"EID6eea5a56-0175-1000-2f8f-ea2904e14728"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"},{"id":"EID6eea5b0b-0175-1000-d518-8a0b884c03dd","parent":{"ref":"EID6eea5a56-0175-1000-2f8f-ea2904e14728"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:14:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDffb9c62c-8132-4b13-994b-fb8193e9aee0"},{"ref":"EIDed6ce70c-93a1-41b5-b9d6-42dd88876794"},{"ref":"EID9a1f098f-93a2-4d20-be4f-233c08e6680d"}]},"parent":{"ref":"EID6eea59f4-0175-1000-230f-d70198327670"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:14:13Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:14:13Z","duration":279,"status":"PASSED"},{"id":"EID6eea5b0b-0175-1000-6dd7-b2b85a4cf9f3","testStepResults":{"TestStepResult":[{"id":"EID6eea5b13-0175-1000-065b-49627f6abb65","attachments":{"attachment":[{"ref":"EIDb08c5bf5-12c8-4f85-8544-468313b090b2"},{"ref":"EID9841bfee-b4f1-4b3e-b39b-1535883be034"}]},"parent":{"ref":"EID6eea5b0b-0175-1000-6dd7-b2b85a4cf9f3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:14:13Z","duration":61,"status":"PASSED"},{"id":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5bd4-0175-1000-3762-30a4d40176f1","parent":{"ref":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5bd4-0175-1000-93eb-a4f328b50ba6","parent":{"ref":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5bd5-0175-1000-4d86-7643292912fb","parent":{"ref":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5bd5-0175-1000-367f-2a04c0106547","parent":{"ref":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5bd5-0175-1000-b3e1-8f91d62e2b1a","parent":{"ref":"EID6eea5b71-0175-1000-f4e8-e25d4e3ecdf1"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5e1fb1be-118f-4e97-8221-64c00fa359d3"},{"ref":"EID22d6e88f-64a6-49b5-b267-9955ca0dd634"},{"ref":"EID706491b6-0863-4507-89ce-985f32f8fc28"}]},"parent":{"ref":"EID6eea5b0b-0175-1000-6dd7-b2b85a4cf9f3"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:14:14Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:14:13Z","duration":202,"status":"PASSED"},{"id":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d","testStepResults":{"TestStepResult":[{"id":"EID6eea5bde-0175-1000-2ecf-31e018538784","attachments":{"attachment":[{"ref":"EIDb31a8759-575a-48cb-b4f0-c0b40e767fe5"},{"ref":"EID26906f4b-c26e-4834-8db8-740b115b9f2b"}]},"parent":{"ref":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":100,"status":"PASSED"},{"id":"EID6eea5c70-0175-1000-3b14-35a2b0e9b9ac","parent":{"ref":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5c70-0175-1000-a165-d0c7b60f5ed4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5ccb-0175-1000-3528-a1fa80576517","parent":{"ref":"EID6eea5c70-0175-1000-a165-d0c7b60f5ed4"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5ccb-0175-1000-a3c8-2dc6fb34700e","parent":{"ref":"EID6eea5c70-0175-1000-a165-d0c7b60f5ed4"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5ccb-0175-1000-445e-608f641b02c2","parent":{"ref":"EID6eea5c70-0175-1000-a165-d0c7b60f5ed4"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5ccb-0175-1000-3c47-cd0e0d0438df","parent":{"ref":"EID6eea5c70-0175-1000-a165-d0c7b60f5ed4"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe5cad5d0-0be6-4669-a947-bad5b2f0c333"},{"ref":"EID94273312-785e-40e1-94a0-2786ea0e3047"},{"ref":"EIDde10a744-4c05-451e-918f-9f88ddd5051b"}]},"parent":{"ref":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:14:14Z","duration":21,"status":"PASSED"},{"id":"EID6eea5ccc-0175-1000-4b0e-1c1510837839","attachments":{"attachment":{"ref":"EID21a80654-5728-4532-91ed-61d618697fbb"}},"parent":{"ref":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5cdf-0175-1000-9479-63993137cc28","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5d64-0175-1000-0e7f-5e5215d7be50","parent":{"ref":"EID6eea5cdf-0175-1000-9479-63993137cc28"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5d64-0175-1000-cbd9-927f07e10cbd","parent":{"ref":"EID6eea5cdf-0175-1000-9479-63993137cc28"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5d64-0175-1000-5b4a-ad884383a38a","parent":{"ref":"EID6eea5cdf-0175-1000-9479-63993137cc28"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5d64-0175-1000-54b1-838c2dde5069","parent":{"ref":"EID6eea5cdf-0175-1000-9479-63993137cc28"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5d64-0175-1000-d4bb-8d2bbf63d0be","parent":{"ref":"EID6eea5cdf-0175-1000-9479-63993137cc28"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID351c8fed-7d6f-43f3-a2fe-7032cd834d53"},{"ref":"EIDbf68091d-876d-4dd0-9c72-e26da3e117f7"},{"ref":"EID95d16fe9-4c96-4bff-b73d-dbfa19f1edc0"}]},"parent":{"ref":"EID6eea5bde-0175-1000-ed89-61a660fa0a1d"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:14:14Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:14:14Z","duration":390,"status":"PASSED"},{"id":"EID6eea5d64-0175-1000-aad0-3b0bd0b6af35","testStepResults":{"TestStepResult":[{"id":"EID6eea5d64-0175-1000-e385-55dbcfbaf3f7","attachments":{"attachment":[{"ref":"EID4a5344d1-974d-4e6d-9feb-187289a48230"},{"ref":"EIDb865c178-e3df-48ac-811c-ef1201615497"}]},"parent":{"ref":"EID6eea5d64-0175-1000-aad0-3b0bd0b6af35"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":78,"status":"PASSED"},{"id":"EID6eea5deb-0175-1000-d7a6-b2e97d5582e9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5e59-0175-1000-35d9-188e9a94359c","parent":{"ref":"EID6eea5deb-0175-1000-d7a6-b2e97d5582e9"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5e59-0175-1000-99a2-12f7b57fdad3","parent":{"ref":"EID6eea5deb-0175-1000-d7a6-b2e97d5582e9"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5e59-0175-1000-991a-010d42f55bd0","parent":{"ref":"EID6eea5deb-0175-1000-d7a6-b2e97d5582e9"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5e59-0175-1000-3680-9a8f7446e7c6","parent":{"ref":"EID6eea5deb-0175-1000-d7a6-b2e97d5582e9"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID16c8d781-871f-4d05-a15f-830b304e62fb"},{"ref":"EIDd3041c24-26be-462f-ae78-e997459e6068"},{"ref":"EID4ad6632a-8fbb-41de-ab5c-eda00aaeb26a"}]},"parent":{"ref":"EID6eea5d64-0175-1000-aad0-3b0bd0b6af35"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:14:14Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:14:14Z","duration":253,"status":"PASSED"},{"id":"EID6eea5e61-0175-1000-3750-eba20585401b","testStepResults":{"TestStepResult":[{"id":"EID6eea5e61-0175-1000-e713-0f59dc66a465","attachments":{"attachment":[{"ref":"EIDaff91f9a-b793-4665-82f5-55c4668163fc"},{"ref":"EID0064a470-99c4-416b-978c-161a6721df51"}]},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":68,"status":"PASSED"},{"id":"EID6eea5eeb-0175-1000-f757-220e59717b49","parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:14:14Z","duration":0,"status":"PASSED"},{"id":"EID6eea5eeb-0175-1000-5fa5-c56e74b03da1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea5f5c-0175-1000-a1bb-73bee1a86b92","parent":{"ref":"EID6eea5eeb-0175-1000-5fa5-c56e74b03da1"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea5f5c-0175-1000-8869-949dfa93ff7f","parent":{"ref":"EID6eea5eeb-0175-1000-5fa5-c56e74b03da1"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea5f5c-0175-1000-ace4-1d40c42af8fa","parent":{"ref":"EID6eea5eeb-0175-1000-5fa5-c56e74b03da1"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea5f5c-0175-1000-e5e6-4f0d59d6ca1e","parent":{"ref":"EID6eea5eeb-0175-1000-5fa5-c56e74b03da1"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4608bf7e-9b98-4de5-bb12-a237bcc1dd51"},{"ref":"EID8c9c2b6d-6249-4d43-b3c1-84f0d58817bf"},{"ref":"EIDd90ed26c-d39d-4164-8b9c-ce34fedf9ff0"}]},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:14:14Z","duration":25,"status":"PASSED"},{"id":"EID6eea5f66-0175-1000-1423-32f50b8bbbfa","attachments":{"attachment":{"ref":"EIDb6c4b73a-1b2a-4a1f-9ef7-bdf2b33f4275"}},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea5f75-0175-1000-3005-8d046ebb52f8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea603c-0175-1000-369a-83002fe76a60","parent":{"ref":"EID6eea5f75-0175-1000-3005-8d046ebb52f8"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea603c-0175-1000-efdd-e2060da7b668","parent":{"ref":"EID6eea5f75-0175-1000-3005-8d046ebb52f8"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea603c-0175-1000-7727-228612fcae73","parent":{"ref":"EID6eea5f75-0175-1000-3005-8d046ebb52f8"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID210139de-f7e8-4742-8744-59dba0b6f921"},{"ref":"EID63cc388a-f353-4961-948e-133480d39667"},{"ref":"EIDc2e95fe3-f58e-4dd0-9cfb-d813de8dff83"}]},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:14:15Z","duration":78,"status":"PASSED"},{"id":"EID6eea603c-0175-1000-ce53-cf2054d41d6b","attachments":{"attachment":{"ref":"EID4d1bc073-66df-4a63-9091-c41fb64774ca"}},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:14:15Z","duration":1,"status":"PASSED"},{"id":"EID6eea6049-0175-1000-b55c-1a184cc7cc5a","attachments":{"attachment":{"ref":"EID50cf04a3-6eec-4ac4-a018-05db95ac6879"}},"parent":{"ref":"EID6eea5e61-0175-1000-3750-eba20585401b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:14:14Z","duration":501,"status":"PASSED"},{"id":"EID6eea6056-0175-1000-3927-068382177baa","testStepResults":{"TestStepResult":[{"id":"EID6eea6056-0175-1000-ec16-e569ed68b9bd","attachments":{"attachment":[{"ref":"EID8730e2a0-8750-4e77-9253-bfb47c647c25"},{"ref":"EIDf63de5ea-8d3e-4aed-8bfc-f476912fdfb5"}]},"parent":{"ref":"EID6eea6056-0175-1000-3927-068382177baa"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:14:15Z","duration":98,"status":"PASSED"},{"id":"EID6eea60e7-0175-1000-ae57-d457a4b3a9b7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6189-0175-1000-73af-ba490c608bac","parent":{"ref":"EID6eea60e7-0175-1000-ae57-d457a4b3a9b7"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6189-0175-1000-f039-c0cb49525f97","parent":{"ref":"EID6eea60e7-0175-1000-ae57-d457a4b3a9b7"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6189-0175-1000-ef72-cacaf69d5ec0","parent":{"ref":"EID6eea60e7-0175-1000-ae57-d457a4b3a9b7"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6189-0175-1000-8c45-bf6a3178d380","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea60e7-0175-1000-ae57-d457a4b3a9b7"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID7c416046-ce9b-4e63-8a3d-a82063685a0a"},{"ref":"EID967f48d0-5377-4424-8a5f-a4b0843c5151"},{"ref":"EID0abceb5d-8b04-4c87-8c7d-1698bb51134f"}]},"parent":{"ref":"EID6eea6056-0175-1000-3927-068382177baa"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:14:15Z","duration":20,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:14:15Z","duration":307,"status":"PASSED_MANUAL"},{"id":"EID6eea6189-0175-1000-9f2e-f6c74a9a1d7f","testStepResults":{"TestStepResult":{"id":"EID6eea6189-0175-1000-fd0f-7fafcfd000e3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6237-0175-1000-2979-a0873649c904","parent":{"ref":"EID6eea6189-0175-1000-fd0f-7fafcfd000e3"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6237-0175-1000-99e6-b2e36bfbdbab","parent":{"ref":"EID6eea6189-0175-1000-fd0f-7fafcfd000e3"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6237-0175-1000-710e-98bb9bdc27df","parent":{"ref":"EID6eea6189-0175-1000-fd0f-7fafcfd000e3"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea6237-0175-1000-e5e6-5b1ccb9bf3c7","parent":{"ref":"EID6eea6189-0175-1000-fd0f-7fafcfd000e3"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9ba85728-9703-4678-abfd-e4189243b6b1"},{"ref":"EID77f09619-46ed-411b-8d4e-707970dc0b78"},{"ref":"EID25dee3b0-2c20-4320-9f5c-bf4f4c430a7b"}]},"parent":{"ref":"EID6eea6189-0175-1000-9f2e-f6c74a9a1d7f"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:14:15Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:14:15Z","duration":175,"status":"PASSED"},{"id":"EID6eea6238-0175-1000-52ae-55b08ae3ff39","testStepResults":{"TestStepResult":{"id":"EID6eea6238-0175-1000-61c1-77a81eb44ce6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea62d1-0175-1000-604b-e9c309453a3c","parent":{"ref":"EID6eea6238-0175-1000-61c1-77a81eb44ce6"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea62d1-0175-1000-18bd-a28ecc656e81","parent":{"ref":"EID6eea6238-0175-1000-61c1-77a81eb44ce6"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea62d1-0175-1000-a57f-6d100cd3a3b1","parent":{"ref":"EID6eea6238-0175-1000-61c1-77a81eb44ce6"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"},{"id":"EID6eea62d1-0175-1000-df41-7370f5c6f01e","parent":{"ref":"EID6eea6238-0175-1000-61c1-77a81eb44ce6"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:14:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa9ba76d6-f2f3-4969-80e2-86ad0892ebfe"},{"ref":"EID8b18f009-2164-4e3e-b303-697ad55e12af"},{"ref":"EIDabb26276-a48f-4f1b-83a4-b8b782344a12"}]},"parent":{"ref":"EID6eea6238-0175-1000-52ae-55b08ae3ff39"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:14:15Z","duration":31,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:14:15Z","duration":153,"status":"PASSED"},{"id":"EID6eea62d2-0175-1000-ff48-ce6f19f115ea","testStepResults":{"TestStepResult":[{"id":"EID6eea62d2-0175-1000-d965-bb97f82805d1","attachments":{"attachment":[{"ref":"EID60cdfe66-60d1-4b93-801e-f19bd30322e8"},{"ref":"EID2cbed55d-53fb-4d31-a17c-9144eec50b18"},{"ref":"EIDb4c27eb6-8748-49bb-8b61-92db0f2f510b"},{"ref":"EID3706f3f3-bd83-4245-8294-dd24f1ed24af"},{"ref":"EIDa0e370ba-f5f6-4e77-a624-62cac4c5a569"},{"ref":"EID78a54589-8f85-4fdd-8fd9-1a4c62e6ad5b"},{"ref":"EIDb905a9b2-2ac8-4f0e-85a8-c85fce26f16a"},{"ref":"EID138ec0c0-f69e-441a-833f-f49cd4ab0958"},{"ref":"EID782f12a6-76b6-41af-b27a-386867f485b0"},{"ref":"EIDc68dfad5-d311-4e2f-8774-cb6e79999693"},{"ref":"EID1146ab2e-a432-48bf-affc-2ddfbb8891e3"},{"ref":"EIDfa690940-a682-4220-b5a7-62737ad141dd"}]},"parent":{"ref":"EID6eea62d2-0175-1000-ff48-ce6f19f115ea"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:14:15Z","duration":248,"status":"PASSED"},{"id":"EID6eea6517-0175-1000-917a-3f9eb70444e1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea658d-0175-1000-ef55-ef488a2dd106","parent":{"ref":"EID6eea6517-0175-1000-917a-3f9eb70444e1"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea658d-0175-1000-d5e0-b0c1a68f86a1","parent":{"ref":"EID6eea6517-0175-1000-917a-3f9eb70444e1"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea658d-0175-1000-753d-505ce87f797e","parent":{"ref":"EID6eea6517-0175-1000-917a-3f9eb70444e1"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea658d-0175-1000-c7b4-0f0b24413de4","parent":{"ref":"EID6eea6517-0175-1000-917a-3f9eb70444e1"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea658d-0175-1000-7243-ae0fd32c5297","parent":{"ref":"EID6eea6517-0175-1000-917a-3f9eb70444e1"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDee81a288-5d23-4c40-a22a-b01e666e0ca7"},{"ref":"EIDb34810d2-379c-4a67-aa0c-daef1ee0dfe6"},{"ref":"EID642b55fb-08a6-4c04-beb4-d7a371e1e597"}]},"parent":{"ref":"EID6eea62d2-0175-1000-ff48-ce6f19f115ea"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:14:16Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:14:15Z","duration":710,"status":"PASSED"},{"id":"EID6eea6598-0175-1000-e040-3ab59acdcafd","testStepResults":{"TestStepResult":{"id":"EID6eea6598-0175-1000-a6f5-ce184cf890cf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea65f1-0175-1000-4352-e837fafd26f8","parent":{"ref":"EID6eea6598-0175-1000-a6f5-ce184cf890cf"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea65f1-0175-1000-14a2-d2f95581538a","parent":{"ref":"EID6eea6598-0175-1000-a6f5-ce184cf890cf"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea65f1-0175-1000-5a09-e0b7f6548cff","parent":{"ref":"EID6eea6598-0175-1000-a6f5-ce184cf890cf"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea65f1-0175-1000-45f9-33976ef10713","parent":{"ref":"EID6eea6598-0175-1000-a6f5-ce184cf890cf"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID713ca4ab-c524-4fc1-9e79-f60ff628c949"},{"ref":"EID34a4d839-5db6-4b7c-9f11-5943298c1c26"},{"ref":"EID204f5926-05f3-43d5-a93e-4671cb0ec3ea"}]},"parent":{"ref":"EID6eea6598-0175-1000-e040-3ab59acdcafd"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:14:16Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:14:16Z","duration":90,"status":"PASSED"},{"id":"EID6eea65f2-0175-1000-a460-55bd7366d5fe","testStepResults":{"TestStepResult":{"id":"EID6eea65f2-0175-1000-bac3-180c240962e0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6683-0175-1000-2491-3c27155c6a8a","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6683-0175-1000-764b-2fbaf3d88819","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6683-0175-1000-0e4f-e2633dedeefe","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6683-0175-1000-f6f0-54a4c9c3045b","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6683-0175-1000-6637-35d9871b0de7","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6683-0175-1000-8eff-8ffb42e4bcb8","parent":{"ref":"EID6eea65f2-0175-1000-bac3-180c240962e0"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9c63ed1d-9fc9-4757-9d93-240889cdea4f"},{"ref":"EIDc730593d-89cf-4269-9778-ea667cffc751"},{"ref":"EID08eba369-117b-4842-a5ba-9038dd3b2322"}]},"parent":{"ref":"EID6eea65f2-0175-1000-a460-55bd7366d5fe"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:14:16Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:14:16Z","duration":153,"status":"PASSED"},{"id":"EID6eea668b-0175-1000-bee3-6ba8f29904a1","testStepResults":{"TestStepResult":{"id":"EID6eea668b-0175-1000-c851-53f281670502","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6700-0175-1000-f831-00977e8ad641","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-d69f-feddc38a6749","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-bd57-44431bcf48b5","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-1d5a-fb79b306dfa1","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-d743-e39d384f102a","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-061b-1283c24d9028","parent":{"ref":"EID6eea668b-0175-1000-c851-53f281670502"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:14:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcbedc394-900d-4dba-affc-7aaa872ce71d"},{"ref":"EID89b06af5-88a3-436c-bb8e-aa067a9dbdc1"},{"ref":"EID3b69d9b7-7488-429a-842d-39e38a711f06"}]},"parent":{"ref":"EID6eea668b-0175-1000-bee3-6ba8f29904a1"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:14:16Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:14:16Z","duration":117,"status":"PASSED"},{"id":"EID6eea6700-0175-1000-5500-2696e177ccad","testStepResults":{"TestStepResult":{"id":"EID6eea6700-0175-1000-3a11-c1908c633146","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6765-0175-1000-133f-d51a86b6be14","parent":{"ref":"EID6eea6700-0175-1000-3a11-c1908c633146"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6765-0175-1000-3c16-ab1e29bac236","parent":{"ref":"EID6eea6700-0175-1000-3a11-c1908c633146"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6765-0175-1000-89c4-f73f5390521f","parent":{"ref":"EID6eea6700-0175-1000-3a11-c1908c633146"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6765-0175-1000-2f93-73e4acec3dc5","parent":{"ref":"EID6eea6700-0175-1000-3a11-c1908c633146"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6dee3499-f3b6-4ca2-b6ae-9e15b14bab6e"},{"ref":"EIDdf245938-5858-40f9-9cfc-72637d3b61cf"},{"ref":"EID64776a13-733c-4471-9788-5389d69ccb85"}]},"parent":{"ref":"EID6eea6700-0175-1000-5500-2696e177ccad"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:14:16Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:14:16Z","duration":144,"status":"PASSED"},{"id":"EID6eea6790-0175-1000-a842-e4b6131ff0d9","testStepResults":{"TestStepResult":[{"id":"EID6eea6790-0175-1000-abbf-a172659b575a","attachments":{"attachment":[{"ref":"EID23b9de71-9fe7-4b3e-aa2b-7cc6e00bbbf9"},{"ref":"EID19b29e6f-1071-4086-90ab-0da60bcc63b6"},{"ref":"EIDb55ac7b2-b929-4f15-b724-697a67d052de"},{"ref":"EID16269cb2-1d22-4ad2-9cb8-eef28e548ec4"}]},"parent":{"ref":"EID6eea6790-0175-1000-a842-e4b6131ff0d9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:14:17Z","duration":160,"status":"PASSED"},{"id":"EID6eea68a0-0175-1000-581e-5789559dab44","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea68f9-0175-1000-07a3-4df44a9e8435","parent":{"ref":"EID6eea68a0-0175-1000-581e-5789559dab44"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:14:17Z","duration":1,"status":"PASSED"},{"id":"EID6eea68fa-0175-1000-440f-7606ca3db034","parent":{"ref":"EID6eea68a0-0175-1000-581e-5789559dab44"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea68fa-0175-1000-db70-c557b6b6d4fb","parent":{"ref":"EID6eea68a0-0175-1000-581e-5789559dab44"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea68fa-0175-1000-5d86-07fa3697ab7b","parent":{"ref":"EID6eea68a0-0175-1000-581e-5789559dab44"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDba5dce0e-488d-4607-99c9-93624047fc5e"},{"ref":"EIDbfe0b150-1b54-4f22-8087-409c5ded1d0f"},{"ref":"EIDdcb882a8-660c-4042-bac1-9b34b46c8935"}]},"parent":{"ref":"EID6eea6790-0175-1000-a842-e4b6131ff0d9"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:14:17Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:14:17Z","duration":362,"status":"PASSED"},{"id":"EID6eea68fa-0175-1000-2432-5f92e92d6371","testStepResults":{"TestStepResult":{"id":"EID6eea68fa-0175-1000-38ff-4b1b57027346","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea69d7-0175-1000-b8cb-2c3ef5b35888","parent":{"ref":"EID6eea68fa-0175-1000-38ff-4b1b57027346"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea69d7-0175-1000-7980-1ac61332a7c6","parent":{"ref":"EID6eea68fa-0175-1000-38ff-4b1b57027346"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea69d7-0175-1000-981e-4368b92dce99","parent":{"ref":"EID6eea68fa-0175-1000-38ff-4b1b57027346"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea69d7-0175-1000-c75d-5ef086312912","parent":{"ref":"EID6eea68fa-0175-1000-38ff-4b1b57027346"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID03b39e3f-3e4a-429a-acc6-af60a3f73911"},{"ref":"EID5185fbe1-58a5-476d-813f-fc2139ca8f30"},{"ref":"EID38e23189-b3dd-4994-a15d-415f4c1aa6fa"}]},"parent":{"ref":"EID6eea68fa-0175-1000-2432-5f92e92d6371"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:14:17Z","duration":24,"status":"PASSED"}},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:14:17Z","duration":221,"status":"PASSED"},{"id":"EID6eea69d7-0175-1000-2119-cfa843e713f0","testStepResults":{"TestStepResult":[{"id":"EID6eea69d7-0175-1000-12a7-f65a3aa8874b","parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea69d7-0175-1000-eba0-2571f933118e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6a40-0175-1000-7530-8ffeead6d100","parent":{"ref":"EID6eea69d7-0175-1000-eba0-2571f933118e"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6a40-0175-1000-be1a-7baa712cda2a","parent":{"ref":"EID6eea69d7-0175-1000-eba0-2571f933118e"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6a40-0175-1000-ee6b-27d2f06363d4","parent":{"ref":"EID6eea69d7-0175-1000-eba0-2571f933118e"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6a40-0175-1000-d426-197c3f0fa579","parent":{"ref":"EID6eea69d7-0175-1000-eba0-2571f933118e"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8e09b1bc-7532-448c-825a-775a4111c347"},{"ref":"EID75d8928a-5537-4310-819a-c937d2dd444a"},{"ref":"EIDdea8f383-814f-4ec3-9a7c-44f321022db4"}]},"parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:14:17Z","duration":21,"status":"PASSED"},{"id":"EID6eea6a40-0175-1000-63c1-1aae222ea35e","attachments":{"attachment":{"ref":"EID7ddafdc0-246f-4817-b8fc-5311c728ef2a"}},"parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:14:17Z","duration":1,"status":"PASSED"},{"id":"EID6eea6a59-0175-1000-4086-0d6cee0dbbaf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6ac0-0175-1000-f55c-05840f2bba50","parent":{"ref":"EID6eea6a59-0175-1000-4086-0d6cee0dbbaf"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ac0-0175-1000-e490-c1ad63ac1544","parent":{"ref":"EID6eea6a59-0175-1000-4086-0d6cee0dbbaf"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ac0-0175-1000-7162-e3d8a3b2c9da","parent":{"ref":"EID6eea6a59-0175-1000-4086-0d6cee0dbbaf"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ac0-0175-1000-12f2-01aef9d1b2fb","parent":{"ref":"EID6eea6a59-0175-1000-4086-0d6cee0dbbaf"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:14:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDacdf9f9c-9af0-45cc-bf80-ced63d85ac32"},{"ref":"EIDfedd8eba-c77a-465e-99d7-388e2f83e3d7"},{"ref":"EIDf6e7821b-fab1-4e3c-9b82-4757abe9a9f2"}]},"parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:14:17Z","duration":35,"status":"PASSED"},{"id":"EID6eea6ac0-0175-1000-d146-217444bc2b50","attachments":{"attachment":{"ref":"EID5ae5cbd7-0a3d-4644-b672-f48d794005a3"}},"parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:14:17Z","duration":1,"status":"PASSED"},{"id":"EID6eea6acc-0175-1000-200f-44fae825f21f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6b59-0175-1000-7d4e-9352205ba809","parent":{"ref":"EID6eea6acc-0175-1000-200f-44fae825f21f"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6b59-0175-1000-98e5-53425c49610f","parent":{"ref":"EID6eea6acc-0175-1000-200f-44fae825f21f"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6b59-0175-1000-0d6e-8bdcd6dccb8a","parent":{"ref":"EID6eea6acc-0175-1000-200f-44fae825f21f"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6b59-0175-1000-a713-95b20f28d7fd","parent":{"ref":"EID6eea6acc-0175-1000-200f-44fae825f21f"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDca97deec-a4de-473a-83f9-393dbf2dd34d"},{"ref":"EIDfc8d9dcb-e7d1-4f6a-b9b6-35b211990a64"},{"ref":"EID4d6126dd-673c-4fa3-a42a-ddeed1887aa6"}]},"parent":{"ref":"EID6eea69d7-0175-1000-2119-cfa843e713f0"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:14:17Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea5914-0175-1000-5ce0-e44d38995bf0"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:14:17Z","duration":386,"status":"PASSED"}]},"parent":{"ref":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:14:13Z","duration":4677,"status":"PASSED_MANUAL"},{"id":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4","testCaseResults":{"TestCaseResult":[{"id":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2","testStepResults":{"TestStepResult":[{"id":"EID6eea6b5a-0175-1000-44a9-e5af2568045a","parent":{"ref":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6b5a-0175-1000-6b19-07f191b38214","parent":{"ref":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":24,"status":"PASSED"},{"id":"EID6eea6b5a-0175-1000-966c-62344485de46","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6bb0-0175-1000-ec29-d7050cdb812b","parent":{"ref":"EID6eea6b5a-0175-1000-966c-62344485de46"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6bb1-0175-1000-f432-430a66db043c","parent":{"ref":"EID6eea6b5a-0175-1000-966c-62344485de46"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6bb1-0175-1000-f337-382ecabaef61","parent":{"ref":"EID6eea6b5a-0175-1000-966c-62344485de46"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID52f2d08f-10de-4d7e-8568-2da6b0537a0e"},{"ref":"EID53358522-d5d1-456a-993f-61b06b2b5c52"},{"ref":"EID9a760865-9001-44f1-805f-c782ac53cab8"}]},"parent":{"ref":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:14:18Z","duration":20,"status":"PASSED"},{"id":"EID6eea6bb1-0175-1000-9580-ee80c81c8b6f","attachments":{"attachment":{"ref":"EIDe1e55d1e-1879-42ae-96ec-0fb187d7ead5"}},"parent":{"ref":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6bbc-0175-1000-ce92-a7bc3ca0f649","parent":{"ref":"EID6eea6b5a-0175-1000-ef3a-a98c6362d9f2"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:14:18Z","duration":13,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:14:18Z","duration":112,"status":"PASSED"},{"id":"EID6eea6bca-0175-1000-bd66-ddc86f53bf53","testStepResults":{"TestStepResult":[{"id":"EID6eea6bca-0175-1000-c0bb-41af715d9722","parent":{"ref":"EID6eea6bca-0175-1000-bd66-ddc86f53bf53"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":20,"status":"PASSED"},{"id":"EID6eea6bca-0175-1000-f2de-1fe603671b84","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6c64-0175-1000-a562-ffd2a0b3115b","parent":{"ref":"EID6eea6bca-0175-1000-f2de-1fe603671b84"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6c64-0175-1000-3bdf-97f0ac1e7fe5","parent":{"ref":"EID6eea6bca-0175-1000-f2de-1fe603671b84"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6c64-0175-1000-d041-450f7d98ad5a","parent":{"ref":"EID6eea6bca-0175-1000-f2de-1fe603671b84"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6c64-0175-1000-0aaf-6a7944f4030c","parent":{"ref":"EID6eea6bca-0175-1000-f2de-1fe603671b84"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6c64-0175-1000-f932-49fe6b98ef78","parent":{"ref":"EID6eea6bca-0175-1000-f2de-1fe603671b84"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9d0c20bb-d9c5-49e2-bb3a-dfb59f9a28fa"},{"ref":"EID3a600903-8c78-47a1-8b9b-fa069468d4b1"},{"ref":"EID25d0e9d1-1471-4c1e-862d-67ebcab0c03e"}]},"parent":{"ref":"EID6eea6bca-0175-1000-bd66-ddc86f53bf53"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:14:18Z","duration":85,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:14:18Z","duration":155,"status":"PASSED"},{"id":"EID6eea6c65-0175-1000-187e-4e43e03506dd","testStepResults":{"TestStepResult":[{"id":"EID6eea6c65-0175-1000-0908-3ebe9fb17750","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6cc2-0175-1000-5202-b43f8b0d7374","parent":{"ref":"EID6eea6c65-0175-1000-0908-3ebe9fb17750"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6cc2-0175-1000-ab6c-36095ebb0f39","parent":{"ref":"EID6eea6c65-0175-1000-0908-3ebe9fb17750"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6cc2-0175-1000-ad67-fab498513c48","parent":{"ref":"EID6eea6c65-0175-1000-0908-3ebe9fb17750"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb0c5c7ba-d32d-4e3b-baa8-bbc27ce6a6d0"},{"ref":"EIDfcadffc7-2856-4f2b-bfe8-a37a56f37518"},{"ref":"EID0b61cc58-2e39-410f-84fe-670a92dff61c"}]},"parent":{"ref":"EID6eea6c65-0175-1000-187e-4e43e03506dd"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:14:18Z","duration":20,"status":"PASSED"},{"id":"EID6eea6cca-0175-1000-297a-2d80c6c4b010","attachments":{"attachment":{"ref":"EID80f71dad-0c92-40fc-ae35-41e3a93fa57c"}},"parent":{"ref":"EID6eea6c65-0175-1000-187e-4e43e03506dd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":1,"status":"PASSED"},{"id":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6d61-0175-1000-4fa4-c74eb6347d3a","parent":{"ref":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6d61-0175-1000-620f-a6e8bf756fd8","parent":{"ref":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6d61-0175-1000-e522-88ed8f2dfce8","parent":{"ref":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6d61-0175-1000-f546-a654f5674808","parent":{"ref":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6d61-0175-1000-7cef-b34367ed109d","parent":{"ref":"EID6eea6cd8-0175-1000-1c21-1fb8fe76938c"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe72f2974-7b43-4ea6-9cb5-a87c937a56c5"},{"ref":"EIDde720835-7af5-41f8-ac90-707ae3e16a38"},{"ref":"EID1b2ce213-9317-4f26-83c4-ce98b13c3c7c"}]},"parent":{"ref":"EID6eea6c65-0175-1000-187e-4e43e03506dd"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:14:18Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:14:18Z","duration":252,"status":"PASSED"},{"id":"EID6eea6d61-0175-1000-e1bd-2ebc370c2964","testStepResults":{"TestStepResult":[{"id":"EID6eea6d61-0175-1000-758d-07f115b971ec","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6dc0-0175-1000-31c2-82f832088c01","parent":{"ref":"EID6eea6d61-0175-1000-758d-07f115b971ec"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6dc0-0175-1000-b655-0fead00eb786","parent":{"ref":"EID6eea6d61-0175-1000-758d-07f115b971ec"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6dc0-0175-1000-7239-d2bad8018966","parent":{"ref":"EID6eea6d61-0175-1000-758d-07f115b971ec"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6dc1-0175-1000-d4c6-b74998d12674","parent":{"ref":"EID6eea6d61-0175-1000-758d-07f115b971ec"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID54e80095-f3c0-48aa-8980-0ede6df7d3fd"},{"ref":"EIDc15613b7-e28d-48af-a311-e0e8bf915633"},{"ref":"EIDd29be329-3f69-424c-85b4-9000766567b0"}]},"parent":{"ref":"EID6eea6d61-0175-1000-e1bd-2ebc370c2964"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:14:18Z","duration":20,"status":"PASSED"},{"id":"EID6eea6dc1-0175-1000-67ca-6c7b75f35971","attachments":{"attachment":{"ref":"EID91e1bb8c-36e3-4d6f-92fd-62fe3ca3f685"}},"parent":{"ref":"EID6eea6d61-0175-1000-e1bd-2ebc370c2964"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6dde-0175-1000-92bd-525f5527d3a0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6e0f-0175-1000-fb8c-9aa9cc78397b","parent":{"ref":"EID6eea6dde-0175-1000-92bd-525f5527d3a0"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6e0f-0175-1000-357b-600b8518d999","parent":{"ref":"EID6eea6dde-0175-1000-92bd-525f5527d3a0"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1a78b61e-b744-4bb9-a51f-31828e8e8623"},{"ref":"EID709c5b43-3876-480f-a806-6a69cb417e92"}]},"parent":{"ref":"EID6eea6d61-0175-1000-e1bd-2ebc370c2964"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:14:18Z","duration":45,"status":"PASSED"},{"id":"EID6eea6e0f-0175-1000-498a-a02a727421ba","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6ec7-0175-1000-bdee-9d4ec68ca696","parent":{"ref":"EID6eea6e0f-0175-1000-498a-a02a727421ba"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ec7-0175-1000-c4f0-87ffc3fbece7","parent":{"ref":"EID6eea6e0f-0175-1000-498a-a02a727421ba"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ec7-0175-1000-11e9-3e1f0729a6bb","parent":{"ref":"EID6eea6e0f-0175-1000-498a-a02a727421ba"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"},{"id":"EID6eea6ec7-0175-1000-bc3c-bc469394d620","parent":{"ref":"EID6eea6e0f-0175-1000-498a-a02a727421ba"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:14:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5aaa17ad-a749-47af-9fd2-aa1f9f80e1ab"},{"ref":"EIDba167495-3916-458f-a307-41e36f02095b"},{"ref":"EIDcf39499d-6365-4262-928b-4ed9d0f59c68"}]},"parent":{"ref":"EID6eea6d61-0175-1000-e1bd-2ebc370c2964"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:14:18Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:14:18Z","duration":358,"status":"PASSED"},{"id":"EID6eea6ec7-0175-1000-4575-5f7b37c9ce9b","testStepResults":{"TestStepResult":{"id":"EID6eea6ec7-0175-1000-866e-98661e53710f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6f25-0175-1000-5825-06bf005fc9fd","parent":{"ref":"EID6eea6ec7-0175-1000-866e-98661e53710f"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea6f25-0175-1000-184f-6a85222f804a","parent":{"ref":"EID6eea6ec7-0175-1000-866e-98661e53710f"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea6f25-0175-1000-6592-4237e439d2e3","parent":{"ref":"EID6eea6ec7-0175-1000-866e-98661e53710f"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5e90c144-5e94-4919-998c-0af4cb74406f"},{"ref":"EIDf6d175f9-677c-4e10-ac9f-75168e02b825"},{"ref":"EID09e3effd-e7b4-41d1-a7ff-8bf8c2ae1f1d"}]},"parent":{"ref":"EID6eea6ec7-0175-1000-4575-5f7b37c9ce9b"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:14:18Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:14:18Z","duration":94,"status":"PASSED"},{"id":"EID6eea6f26-0175-1000-31c5-983bcb544dfc","testStepResults":{"TestStepResult":{"id":"EID6eea6f2f-0175-1000-cf68-3efb48ec74c7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea6fb5-0175-1000-35e8-da8cbf8b6ac5","parent":{"ref":"EID6eea6f2f-0175-1000-cf68-3efb48ec74c7"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea6fb5-0175-1000-b387-67f2360fc027","parent":{"ref":"EID6eea6f2f-0175-1000-cf68-3efb48ec74c7"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea6fb5-0175-1000-c089-c5144859f6df","parent":{"ref":"EID6eea6f2f-0175-1000-cf68-3efb48ec74c7"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5b080d3e-060e-497c-9c43-a44c6d6332b5"},{"ref":"EID712397ed-4780-43df-b3aa-6ae4e9d2b49d"},{"ref":"EID593d5afc-27fe-4d1f-b52b-fe57c1406757"}]},"parent":{"ref":"EID6eea6f26-0175-1000-31c5-983bcb544dfc"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:14:19Z","duration":143,"status":"PASSED"},{"id":"EID6eea6fb5-0175-1000-cf63-e2377d9db244","testStepResults":{"TestStepResult":{"id":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea705f-0175-1000-13de-faa46468d525","parent":{"ref":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea705f-0175-1000-68a6-4034d6428a87","parent":{"ref":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea705f-0175-1000-c7d1-58aa340e5be2","parent":{"ref":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea705f-0175-1000-91f8-eb62da8f5252","parent":{"ref":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea705f-0175-1000-6485-0a613c373f1e","parent":{"ref":"EID6eea6fb5-0175-1000-484e-0c7c4b46d981"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID29007f52-04ff-4dfc-8c69-940120e1f710"},{"ref":"EID75c1018b-975d-411c-a55f-4a3b561a8513"},{"ref":"EIDe7918102-3f42-4fc0-85f7-5dd2c8e9e246"}]},"parent":{"ref":"EID6eea6fb5-0175-1000-cf63-e2377d9db244"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:14:19Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:14:19Z","duration":170,"status":"PASSED"},{"id":"EID6eea705f-0175-1000-d3aa-5118bd1323ec","testStepResults":{"TestStepResult":{"id":"EID6eea705f-0175-1000-e3bb-bde154301dd4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea70b9-0175-1000-aa67-37c585ea7570","parent":{"ref":"EID6eea705f-0175-1000-e3bb-bde154301dd4"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea70b9-0175-1000-23ce-bbce9017e657","parent":{"ref":"EID6eea705f-0175-1000-e3bb-bde154301dd4"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea70b9-0175-1000-588c-77ef34a5baa8","parent":{"ref":"EID6eea705f-0175-1000-e3bb-bde154301dd4"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcb16c7a5-c5a9-44f4-a432-cad7afe217b7"},{"ref":"EID32996ce0-70aa-4fb4-ad2a-ef20dd63c991"},{"ref":"EIDb3614d11-81bd-41fb-b469-5a9cd3309edb"}]},"parent":{"ref":"EID6eea705f-0175-1000-d3aa-5118bd1323ec"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:14:19Z","duration":90,"status":"PASSED"},{"id":"EID6eea70b9-0175-1000-493b-773982618b93","testStepResults":{"TestStepResult":{"id":"EID6eea70b9-0175-1000-65ec-421e791165f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7110-0175-1000-a6c8-c6a77b654a98","parent":{"ref":"EID6eea70b9-0175-1000-65ec-421e791165f7"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7110-0175-1000-c2cd-501a54029379","parent":{"ref":"EID6eea70b9-0175-1000-65ec-421e791165f7"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7110-0175-1000-139e-1a69f9824459","parent":{"ref":"EID6eea70b9-0175-1000-65ec-421e791165f7"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf5da114b-894e-412e-89bb-4aac50e24f84"},{"ref":"EID47b35d58-7cc9-47ea-8576-e9bab142587d"},{"ref":"EIDd21070f9-0513-4427-9afa-ba903272c66d"}]},"parent":{"ref":"EID6eea70b9-0175-1000-493b-773982618b93"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:14:19Z","duration":87,"status":"PASSED"},{"id":"EID6eea7110-0175-1000-6f0f-7556dea0c268","testStepResults":{"TestStepResult":{"id":"EID6eea7110-0175-1000-a267-44371d196fb0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7196-0175-1000-e524-42af3b4740c1","parent":{"ref":"EID6eea7110-0175-1000-a267-44371d196fb0"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7196-0175-1000-2b34-a3f7f0b727a4","parent":{"ref":"EID6eea7110-0175-1000-a267-44371d196fb0"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7196-0175-1000-4841-b151f79f2d27","parent":{"ref":"EID6eea7110-0175-1000-a267-44371d196fb0"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7196-0175-1000-e470-cddfaf50d9ee","parent":{"ref":"EID6eea7110-0175-1000-a267-44371d196fb0"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7702666b-e19c-4bf6-a12d-479bbb74b26e"},{"ref":"EID4772c026-6fc0-4822-945d-ad0bf3373e4f"},{"ref":"EIDe44e7b8b-f9bc-4f22-b80e-fccdc6066213"}]},"parent":{"ref":"EID6eea7110-0175-1000-6f0f-7556dea0c268"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:14:19Z","duration":135,"status":"PASSED"},{"id":"EID6eea7197-0175-1000-1120-08fa863d3306","testStepResults":{"TestStepResult":{"id":"EID6eea7197-0175-1000-8b41-fdbeacd099b9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea71eb-0175-1000-bbf3-7563ed1c64fa","parent":{"ref":"EID6eea7197-0175-1000-8b41-fdbeacd099b9"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-1a3e-eb96e8809aaa","parent":{"ref":"EID6eea7197-0175-1000-8b41-fdbeacd099b9"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-9064-fefbf801d972","parent":{"ref":"EID6eea7197-0175-1000-8b41-fdbeacd099b9"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-5bc3-d56fa984d81f","parent":{"ref":"EID6eea7197-0175-1000-8b41-fdbeacd099b9"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID551ea63f-1c73-4eb9-b9b7-4fd6d7798dd6"},{"ref":"EID5f012ccd-3e00-471e-bc37-82e7cff9337a"},{"ref":"EID458e99c0-b354-4b42-9a52-57d9b45e535a"}]},"parent":{"ref":"EID6eea7197-0175-1000-1120-08fa863d3306"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:14:19Z","duration":84,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-b855-dad5b06aed90","testStepResults":{"TestStepResult":[{"id":"EID6eea71eb-0175-1000-6cad-d26863b16cba","parent":{"ref":"EID6eea71eb-0175-1000-b855-dad5b06aed90"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-6773-45e33a625253","parent":{"ref":"EID6eea71eb-0175-1000-b855-dad5b06aed90"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:14:19Z","duration":40,"status":"PASSED"},{"id":"EID6eea71eb-0175-1000-820f-c30cdaf05e20","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea724a-0175-1000-3350-5f628cb647f8","parent":{"ref":"EID6eea71eb-0175-1000-820f-c30cdaf05e20"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea724a-0175-1000-89d5-72ee6551e0fd","parent":{"ref":"EID6eea71eb-0175-1000-820f-c30cdaf05e20"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea724a-0175-1000-fd1e-b6987dccab9c","parent":{"ref":"EID6eea71eb-0175-1000-820f-c30cdaf05e20"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea724a-0175-1000-f07e-bf6ee40e594b","parent":{"ref":"EID6eea71eb-0175-1000-820f-c30cdaf05e20"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb9a96f5-ff16-4f5b-ab18-f8f57ad5accc"},{"ref":"EIDe1ee9bee-5c77-43c3-9d96-32584e72f451"},{"ref":"EID158744cf-04a1-4666-a8b8-b142b0d8ccb8"}]},"parent":{"ref":"EID6eea71eb-0175-1000-b855-dad5b06aed90"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:14:19Z","duration":26,"status":"PASSED"},{"id":"EID6eea724a-0175-1000-fa75-7fbce2f7bb26","attachments":{"attachment":{"ref":"EID8aeb36af-5548-4d4b-a099-afe1e248cc8e"}},"parent":{"ref":"EID6eea71eb-0175-1000-b855-dad5b06aed90"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea72c5-0175-1000-bd22-a434c0f8b363","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-0aa0-eac2431b2df5","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-4200-2206e78bac71","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-e1c0-d47958779ca3","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-6f7b-6e8989aa5861","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-e8b3-a303e1130bb3","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-5d23-d05c1ee98818","parent":{"ref":"EID6eea7257-0175-1000-6e65-d7dcb2719ad4"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID191a12de-2f43-41cb-87d8-be597368a129"},{"ref":"EIDffdfbe4c-b303-47c1-a263-95380caacad9"},{"ref":"EID197c5d5f-e787-422d-8655-17c02a7d5e60"}]},"parent":{"ref":"EID6eea71eb-0175-1000-b855-dad5b06aed90"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:14:19Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:14:19Z","duration":218,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-212b-031c33a5a455","testStepResults":{"TestStepResult":[{"id":"EID6eea72c5-0175-1000-c96f-e497e22f9a75","parent":{"ref":"EID6eea72c5-0175-1000-212b-031c33a5a455"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea72c5-0175-1000-2253-ea8925be91e1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7348-0175-1000-4939-c346c54039b8","parent":{"ref":"EID6eea72c5-0175-1000-2253-ea8925be91e1"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7348-0175-1000-a7ae-13b3bafa97d6","parent":{"ref":"EID6eea72c5-0175-1000-2253-ea8925be91e1"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7348-0175-1000-b074-7715817c0b21","parent":{"ref":"EID6eea72c5-0175-1000-2253-ea8925be91e1"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7348-0175-1000-0da7-1e78adff841e","parent":{"ref":"EID6eea72c5-0175-1000-2253-ea8925be91e1"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID61742db9-776f-4e21-858b-97a1700691cd"},{"ref":"EIDcf4f688d-1e68-40d2-9ad0-7d1c7de0163d"},{"ref":"EIDeecb36cb-9452-48eb-a4a3-aa617c7c2b90"}]},"parent":{"ref":"EID6eea72c5-0175-1000-212b-031c33a5a455"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:14:19Z","duration":43,"status":"PASSED"},{"id":"EID6eea7348-0175-1000-9c94-bc4942f934d7","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eea7358-0175-1000-1d42-16b0d376945f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea73db-0175-1000-5559-7a6e0e0a2f51","parent":{"ref":"EID6eea7358-0175-1000-1d42-16b0d376945f"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73db-0175-1000-1f1c-79e1b04e1780","parent":{"ref":"EID6eea7358-0175-1000-1d42-16b0d376945f"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73db-0175-1000-e979-f5fff9c9af3c","parent":{"ref":"EID6eea7358-0175-1000-1d42-16b0d376945f"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf59775ae-8f0f-40c4-bfc2-05e12306976a"},{"ref":"EID7f4c0e00-3a3a-4041-94ff-fd30df2cf7c0"},{"ref":"EIDb7ea59d2-b88f-4d6f-9376-5d10c3799a3c"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:20Z","duration":40,"status":"PASSED"},{"id":"EID6eea73dd-0175-1000-6452-c86156658856","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea743e-0175-1000-8b66-be203e1152c8","parent":{"ref":"EID6eea73dd-0175-1000-6452-c86156658856"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea743e-0175-1000-aec7-aa7d2a6c00ec","parent":{"ref":"EID6eea73dd-0175-1000-6452-c86156658856"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea743e-0175-1000-a1a4-c43fffe18f98","parent":{"ref":"EID6eea73dd-0175-1000-6452-c86156658856"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3fc22664-2b37-448e-b7f7-0b5f6157f24e"},{"ref":"EIDf0c0b15c-7e98-4bef-a812-2c503ce38337"},{"ref":"EIDe0623378-5964-48b8-b45f-6b48b2245e1a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:20Z","duration":38,"status":"PASSED"},{"id":"EID6eea743f-0175-1000-8598-09a385d8e8b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7508-0175-1000-2f58-4e928ace7934","parent":{"ref":"EID6eea743f-0175-1000-8598-09a385d8e8b5"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7508-0175-1000-d107-a5ed1d1d9207","parent":{"ref":"EID6eea743f-0175-1000-8598-09a385d8e8b5"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7508-0175-1000-3991-e2990d64746e","parent":{"ref":"EID6eea743f-0175-1000-8598-09a385d8e8b5"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb85e6b1f-4ce1-4c99-98e9-4d60242c1179"},{"ref":"EID71adb5a2-4a2a-4a13-a53a-ce3cd930172e"},{"ref":"EID54a17922-9556-4163-8afd-95e1efeece6e"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:20Z","duration":149,"status":"PASSED"}]},"parent":{"ref":"EID6eea72c5-0175-1000-212b-031c33a5a455"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:14:20Z","duration":448,"status":"PASSED"},{"id":"EID6eea7509-0175-1000-5986-6a4218460196","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7560-0175-1000-c252-3af01e03de0b","parent":{"ref":"EID6eea7509-0175-1000-5986-6a4218460196"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7560-0175-1000-0d73-fd51064f8ece","parent":{"ref":"EID6eea7509-0175-1000-5986-6a4218460196"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7560-0175-1000-f905-b0574e640d5d","parent":{"ref":"EID6eea7509-0175-1000-5986-6a4218460196"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7560-0175-1000-9b36-0d5bdb7e9d0c","parent":{"ref":"EID6eea7509-0175-1000-5986-6a4218460196"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4a392370-050f-4c92-8837-f627a12fb5f1"},{"ref":"EIDe2818b33-d387-4e4b-b92a-8c0a0e5e632a"},{"ref":"EID66352b31-63a1-4174-bbac-27333038f5dd"}]},"parent":{"ref":"EID6eea72c5-0175-1000-212b-031c33a5a455"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:14:20Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:14:19Z","duration":667,"status":"PASSED"},{"id":"EID6eea7560-0175-1000-f93b-bbc20db8897e","testStepResults":{"TestStepResult":{"id":"EID6eea7561-0175-1000-9de5-fd5e57a31b97","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea75e9-0175-1000-595b-4259610ca016","parent":{"ref":"EID6eea7561-0175-1000-9de5-fd5e57a31b97"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea75e9-0175-1000-0596-e4aaa8adf331","parent":{"ref":"EID6eea7561-0175-1000-9de5-fd5e57a31b97"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea75e9-0175-1000-adb9-9e617fc8f6e7","parent":{"ref":"EID6eea7561-0175-1000-9de5-fd5e57a31b97"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea75e9-0175-1000-4cf4-f344c92235e4","parent":{"ref":"EID6eea7561-0175-1000-9de5-fd5e57a31b97"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd6c5178d-c59b-480e-a085-cbab3f3c3be1"},{"ref":"EID05829814-c090-4cb9-800c-4183b946a8fb"},{"ref":"EID8540d51e-c795-4586-91f0-0c151cd78524"}]},"parent":{"ref":"EID6eea7560-0175-1000-f93b-bbc20db8897e"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:14:20Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea6b59-0175-1000-5293-7e5e124fb3e4"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:14:20Z","duration":137,"status":"PASSED"}]},"parent":{"ref":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:14:18Z","duration":2704,"status":"PASSED"},{"id":"EID6eea75e9-0175-1000-7066-0dabb57dcb31","testCaseResults":{"TestCaseResult":[{"id":"EID6eea75e9-0175-1000-7986-476e18030701","testStepResults":{"TestStepResult":[{"id":"EID6eea75e9-0175-1000-cb99-1351cf074358","parent":{"ref":"EID6eea75e9-0175-1000-7986-476e18030701"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":171,"status":"PASSED"},{"id":"EID6eea75e9-0175-1000-b0ab-087e75697f65","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7638-0175-1000-d74b-c0a11872b6c4","parent":{"ref":"EID6eea75e9-0175-1000-b0ab-087e75697f65"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7638-0175-1000-4f03-daf59fde11fe","parent":{"ref":"EID6eea75e9-0175-1000-b0ab-087e75697f65"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7639-0175-1000-ca46-1950a6161008","parent":{"ref":"EID6eea75e9-0175-1000-b0ab-087e75697f65"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc012d72e-98e3-4618-941c-0921771b99e0"},{"ref":"EID987ba9b3-5b76-4125-9342-7acf22d36085"},{"ref":"EID8962128f-efdb-437f-a09d-8d6b72855ffe"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7986-476e18030701"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:14:20Z","duration":20,"status":"PASSED"},{"id":"EID6eea7639-0175-1000-bac3-01d43645348d","attachments":{"attachment":{"ref":"EID41216437-8d60-47d3-a96f-8f18e0ea1e7f"}},"parent":{"ref":"EID6eea75e9-0175-1000-7986-476e18030701"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:14:20Z","duration":93,"status":"PASSED"},{"id":"EID6eea7646-0175-1000-f833-06fc76b8ad45","testStepResults":{"TestStepResult":[{"id":"EID6eea7646-0175-1000-3cdd-c127c8e750ad","parent":{"ref":"EID6eea7646-0175-1000-f833-06fc76b8ad45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":171,"status":"PASSED"},{"id":"EID6eea7646-0175-1000-dc3b-8fcbf0bf62d0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea76f6-0175-1000-7e58-d5e736184113","parent":{"ref":"EID6eea7646-0175-1000-dc3b-8fcbf0bf62d0"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea76f6-0175-1000-7992-447537438412","parent":{"ref":"EID6eea7646-0175-1000-dc3b-8fcbf0bf62d0"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea76f6-0175-1000-5f44-16fe1c82df16","parent":{"ref":"EID6eea7646-0175-1000-dc3b-8fcbf0bf62d0"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea76f6-0175-1000-d473-1965e01716af","parent":{"ref":"EID6eea7646-0175-1000-dc3b-8fcbf0bf62d0"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa25896d9-5962-4087-b7a3-1acdca750cd9"},{"ref":"EID62ecd4e4-728f-4ed4-9534-7ea5aef5b2ed"},{"ref":"EIDbab73c58-1c6b-43ff-90d3-88ba330c38d0"}]},"parent":{"ref":"EID6eea7646-0175-1000-f833-06fc76b8ad45"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:14:20Z","duration":101,"status":"PASSED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:14:20Z","duration":176,"status":"PASSED"},{"id":"EID6eea76f7-0175-1000-99a6-93aa2a616471","testStepResults":{"TestStepResult":[{"id":"EID6eea76f7-0175-1000-6dab-1f3a1f3693ea","parent":{"ref":"EID6eea76f7-0175-1000-99a6-93aa2a616471"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":171,"status":"PASSED"},{"id":"EID6eea76f7-0175-1000-74dd-c3063633a548","parent":{"ref":"EID6eea76f7-0175-1000-99a6-93aa2a616471"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea76f7-0175-1000-73fe-ce73994adc48","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea77ba-0175-1000-fb07-98e557106668","parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ba-0175-1000-b0fc-da6bb3e44172","parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ba-0175-1000-0338-93e120bf53d3","parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ba-0175-1000-2d36-bf828141ca5f","parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ba-0175-1000-a5bc-18b2fe9d5b7a","parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ba-0175-1000-b1b7-809ccd0615b2","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"FAILED"},{"id":"EID6eea77bb-0175-1000-94ae-aec4b025704c","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eea76f7-0175-1000-73fe-ce73994adc48"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5468fb62-c908-4108-bf8b-49d3bcb74cf8"},{"ref":"EID8bbe26f9-80cf-4fa0-9462-15af84f5eaf1"},{"ref":"EID0dab45fe-d204-4fee-8f0a-be1a7fcd62a8"}]},"parent":{"ref":"EID6eea76f7-0175-1000-99a6-93aa2a616471"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:14:21Z","duration":97,"status":"FAILED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:14:21Z","duration":204,"status":"FAILED"},{"id":"EID6eea77c3-0175-1000-ed24-47d0796d7e60","testStepResults":{"TestStepResult":[{"id":"EID6eea77c3-0175-1000-7026-f204af13f96f","parent":{"ref":"EID6eea77c3-0175-1000-ed24-47d0796d7e60"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":171,"status":"PASSED"},{"id":"EID6eea77c3-0175-1000-5179-de584faf6695","parent":{"ref":"EID6eea77c3-0175-1000-ed24-47d0796d7e60"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7885-0175-1000-2715-2fcdcc6eccd8","parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7885-0175-1000-727f-d61df084fbd1","parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7885-0175-1000-b1e4-4c98d8bc8f6c","parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7885-0175-1000-53f8-cf6323ffed71","parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7885-0175-1000-3180-9fa3fb7001f9","parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7885-0175-1000-0233-bf16358f986f","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eea77c3-0175-1000-ab1b-4dfbd9bb71cc"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDc001ea18-06c0-4cac-a0ef-261dce0f9f7f"},{"ref":"EID752510fa-f7ae-400c-bbca-07ffd477b553"},{"ref":"EID0fd12b7b-c0a0-444b-ab82-a17d76f7ea22"}]},"parent":{"ref":"EID6eea77c3-0175-1000-ed24-47d0796d7e60"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:14:21Z","duration":82,"status":"FAILED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:14:21Z","duration":197,"status":"FAILED"},{"id":"EID6eea7888-0175-1000-83ca-4b5173c0b96c","testStepResults":{"TestStepResult":[{"id":"EID6eea7888-0175-1000-83c2-12ec27f6d2dc","parent":{"ref":"EID6eea7888-0175-1000-83ca-4b5173c0b96c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":171,"status":"PASSED"},{"id":"EID6eea7888-0175-1000-fea7-e1ac1756b21b","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EIDa42d17f7-4fdb-4fbc-8e0b-2c0914ab3575"},{"ref":"EIDb4536193-65d2-4c7d-8ec4-b771cdd67173"},{"ref":"EIDedf134f6-7627-475b-a35e-6c618f7ff7e8"},{"ref":"EIDe61707f0-a791-498b-87ea-559dd04a2a95"},{"ref":"EID4e96b986-1a2d-425e-868f-9a8f05951aa2"},{"ref":"EIDe067ac74-8d59-4b0e-b99b-70ad79f5fc28"},{"ref":"EID18295351-fd72-4995-bdf9-492a51d4269e"},{"ref":"EID98f037e7-d313-42af-86e5-a76fa4971fd8"},{"ref":"EIDce769f7d-b1bb-429b-9ff8-dbb1307bb715"},{"ref":"EID0fb4ba2e-27e6-4fb1-bd44-64030e0694dd"},{"ref":"EIDed9e9884-2022-46b6-8297-d65e18eaf1af"},{"ref":"EID0283594d-ee67-47d1-8768-c0725feb5d07"},{"ref":"EID33e129e1-37b1-40ed-b098-e81aeeb5b87f"},{"ref":"EIDd3e446e2-8714-48db-954e-d6c1eb68c757"},{"ref":"EIDd41499a5-2b03-484b-a466-dc77ac96f106"}]},"parent":{"ref":"EID6eea7888-0175-1000-83ca-4b5173c0b96c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":502,"status":"SKIPPED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:14:21Z","duration":857,"status":"SKIPPED"},{"id":"EID6eea7be1-0175-1000-a36d-b65692f503de","testStepResults":{"TestStepResult":[{"id":"EID6eea7be1-0175-1000-e00c-ebe459b4342b","parent":{"ref":"EID6eea7be1-0175-1000-a36d-b65692f503de"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":172,"status":"PASSED"},{"id":"EID6eea7be2-0175-1000-7fb1-291bc620b8b2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7c9d-0175-1000-5e9c-f4f5d32f1a35","parent":{"ref":"EID6eea7be2-0175-1000-7fb1-291bc620b8b2"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7c9d-0175-1000-4f81-eb22af6805f3","parent":{"ref":"EID6eea7be2-0175-1000-7fb1-291bc620b8b2"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7c9d-0175-1000-c868-0baa18e55e27","parent":{"ref":"EID6eea7be2-0175-1000-7fb1-291bc620b8b2"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7c9d-0175-1000-a635-518d215f391b","parent":{"ref":"EID6eea7be2-0175-1000-7fb1-291bc620b8b2"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbac06a90-0f28-4fe9-bb55-d620201c5fe6"},{"ref":"EID314671f5-2e60-4e4e-ac8e-e1418fb62b8d"},{"ref":"EID97db3c9a-7e66-497c-810e-c297b2b89d83"}]},"parent":{"ref":"EID6eea7be1-0175-1000-a36d-b65692f503de"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:14:22Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:14:22Z","duration":188,"status":"PASSED"},{"id":"EID6eea7c9d-0175-1000-4398-efc307731068","testStepResults":{"TestStepResult":[{"id":"EID6eea7c9d-0175-1000-cc35-190a910a9e4a","parent":{"ref":"EID6eea7c9d-0175-1000-4398-efc307731068"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":171,"status":"PASSED"},{"id":"EID6eea7c9d-0175-1000-2dbc-5e7175ee1d3f","parent":{"ref":"EID6eea7c9d-0175-1000-4398-efc307731068"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7c9e-0175-1000-d7ba-496caa585e46","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7d3c-0175-1000-f4cc-3209f00e8475","parent":{"ref":"EID6eea7c9e-0175-1000-d7ba-496caa585e46"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d3c-0175-1000-951a-3e796a4bb8c3","parent":{"ref":"EID6eea7c9e-0175-1000-d7ba-496caa585e46"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d3c-0175-1000-c0a0-48f8cbafe738","parent":{"ref":"EID6eea7c9e-0175-1000-d7ba-496caa585e46"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d3c-0175-1000-9a9a-e9fd862b1ee3","parent":{"ref":"EID6eea7c9e-0175-1000-d7ba-496caa585e46"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfecbbb38-5310-4f37-9819-71c7c4af4596"},{"ref":"EID635dd3e8-bb61-4aaf-bcf2-9652f436db73"},{"ref":"EID936dccf7-4f48-4eeb-b6d7-cb8e1060c22a"}]},"parent":{"ref":"EID6eea7c9d-0175-1000-4398-efc307731068"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:14:22Z","duration":89,"status":"PASSED"},{"id":"EID6eea7d3c-0175-1000-b712-67f609439041","attachments":{"attachment":{"ref":"EID986c3ebb-df41-453f-95b5-5bf13fb85d5d"}},"parent":{"ref":"EID6eea7c9d-0175-1000-4398-efc307731068"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d48-0175-1000-0580-a3284c16f1ff","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7d5a-0175-1000-e041-8b76ae985a39","parent":{"ref":"EID6eea7d48-0175-1000-0580-a3284c16f1ff"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d5a-0175-1000-d659-17146386eaa7","parent":{"ref":"EID6eea7d48-0175-1000-0580-a3284c16f1ff"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7d5a-0175-1000-3634-5c6511d01858","parent":{"ref":"EID6eea7d48-0175-1000-0580-a3284c16f1ff"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b4c870e-831a-4655-ae2b-8bd7bdfc6cde"},{"ref":"EID95fa54a8-a16b-49c8-b124-bc48ed697a30"}]},"parent":{"ref":"EID6eea7c9d-0175-1000-4398-efc307731068"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eea75e9-0175-1000-7066-0dabb57dcb31"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:14:22Z","duration":189,"status":"PASSED"}]},"parent":{"ref":"EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:14:20Z","duration":1905,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceEndpoint","id":"EID8d01062f-b08c-4763-8e44-33d57d975df3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID38ddde6e-7888-4b0b-9f47-183c510ec3ee","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID38ddde6e-7888-4b0b-9f47-183c510ec3ee"}},{"type":"ServiceResponse","id":"EIDb34810d2-379c-4a67-aa0c-daef1ee0dfe6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb34810d2-379c-4a67-aa0c-daef1ee0dfe6"}},{"type":"Message","id":"EIDed9e9884-2022-46b6-8297-d65e18eaf1af","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDed9e9884-2022-46b6-8297-d65e18eaf1af"}},{"type":"ServiceResponse","id":"EID987ba9b3-5b76-4125-9342-7acf22d36085","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID987ba9b3-5b76-4125-9342-7acf22d36085"}},{"type":"ServiceEndpoint","id":"EID3fc22664-2b37-448e-b7f7-0b5f6157f24e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID713ca4ab-c524-4fc1-9e79-f60ff628c949","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDe5cad5d0-0be6-4669-a947-bad5b2f0c333","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID16269cb2-1d22-4ad2-9cb8-eef28e548ec4","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID16269cb2-1d22-4ad2-9cb8-eef28e548ec4"}},{"type":"ServiceResponse","id":"EIDf0c0b15c-7e98-4bef-a812-2c503ce38337","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDf0c0b15c-7e98-4bef-a812-2c503ce38337"}},{"type":"GetParameter","id":"EIDd21070f9-0513-4427-9afa-ba903272c66d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDb865c178-e3df-48ac-811c-ef1201615497","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb865c178-e3df-48ac-811c-ef1201615497"}},{"type":"ServiceEndpoint","id":"EID54e80095-f3c0-48aa-8980-0ede6df7d3fd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDf63de5ea-8d3e-4aed-8bfc-f476912fdfb5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDf63de5ea-8d3e-4aed-8bfc-f476912fdfb5"}},{"type":"ServiceResponse","id":"EID22d6e88f-64a6-49b5-b267-9955ca0dd634","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID22d6e88f-64a6-49b5-b267-9955ca0dd634"}},{"type":"Message","id":"EID19b29e6f-1071-4086-90ab-0da60bcc63b6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID19b29e6f-1071-4086-90ab-0da60bcc63b6"}},{"type":"ServiceEndpoint","id":"EID03b39e3f-3e4a-429a-acc6-af60a3f73911","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID158744cf-04a1-4666-a8b8-b142b0d8ccb8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID8540d51e-c795-4586-91f0-0c151cd78524","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDe1e55d1e-1879-42ae-96ec-0fb187d7ead5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDe1e55d1e-1879-42ae-96ec-0fb187d7ead5"}},{"type":"ServiceResponse","id":"EIDbfe0b150-1b54-4f22-8087-409c5ded1d0f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDbfe0b150-1b54-4f22-8087-409c5ded1d0f"}},{"type":"GetParameter","id":"EIDd29be329-3f69-424c-85b4-9000766567b0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EIDf6d175f9-677c-4e10-ac9f-75168e02b825","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDf6d175f9-677c-4e10-ac9f-75168e02b825"}},{"type":"GetParameter","id":"EID97db3c9a-7e66-497c-810e-c297b2b89d83","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID8730e2a0-8750-4e77-9253-bfb47c647c25","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID8730e2a0-8750-4e77-9253-bfb47c647c25"}},{"type":"ServiceResponse","id":"EID05829814-c090-4cb9-800c-4183b946a8fb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID05829814-c090-4cb9-800c-4183b946a8fb"}},{"type":"GetParameter","id":"EID38e23189-b3dd-4994-a15d-415f4c1aa6fa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID8e09b1bc-7532-448c-825a-775a4111c347","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID210139de-f7e8-4742-8744-59dba0b6f921","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDdcb882a8-660c-4042-bac1-9b34b46c8935","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID54a17922-9556-4163-8afd-95e1efeece6e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID45df123f-67ed-4815-a2bd-46f5fbabb044","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID8b18f009-2164-4e3e-b303-697ad55e12af","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID8b18f009-2164-4e3e-b303-697ad55e12af"}},{"type":"Message","id":"EID23b9de71-9fe7-4b3e-aa2b-7cc6e00bbbf9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID23b9de71-9fe7-4b3e-aa2b-7cc6e00bbbf9"}},{"type":"GetParameter","id":"EIDe0623378-5964-48b8-b45f-6b48b2245e1a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID712397ed-4780-43df-b3aa-6ae4e9d2b49d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID712397ed-4780-43df-b3aa-6ae4e9d2b49d"}},{"type":"ServiceEndpoint","id":"EIDee81a288-5d23-4c40-a22a-b01e666e0ca7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa42d17f7-4fdb-4fbc-8e0b-2c0914ab3575","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDa42d17f7-4fdb-4fbc-8e0b-2c0914ab3575"}},{"type":"Message","id":"EID21a80654-5728-4532-91ed-61d618697fbb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID21a80654-5728-4532-91ed-61d618697fbb"}},{"type":"ServiceEndpoint","id":"EID5b080d3e-060e-497c-9c43-a44c6d6332b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"GetParameter","id":"EIDe7918102-3f42-4fc0-85f7-5dd2c8e9e246","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EID94273312-785e-40e1-94a0-2786ea0e3047","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID94273312-785e-40e1-94a0-2786ea0e3047"}},{"type":"GetParameter","id":"EID3b69d9b7-7488-429a-842d-39e38a711f06","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID47b35d58-7cc9-47ea-8576-e9bab142587d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID47b35d58-7cc9-47ea-8576-e9bab142587d"}},{"type":"GetParameter","id":"EID64776a13-733c-4471-9788-5389d69ccb85","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID5aaa17ad-a749-47af-9fd2-aa1f9f80e1ab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EID42eb0575-d217-46e9-902f-0dba8f97a83d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID42eb0575-d217-46e9-902f-0dba8f97a83d"}},{"type":"GetParameter","id":"EID706491b6-0863-4507-89ce-985f32f8fc28","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDffb9c62c-8132-4b13-994b-fb8193e9aee0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDedf134f6-7627-475b-a35e-6c618f7ff7e8","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDedf134f6-7627-475b-a35e-6c618f7ff7e8"}},{"type":"Message","id":"EIDaff91f9a-b793-4665-82f5-55c4668163fc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDaff91f9a-b793-4665-82f5-55c4668163fc"}},{"type":"Message","id":"EID782f12a6-76b6-41af-b27a-386867f485b0","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID782f12a6-76b6-41af-b27a-386867f485b0"}},{"type":"Message","id":"EIDb4c27eb6-8748-49bb-8b61-92db0f2f510b","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb4c27eb6-8748-49bb-8b61-92db0f2f510b"}},{"type":"Message","id":"EID4e96b986-1a2d-425e-868f-9a8f05951aa2","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID4e96b986-1a2d-425e-868f-9a8f05951aa2"}},{"type":"GetParameter","id":"EID09e3effd-e7b4-41d1-a7ff-8bf8c2ae1f1d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID33e129e1-37b1-40ed-b098-e81aeeb5b87f","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID33e129e1-37b1-40ed-b098-e81aeeb5b87f"}},{"type":"ServiceResponse","id":"EIDffdfbe4c-b303-47c1-a263-95380caacad9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDffdfbe4c-b303-47c1-a263-95380caacad9"}},{"type":"ServiceEndpoint","id":"EID191a12de-2f43-41cb-87d8-be597368a129","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID98f037e7-d313-42af-86e5-a76fa4971fd8","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID98f037e7-d313-42af-86e5-a76fa4971fd8"}},{"type":"GetParameter","id":"EIDf6e7821b-fab1-4e3c-9b82-4757abe9a9f2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"GetParameter","id":"EID08eba369-117b-4842-a5ba-9038dd3b2322","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID0fd12b7b-c0a0-444b-ab82-a17d76f7ea22","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDbd7ce5cf-16cb-414a-b2fb-f6b30d769843","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID642b55fb-08a6-4c04-beb4-d7a371e1e597","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID7864087b-ce0a-4eff-902a-ba2945a02eb6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4ad6632a-8fbb-41de-ab5c-eda00aaeb26a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDd3041c24-26be-462f-ae78-e997459e6068","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDd3041c24-26be-462f-ae78-e997459e6068"}},{"type":"Message","id":"EIDe61707f0-a791-498b-87ea-559dd04a2a95","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDe61707f0-a791-498b-87ea-559dd04a2a95"}},{"type":"GetParameter","id":"EID95fa54a8-a16b-49c8-b124-bc48ed697a30","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EID5e90c144-5e94-4919-998c-0af4cb74406f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID8aeb36af-5548-4d4b-a099-afe1e248cc8e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID8aeb36af-5548-4d4b-a099-afe1e248cc8e"}},{"type":"Message","id":"EID0fb4ba2e-27e6-4fb1-bd44-64030e0694dd","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID0fb4ba2e-27e6-4fb1-bd44-64030e0694dd"}},{"type":"ServiceResponse","id":"EID635dd3e8-bb61-4aaf-bcf2-9652f436db73","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID635dd3e8-bb61-4aaf-bcf2-9652f436db73"}},{"type":"Message","id":"EID9841bfee-b4f1-4b3e-b39b-1535883be034","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID9841bfee-b4f1-4b3e-b39b-1535883be034"}},{"type":"ServiceEndpoint","id":"EID7c416046-ce9b-4e63-8a3d-a82063685a0a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID75c1018b-975d-411c-a55f-4a3b561a8513","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID75c1018b-975d-411c-a55f-4a3b561a8513"}},{"type":"ServiceResponse","id":"EID7f4c0e00-3a3a-4041-94ff-fd30df2cf7c0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID7f4c0e00-3a3a-4041-94ff-fd30df2cf7c0"}},{"type":"ServiceEndpoint","id":"EIDc001ea18-06c0-4cac-a0ef-261dce0f9f7f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDce769f7d-b1bb-429b-9ff8-dbb1307bb715","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDce769f7d-b1bb-429b-9ff8-dbb1307bb715"}},{"type":"GetParameter","id":"EID0b61cc58-2e39-410f-84fe-670a92dff61c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EIDc730593d-89cf-4269-9778-ea667cffc751","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDc730593d-89cf-4269-9778-ea667cffc751"}},{"type":"ServiceResponse","id":"EIDde720835-7af5-41f8-ac90-707ae3e16a38","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDde720835-7af5-41f8-ac90-707ae3e16a38"}},{"type":"ServiceEndpoint","id":"EID7702666b-e19c-4bf6-a12d-479bbb74b26e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EIDcb16c7a5-c5a9-44f4-a432-cad7afe217b7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID138ec0c0-f69e-441a-833f-f49cd4ab0958","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID138ec0c0-f69e-441a-833f-f49cd4ab0958"}},{"type":"GetParameter","id":"EIDb7ea59d2-b88f-4d6f-9376-5d10c3799a3c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID204f5926-05f3-43d5-a93e-4671cb0ec3ea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID593d5afc-27fe-4d1f-b52b-fe57c1406757","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EID9c63ed1d-9fc9-4757-9d93-240889cdea4f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID6dee3499-f3b6-4ca2-b6ae-9e15b14bab6e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDfcadffc7-2856-4f2b-bfe8-a37a56f37518","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDfcadffc7-2856-4f2b-bfe8-a37a56f37518"}},{"type":"ServiceResponse","id":"EID3a600903-8c78-47a1-8b9b-fa069468d4b1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID3a600903-8c78-47a1-8b9b-fa069468d4b1"}},{"type":"Message","id":"EIDb55ac7b2-b929-4f15-b724-697a67d052de","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb55ac7b2-b929-4f15-b724-697a67d052de"}},{"type":"GetParameter","id":"EID25d0e9d1-1471-4c1e-862d-67ebcab0c03e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID0064a470-99c4-416b-978c-161a6721df51","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID0064a470-99c4-416b-978c-161a6721df51"}},{"type":"Message","id":"EIDb6c4b73a-1b2a-4a1f-9ef7-bdf2b33f4275","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb6c4b73a-1b2a-4a1f-9ef7-bdf2b33f4275"}},{"type":"GetParameter","id":"EID66352b31-63a1-4174-bbac-27333038f5dd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"GetParameter","id":"EID4d6126dd-673c-4fa3-a42a-ddeed1887aa6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDacdf9f9c-9af0-45cc-bf80-ced63d85ac32","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"GetParameter","id":"EIDb3614d11-81bd-41fb-b469-5a9cd3309edb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EID16c8d781-871f-4d05-a15f-830b304e62fb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDdb9a96f5-ff16-4f5b-ab18-f8f57ad5accc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID458e99c0-b354-4b42-9a52-57d9b45e535a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EIDd6c5178d-c59b-480e-a085-cbab3f3c3be1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID26906f4b-c26e-4834-8db8-740b115b9f2b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID26906f4b-c26e-4834-8db8-740b115b9f2b"}},{"type":"GetParameter","id":"EID1b2ce213-9317-4f26-83c4-ce98b13c3c7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EIDf5da114b-894e-412e-89bb-4aac50e24f84","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EIDfc8d9dcb-e7d1-4f6a-b9b6-35b211990a64","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDfc8d9dcb-e7d1-4f6a-b9b6-35b211990a64"}},{"type":"ServiceEndpoint","id":"EIDc3502f8c-c1e9-40b6-8493-b536ea59b2b8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID63cc388a-f353-4961-948e-133480d39667","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID63cc388a-f353-4961-948e-133480d39667"}},{"type":"GetParameter","id":"EID9a1f098f-93a2-4d20-be4f-233c08e6680d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID62ecd4e4-728f-4ed4-9534-7ea5aef5b2ed","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID62ecd4e4-728f-4ed4-9534-7ea5aef5b2ed"}},{"type":"Message","id":"EID0283594d-ee67-47d1-8768-c0725feb5d07","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID0283594d-ee67-47d1-8768-c0725feb5d07"}},{"type":"ServiceResponse","id":"EID5185fbe1-58a5-476d-813f-fc2139ca8f30","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID5185fbe1-58a5-476d-813f-fc2139ca8f30"}},{"type":"ServiceEndpoint","id":"EIDb85e6b1f-4ce1-4c99-98e9-4d60242c1179","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID41216437-8d60-47d3-a96f-8f18e0ea1e7f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID41216437-8d60-47d3-a96f-8f18e0ea1e7f"}},{"type":"GetParameter","id":"EIDeecb36cb-9452-48eb-a4a3-aa617c7c2b90","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID752510fa-f7ae-400c-bbca-07ffd477b553","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID752510fa-f7ae-400c-bbca-07ffd477b553"}},{"type":"GetParameter","id":"EIDbab73c58-1c6b-43ff-90d3-88ba330c38d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID314671f5-2e60-4e4e-ac8e-e1418fb62b8d","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID314671f5-2e60-4e4e-ac8e-e1418fb62b8d"}},{"type":"Message","id":"EIDb31a8759-575a-48cb-b4f0-c0b40e767fe5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb31a8759-575a-48cb-b4f0-c0b40e767fe5"}},{"type":"GetParameter","id":"EIDd90ed26c-d39d-4164-8b9c-ce34fedf9ff0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID9d0c20bb-d9c5-49e2-bb3a-dfb59f9a28fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDbc8d0275-93ab-4417-9799-b5bc7c9356f6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDbc8d0275-93ab-4417-9799-b5bc7c9356f6"}},{"type":"Message","id":"EID50cf04a3-6eec-4ac4-a018-05db95ac6879","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID50cf04a3-6eec-4ac4-a018-05db95ac6879"}},{"type":"Message","id":"EID80f71dad-0c92-40fc-ae35-41e3a93fa57c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID80f71dad-0c92-40fc-ae35-41e3a93fa57c"}},{"type":"GetParameter","id":"EID936dccf7-4f48-4eeb-b6d7-cb8e1060c22a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID53358522-d5d1-456a-993f-61b06b2b5c52","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID53358522-d5d1-456a-993f-61b06b2b5c52"}},{"type":"GetParameter","id":"EID25dee3b0-2c20-4320-9f5c-bf4f4c430a7b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID351c8fed-7d6f-43f3-a2fe-7032cd834d53","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID0dab45fe-d204-4fee-8f0a-be1a7fcd62a8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID4a392370-050f-4c92-8837-f627a12fb5f1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDb81cddf8-3daa-4725-9f1c-8513396f4d7a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb81cddf8-3daa-4725-9f1c-8513396f4d7a"}},{"type":"Message","id":"EID4d1bc073-66df-4a63-9091-c41fb64774ca","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID4d1bc073-66df-4a63-9091-c41fb64774ca"}},{"type":"ServiceEndpoint","id":"EID1a78b61e-b744-4bb9-a51f-31828e8e8623","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9kb3dubG9hZHMvSEhfTkxfTlVUUzIuZ3BrZy56aXA="},{"type":"Message","id":"EIDb08c5bf5-12c8-4f85-8544-468313b090b2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb08c5bf5-12c8-4f85-8544-468313b090b2"}},{"type":"ServiceEndpoint","id":"EIDa9ba76d6-f2f3-4969-80e2-86ad0892ebfe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID4608bf7e-9b98-4de5-bb12-a237bcc1dd51","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDcbedc394-900d-4dba-affc-7aaa872ce71d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID78a54589-8f85-4fdd-8fd9-1a4c62e6ad5b","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID78a54589-8f85-4fdd-8fd9-1a4c62e6ad5b"}},{"type":"ServiceEndpoint","id":"EIDfecbbb38-5310-4f37-9819-71c7c4af4596","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDba167495-3916-458f-a307-41e36f02095b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDba167495-3916-458f-a307-41e36f02095b"}},{"type":"ServiceEndpoint","id":"EID551ea63f-1c73-4eb9-b9b7-4fd6d7798dd6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EID91e1bb8c-36e3-4d6f-92fd-62fe3ca3f685","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID91e1bb8c-36e3-4d6f-92fd-62fe3ca3f685"}},{"type":"Message","id":"EID986c3ebb-df41-453f-95b5-5bf13fb85d5d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID986c3ebb-df41-453f-95b5-5bf13fb85d5d"}},{"type":"GetParameter","id":"EID95d16fe9-4c96-4bff-b73d-dbfa19f1edc0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDe1ee9bee-5c77-43c3-9d96-32584e72f451","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDe1ee9bee-5c77-43c3-9d96-32584e72f451"}},{"type":"ServiceResponse","id":"EIDbf68091d-876d-4dd0-9c72-e26da3e117f7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDbf68091d-876d-4dd0-9c72-e26da3e117f7"}},{"type":"GetParameter","id":"EID197c5d5f-e787-422d-8655-17c02a7d5e60","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EID8bbe26f9-80cf-4fa0-9462-15af84f5eaf1","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID8bbe26f9-80cf-4fa0-9462-15af84f5eaf1"}},{"type":"ServiceResponse","id":"EID71adb5a2-4a2a-4a13-a53a-ce3cd930172e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID71adb5a2-4a2a-4a13-a53a-ce3cd930172e"}},{"type":"ServiceEndpoint","id":"EIDe72f2974-7b43-4ea6-9cb5-a87c937a56c5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EID34a4d839-5db6-4b7c-9f11-5943298c1c26","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID34a4d839-5db6-4b7c-9f11-5943298c1c26"}},{"type":"ServiceResponse","id":"EID77f09619-46ed-411b-8d4e-707970dc0b78","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID77f09619-46ed-411b-8d4e-707970dc0b78"}},{"type":"ServiceResponse","id":"EID89b06af5-88a3-436c-bb8e-aa067a9dbdc1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID89b06af5-88a3-436c-bb8e-aa067a9dbdc1"}},{"type":"Message","id":"EID1146ab2e-a432-48bf-affc-2ddfbb8891e3","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID1146ab2e-a432-48bf-affc-2ddfbb8891e3"}},{"type":"ServiceResponse","id":"EID4772c026-6fc0-4822-945d-ad0bf3373e4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID4772c026-6fc0-4822-945d-ad0bf3373e4f"}},{"type":"ServiceResponse","id":"EID5f012ccd-3e00-471e-bc37-82e7cff9337a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID5f012ccd-3e00-471e-bc37-82e7cff9337a"}},{"type":"GetParameter","id":"EIDe44e7b8b-f9bc-4f22-b80e-fccdc6066213","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceEndpoint","id":"EIDba5dce0e-488d-4607-99c9-93624047fc5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDcf4f688d-1e68-40d2-9ad0-7d1c7de0163d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDcf4f688d-1e68-40d2-9ad0-7d1c7de0163d"}},{"type":"ServiceEndpoint","id":"EIDf59775ae-8f0f-40c4-bfc2-05e12306976a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EIDdea8f383-814f-4ec3-9a7c-44f321022db4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDabb26276-a48f-4f1b-83a4-b8b782344a12","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDca97deec-a4de-473a-83f9-393dbf2dd34d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID709c5b43-3876-480f-a806-6a69cb417e92","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9kb3dubG9hZHMvSEhfTkxfTlVUUzIuZ3BrZy56aXA="},{"type":"GetParameter","id":"EIDcf39499d-6365-4262-928b-4ed9d0f59c68","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDd3e446e2-8714-48db-954e-d6c1eb68c757","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDd3e446e2-8714-48db-954e-d6c1eb68c757"}},{"type":"ServiceEndpoint","id":"EIDc012d72e-98e3-4618-941c-0921771b99e0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDed6ce70c-93a1-41b5-b9d6-42dd88876794","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDed6ce70c-93a1-41b5-b9d6-42dd88876794"}},{"type":"ServiceResponse","id":"EIDdf245938-5858-40f9-9cfc-72637d3b61cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDdf245938-5858-40f9-9cfc-72637d3b61cf"}},{"type":"GetParameter","id":"EID8962128f-efdb-437f-a09d-8d6b72855ffe","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID18295351-fd72-4995-bdf9-492a51d4269e","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID18295351-fd72-4995-bdf9-492a51d4269e"}},{"type":"ServiceEndpoint","id":"EIDa25896d9-5962-4087-b7a3-1acdca750cd9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDe067ac74-8d59-4b0e-b99b-70ad79f5fc28","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDe067ac74-8d59-4b0e-b99b-70ad79f5fc28"}},{"type":"ServiceResponse","id":"EIDc15613b7-e28d-48af-a311-e0e8bf915633","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDc15613b7-e28d-48af-a311-e0e8bf915633"}},{"type":"GetParameter","id":"EIDde10a744-4c05-451e-918f-9f88ddd5051b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa0e370ba-f5f6-4e77-a624-62cac4c5a569","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDa0e370ba-f5f6-4e77-a624-62cac4c5a569"}},{"type":"ServiceResponse","id":"EID967f48d0-5377-4424-8a5f-a4b0843c5151","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID967f48d0-5377-4424-8a5f-a4b0843c5151"}},{"type":"ServiceEndpoint","id":"EIDb0c5c7ba-d32d-4e3b-baa8-bbc27ce6a6d0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"Message","id":"EIDc68dfad5-d311-4e2f-8774-cb6e79999693","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDc68dfad5-d311-4e2f-8774-cb6e79999693"}},{"type":"GetParameter","id":"EID0abceb5d-8b04-4c87-8c7d-1698bb51134f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDfa690940-a682-4220-b5a7-62737ad141dd","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDfa690940-a682-4220-b5a7-62737ad141dd"}},{"type":"GetParameter","id":"EID9a760865-9001-44f1-805f-c782ac53cab8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDea668053-41a4-4e39-a78e-4ea653f39373","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID29007f52-04ff-4dfc-8c69-940120e1f710","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9oaC54bWw="},{"type":"ServiceResponse","id":"EID32996ce0-70aa-4fb4-ad2a-ef20dd63c991","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID32996ce0-70aa-4fb4-ad2a-ef20dd63c991"}},{"type":"ServiceEndpoint","id":"EID9ba85728-9703-4678-abfd-e4189243b6b1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID61742db9-776f-4e21-858b-97a1700691cd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID8c9c2b6d-6249-4d43-b3c1-84f0d58817bf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID8c9c2b6d-6249-4d43-b3c1-84f0d58817bf"}},{"type":"Message","id":"EIDb4536193-65d2-4c7d-8ec4-b771cdd67173","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb4536193-65d2-4c7d-8ec4-b771cdd67173"}},{"type":"ServiceEndpoint","id":"EID8b4c870e-831a-4655-ae2b-8bd7bdfc6cde","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EIDd41499a5-2b03-484b-a466-dc77ac96f106","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDd41499a5-2b03-484b-a466-dc77ac96f106"}},{"type":"Message","id":"EID3706f3f3-bd83-4245-8294-dd24f1ed24af","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID3706f3f3-bd83-4245-8294-dd24f1ed24af"}},{"type":"ServiceResponse","id":"EID75d8928a-5537-4310-819a-c937d2dd444a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID75d8928a-5537-4310-819a-c937d2dd444a"}},{"type":"ServiceEndpoint","id":"EIDbac06a90-0f28-4fe9-bb55-d620201c5fe6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDb905a9b2-2ac8-4f0e-85a8-c85fce26f16a","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDb905a9b2-2ac8-4f0e-85a8-c85fce26f16a"}},{"type":"ServiceResponse","id":"EIDe2818b33-d387-4e4b-b92a-8c0a0e5e632a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDe2818b33-d387-4e4b-b92a-8c0a0e5e632a"}},{"type":"ServiceResponse","id":"EIDaca482d5-b4aa-489b-8630-b2d351b1ffd6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDaca482d5-b4aa-489b-8630-b2d351b1ffd6"}},{"type":"Message","id":"EID5ae5cbd7-0a3d-4644-b672-f48d794005a3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID5ae5cbd7-0a3d-4644-b672-f48d794005a3"}},{"type":"Message","id":"EID7ddafdc0-246f-4817-b8fc-5311c728ef2a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID7ddafdc0-246f-4817-b8fc-5311c728ef2a"}},{"type":"ServiceEndpoint","id":"EID52f2d08f-10de-4d7e-8568-2da6b0537a0e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDfedd8eba-c77a-465e-99d7-388e2f83e3d7","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EIDfedd8eba-c77a-465e-99d7-388e2f83e3d7"}},{"type":"LogFile","id":"EID56143384-30cc-4363-8e5e-2dfaed00ae5f","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID56143384-30cc-4363-8e5e-2dfaed00ae5f"}},{"type":"Message","id":"EID2cbed55d-53fb-4d31-a17c-9144eec50b18","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID2cbed55d-53fb-4d31-a17c-9144eec50b18"}},{"type":"ServiceEndpoint","id":"EID5468fb62-c908-4108-bf8b-49d3bcb74cf8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID5e1fb1be-118f-4e97-8221-64c00fa359d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL2hoL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID4a5344d1-974d-4e6d-9feb-187289a48230","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID4a5344d1-974d-4e6d-9feb-187289a48230"}},{"type":"GetParameter","id":"EIDc2e95fe3-f58e-4dd0-9cfb-d813de8dff83","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC81NDEyMjYzMS1kMzQzLTQwYmUtOWMyOC1lNDQ2MjZiMzdhMGUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID60cdfe66-60d1-4b93-801e-f19bd30322e8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID51ba7d3a-3f4d-46c3-8ee4-bab8cdf61c9a/Attachments/EID60cdfe66-60d1-4b93-801e-f19bd30322e8"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:14:13Z","duration":9673,"status":"FAILED"}}}}}
11:14:32.755 [print] EID80987e45-91b1-4a1e-ae6a-f743ba213f39
11:14:32.755 [print] FAILED
11:14:32.755 [print] FAILED
11:14:32.755 [print] Conformance Class Download Service - Pre-defined Atom
11:14:32.755 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/80987e45-91b1-4a1e-ae6a-f743ba213f39.json
11:14:32.756 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/80987e45-91b1-4a1e-ae6a-f743ba213f39.json
11:14:32.756 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID80987e45-91b1-4a1e-ae6a-f743ba213f39/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:32.779 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:14:32.780 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:18.001 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2016/wfs?request=GetCapabilities"}}}
11:12:18.001 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2016/wfs?request=GetCapabilities"}}}
11:12:19.675 response time in milliseconds: 1566.61
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:19 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883539503","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:19.675 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:03.134 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:09:03.134 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:03.553 response time in milliseconds: 418.05 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:03 GMT 1 < X-Cnection: [close, close]
11:09:03.574 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:03.986 response time in milliseconds: 411.81 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:03 GMT 1 < X-Cnection: [close, close]
11:09:03.989 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:36.486 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:09:36.487 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 295
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}}}
11:10:07.272 response time in milliseconds: 30021.48
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:06 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:10:03 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/e43cc173-1805-44cf-94f4-98c35f178b80.json","testRuns":{"TestRun":{"id":"EIDe43cc173-1805-44cf-94f4-98c35f178b80","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:09:56.676Z","testTasks":{"TestTask":{"id":"EID51ef3ef6-fefa-4542-8299-ed844bb38801","parent":{"ref":"EIDe43cc173-1805-44cf-94f4-98c35f178b80"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID0815b67f-b552-4897-8c3f-ce9a07e7f524"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID0815b67f-b552-4897-8c3f-ce9a07e7f524","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:37.526Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:09:38.898Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:10:07.275 [print] EIDe43cc173-1805-44cf-94f4-98c35f178b80
11:10:07.275 [print] UNDEFINED
11:10:07.275 [print] Conformance Class Download Service - Pre-defined Atom
11:10:07.275 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e43cc173-1805-44cf-94f4-98c35f178b80.json
11:10:07.298 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/log
11:10:07.299 [print] statuspath TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80
11:10:07.299 [print] progresspath TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
11:10:07.305 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:07.828 response time in milliseconds: 522.56
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:10:07 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"25","max":"26","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized"]}
11:10:07.829 [print] {
"val": "25",
"max": "26",
"log": [
"28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)",
"28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:09:56 - Preparing 1 Test Task:",
"28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)",
"28.10.2020 11:09:56 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:09:56 - with parameters: ",
"28.10.2020 11:09:56 - etf.testcases = *",
"28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:09:56 - Setting state to CREATED",
"28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z",
"28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:10:05 - Project Properties: ",
"28.10.2020 11:10:05 - etf.testcases - * ",
"28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ",
"28.10.2020 11:10:05 - username - ",
"28.10.2020 11:10:05 - authUser - ",
"28.10.2020 11:10:05 - authMethod - basic ",
"28.10.2020 11:10:05 - TestRunTask initialized"
]
}
11:10:07.830 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:08.346 response time in milliseconds: 515.47
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:10:08 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized"]}
11:10:08.353 retry condition not satisfied: response.val == response.max
11:10:08.353 sleeping before retry #1
11:10:13.354 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:13.879 response time in milliseconds: 524.29
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:10:13 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"78","max":"79","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized"]}
11:10:13.879 retry condition not satisfied: response.val == response.max
11:10:13.879 sleeping before retry #2
11:10:18.880 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:19.409 response time in milliseconds: 525.38
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:10:19 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"119","max":"120","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized","28.10.2020 11:10:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:19.409 retry condition not satisfied: response.val == response.max
11:10:19.409 sleeping before retry #3
11:10:24.410 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:24.921 response time in milliseconds: 510.75
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:10:24 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"164","max":"165","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized","28.10.2020 11:10:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:10:24.922 retry condition not satisfied: response.val == response.max
11:10:24.922 sleeping before retry #4
11:10:29.923 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:30.511 response time in milliseconds: 582.50
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:10:30 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:09:56 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:09:56 UTC 2020)","28.10.2020 11:09:56 - Resolving Executable Test Suite dependencies","28.10.2020 11:09:56 - Preparing 1 Test Task:","28.10.2020 11:09:56 - TestTask 1 (51ef3ef6-fefa-4542-8299-ed844bb38801)","28.10.2020 11:09:56 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:09:56 - with parameters: ","28.10.2020 11:09:56 - etf.testcases = *","28.10.2020 11:09:56 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:09:56 - Setting state to CREATED","28.10.2020 11:09:56 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:03 - Starting TestRun.e43cc173-1805-44cf-94f4-98c35f178b80 at 2020-10-28T11:10:05Z","28.10.2020 11:10:05 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:05 - Project Properties: ","28.10.2020 11:10:05 - etf.testcases - * ","28.10.2020 11:10:05 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml ","28.10.2020 11:10:05 - username - ","28.10.2020 11:10:05 - authUser - ","28.10.2020 11:10:05 - authMethod - basic ","28.10.2020 11:10:05 - TestRunTask initialized","28.10.2020 11:10:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:10:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:26 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:26 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:10:30.512 retry condition not satisfied: response.val == response.max
11:10:30.512 sleeping before retry #5
11:10:35.513 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:37.520 response time in milliseconds: 2007.13
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:10:37 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:10:37.521 retry condition satisfied
11:10:37.521 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:10:37.522 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:53.790 response time in milliseconds: 15207.96
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Cache-Control: public, max-age=120
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:10:52 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Last-Modified: Wed, 28 Oct 2020 11:10:37 GMT
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/e43cc173-1805-44cf-94f4-98c35f178b80.json","testRuns":{"TestRun":{"id":"EIDe43cc173-1805-44cf-94f4-98c35f178b80","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:09:56.676Z","testTasks":{"TestTask":{"id":"EID51ef3ef6-fefa-4542-8299-ed844bb38801","parent":{"ref":"EIDe43cc173-1805-44cf-94f4-98c35f178b80"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID0815b67f-b552-4897-8c3f-ce9a07e7f524"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID84ce8428-9126-44cb-b018-55529a525833"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID0815b67f-b552-4897-8c3f-ce9a07e7f524","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:37.526Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:09:38.898Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID84ce8428-9126-44cb-b018-55529a525833","testObject":{"ref":"EID0815b67f-b552-4897-8c3f-ce9a07e7f524"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee68f1e-0175-1000-fe31-7cf3fbd7387d","testCaseResults":{"TestCaseResult":[{"id":"EID6ee68f1e-0175-1000-5fd4-a3cd200ff90b","testStepResults":{"TestStepResult":[{"id":"EID6ee68f22-0175-1000-8432-19185d12b767","parent":{"ref":"EID6ee68f1e-0175-1000-5fd4-a3cd200ff90b"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:10:05Z","duration":20,"status":"PASSED"},{"id":"EID6ee68f37-0175-1000-8315-372795219364","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee69028-0175-1000-4b77-05e241d9c854","parent":{"ref":"EID6ee68f37-0175-1000-8315-372795219364"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee69028-0175-1000-33a3-d63b71a34c2f","parent":{"ref":"EID6ee68f37-0175-1000-8315-372795219364"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee69028-0175-1000-6007-1fd6a20ca315","parent":{"ref":"EID6ee68f37-0175-1000-8315-372795219364"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee69028-0175-1000-e19d-9e92a673a54c","parent":{"ref":"EID6ee68f37-0175-1000-8315-372795219364"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9893c7c7-86e2-4bae-a089-2e43d8df162c"},{"ref":"EIDc3f257cb-e3be-4452-acfc-44bc02dcff7f"},{"ref":"EID833a71ab-f9e3-4831-9716-ded456f3ae9e"}]},"parent":{"ref":"EID6ee68f1e-0175-1000-5fd4-a3cd200ff90b"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:10:05Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID6ee68f1e-0175-1000-fe31-7cf3fbd7387d"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:10:05Z","duration":267,"status":"PASSED"},{"id":"EID6ee69029-0175-1000-9ff6-96ed4016c631","testStepResults":{"TestStepResult":{"id":"EID6ee69029-0175-1000-9551-53b1ba6c54ac","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee69123-0175-1000-8a6a-2c5c8e4cc22c","parent":{"ref":"EID6ee69029-0175-1000-9551-53b1ba6c54ac"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee69123-0175-1000-377e-0300914b4b37","parent":{"ref":"EID6ee69029-0175-1000-9551-53b1ba6c54ac"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee69123-0175-1000-5f2f-f9bd4444f50c","parent":{"ref":"EID6ee69029-0175-1000-9551-53b1ba6c54ac"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID84fcb18d-3748-416e-a9a7-9a774f874718"},{"ref":"EIDf94bd930-eae1-43a2-bf13-a9a3f5dcae6b"},{"ref":"EID6d608345-66bb-4de2-8dff-e63d9c5962f3"}]},"parent":{"ref":"EID6ee69029-0175-1000-9ff6-96ed4016c631"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:10:05Z","duration":128,"status":"PASSED"}},"parent":{"ref":"EID6ee68f1e-0175-1000-fe31-7cf3fbd7387d"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:10:05Z","duration":250,"status":"PASSED"}]},"parent":{"ref":"EID84ce8428-9126-44cb-b018-55529a525833"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:10:05Z","duration":517,"status":"PASSED"},{"id":"EID6ee69123-0175-1000-3643-730545eac5f0","testCaseResults":{"TestCaseResult":[{"id":"EID6ee69123-0175-1000-6d35-154cce01fa18","testStepResults":{"TestStepResult":[{"id":"EID6ee69123-0175-1000-fb4d-d1d12486cd55","parent":{"ref":"EID6ee69123-0175-1000-6d35-154cce01fa18"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:10:05Z","duration":128,"status":"PASSED"},{"id":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee691e5-0175-1000-e269-56bb74d0c70b","parent":{"ref":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee691e5-0175-1000-9fd2-461e65110688","parent":{"ref":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee691e5-0175-1000-d941-cb526c77fdba","parent":{"ref":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee691e5-0175-1000-b28a-a7b7dde15036","parent":{"ref":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee691e5-0175-1000-04dd-2f8f4bd84336","parent":{"ref":"EID6ee69124-0175-1000-3ac0-a78fbeedd1e2"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:10:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5b65c77d-f142-4088-95d4-1389cd49de3b"},{"ref":"EIDf44247af-8d9e-444c-96d2-c8e5258f9578"},{"ref":"EID1c1905cd-0402-4942-8ac8-a294fead2373"}]},"parent":{"ref":"EID6ee69123-0175-1000-6d35-154cce01fa18"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:10:05Z","duration":85,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:10:05Z","duration":202,"status":"PASSED"},{"id":"EID6ee691ed-0175-1000-9463-059cc9b77dee","testStepResults":{"TestStepResult":[{"id":"EID6ee691ed-0175-1000-a69f-ed48adee10de","attachments":{"attachment":[{"ref":"EID5d4e271f-56b3-4c0e-8193-aab1e2d52959"},{"ref":"EID73eef5ee-f1e4-415c-9a98-3a341d563272"}]},"parent":{"ref":"EID6ee691ed-0175-1000-9463-059cc9b77dee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:10:05Z","duration":223,"status":"PASSED"},{"id":"EID6ee692f6-0175-1000-6668-be1b15b4a68b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6949e-0175-1000-a49c-4eee7cc1ca49","parent":{"ref":"EID6ee692f6-0175-1000-6668-be1b15b4a68b"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:10:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee6949e-0175-1000-5ff8-0c67b9dae602","parent":{"ref":"EID6ee692f6-0175-1000-6668-be1b15b4a68b"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:10:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee6949e-0175-1000-26d6-2d6eaa72061e","parent":{"ref":"EID6ee692f6-0175-1000-6668-be1b15b4a68b"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:10:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee6949e-0175-1000-bfc9-e9b1aa9e2aeb","parent":{"ref":"EID6ee692f6-0175-1000-6668-be1b15b4a68b"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:10:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID74c2f54d-f7ef-44f7-8739-925ae04bec09"},{"ref":"EID46f94c1c-2062-4413-995e-5c7dbbd64f24"},{"ref":"EID52fb5cb5-bc79-41f8-aba3-326aa9b7ec1a"}]},"parent":{"ref":"EID6ee691ed-0175-1000-9463-059cc9b77dee"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:10:06Z","duration":289,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:10:05Z","duration":689,"status":"PASSED"},{"id":"EID6ee6949e-0175-1000-783f-097bcf1f0142","testStepResults":{"TestStepResult":[{"id":"EID6ee6949e-0175-1000-efd6-6b734e75d83f","attachments":{"attachment":[{"ref":"EIDa2c7b011-4e39-4c50-9bd9-efb7136ea874"},{"ref":"EID60d93d58-373b-4b97-a444-64ef10e2e3a8"}]},"parent":{"ref":"EID6ee6949e-0175-1000-783f-097bcf1f0142"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:10:06Z","duration":421,"status":"PASSED"},{"id":"EID6ee69665-0175-1000-05be-03f08b77a039","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee697a2-0175-1000-2ace-330a41403f63","parent":{"ref":"EID6ee69665-0175-1000-05be-03f08b77a039"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee697a2-0175-1000-e2da-698f20caa2c5","parent":{"ref":"EID6ee69665-0175-1000-05be-03f08b77a039"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee697a2-0175-1000-8302-c2870cd53665","parent":{"ref":"EID6ee69665-0175-1000-05be-03f08b77a039"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee697a2-0175-1000-91d6-c5ef0884edd3","parent":{"ref":"EID6ee69665-0175-1000-05be-03f08b77a039"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee697a2-0175-1000-afbe-cac640354e84","parent":{"ref":"EID6ee69665-0175-1000-05be-03f08b77a039"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID213ee1b5-9bd6-42a8-af4c-a2f4b294426d"},{"ref":"EIDbf3c8a43-cf3d-4c01-95a5-7e9af93b3433"},{"ref":"EIDd0e407a6-304e-457a-9ab9-b5ba16d98a5c"}]},"parent":{"ref":"EID6ee6949e-0175-1000-783f-097bcf1f0142"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:10:06Z","duration":228,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:10:06Z","duration":772,"status":"PASSED"},{"id":"EID6ee697a2-0175-1000-0775-b1b190300f97","testStepResults":{"TestStepResult":[{"id":"EID6ee697a2-0175-1000-2c8c-c6be39976ef5","attachments":{"attachment":[{"ref":"EIDe09038ec-a321-49b4-8c42-499cfdc25f74"},{"ref":"EID8d7dd114-a64e-49e2-af3b-2ef6cadeb207"}]},"parent":{"ref":"EID6ee697a2-0175-1000-0775-b1b190300f97"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:10:07Z","duration":95,"status":"PASSED"},{"id":"EID6ee69836-0175-1000-9080-cffd1a9261f5","parent":{"ref":"EID6ee697a2-0175-1000-0775-b1b190300f97"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee69837-0175-1000-3efb-781a536ed7e4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6992b-0175-1000-a3bd-af23c4c46f22","parent":{"ref":"EID6ee69837-0175-1000-3efb-781a536ed7e4"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee6992b-0175-1000-7855-19097d9fd1b8","parent":{"ref":"EID6ee69837-0175-1000-3efb-781a536ed7e4"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee6992b-0175-1000-fd83-80a3d5257c8b","parent":{"ref":"EID6ee69837-0175-1000-3efb-781a536ed7e4"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee6992b-0175-1000-6ab7-5751b2b98c9b","parent":{"ref":"EID6ee69837-0175-1000-3efb-781a536ed7e4"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:10:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID40af82f5-4f08-4096-89e1-a3f54d9bf1de"},{"ref":"EIDb1cbfd29-83b3-4eeb-b7e7-7fd173768c70"},{"ref":"EID75d1ec4e-59f1-47c8-b401-db558f80b675"}]},"parent":{"ref":"EID6ee697a2-0175-1000-0775-b1b190300f97"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:10:07Z","duration":77,"status":"PASSED"},{"id":"EID6ee6992b-0175-1000-0ddf-dc56b4535ff5","attachments":{"attachment":{"ref":"EIDae2dd7d9-2943-457b-8722-8dbc4bc9ec3e"}},"parent":{"ref":"EID6ee697a2-0175-1000-0775-b1b190300f97"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:10:07Z","duration":1,"status":"PASSED"},{"id":"EID6ee69939-0175-1000-0947-6caa016ff439","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee69ab3-0175-1000-a668-02e1cbe802e5","parent":{"ref":"EID6ee69939-0175-1000-0947-6caa016ff439"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69ab3-0175-1000-9b1e-e848e4f87bc7","parent":{"ref":"EID6ee69939-0175-1000-0947-6caa016ff439"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69ab3-0175-1000-84b7-5370b6013841","parent":{"ref":"EID6ee69939-0175-1000-0947-6caa016ff439"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69ab3-0175-1000-2d42-fdba7f992646","parent":{"ref":"EID6ee69939-0175-1000-0947-6caa016ff439"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69ab3-0175-1000-5972-e8a5c1bdc836","parent":{"ref":"EID6ee69939-0175-1000-0947-6caa016ff439"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa90356fa-4254-4e8f-af40-c9ad930c2cd5"},{"ref":"EID576286be-f12d-46b3-85b3-23c4537e4660"},{"ref":"EID736c5623-95d8-4ec2-bbb6-ffc5de88e131"}]},"parent":{"ref":"EID6ee697a2-0175-1000-0775-b1b190300f97"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:10:07Z","duration":209,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:10:07Z","duration":786,"status":"PASSED"},{"id":"EID6ee69ab4-0175-1000-02c1-6cf199e94f08","testStepResults":{"TestStepResult":[{"id":"EID6ee69ab4-0175-1000-fcb5-90ce2e24d65c","attachments":{"attachment":[{"ref":"EID6ac4a694-e50c-4806-8ec6-ef0aa44c6de8"},{"ref":"EID58b62b18-5c94-4bec-9428-ad6597ef979a"}]},"parent":{"ref":"EID6ee69ab4-0175-1000-02c1-6cf199e94f08"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:10:08Z","duration":163,"status":"PASSED"},{"id":"EID6ee69ba0-0175-1000-f02b-57a47337f673","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee69c53-0175-1000-cf46-95553c9b0618","parent":{"ref":"EID6ee69ba0-0175-1000-f02b-57a47337f673"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69c53-0175-1000-ba57-97d2dc839704","parent":{"ref":"EID6ee69ba0-0175-1000-f02b-57a47337f673"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69c53-0175-1000-b731-057aa05b0142","parent":{"ref":"EID6ee69ba0-0175-1000-f02b-57a47337f673"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee69c53-0175-1000-2cdb-6ba873abc696","parent":{"ref":"EID6ee69ba0-0175-1000-f02b-57a47337f673"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:10:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID351962d7-a366-4011-b87c-69692c6364f0"},{"ref":"EID3c399219-5cea-4bce-9f22-782876123a17"},{"ref":"EIDbfe2b751-47f3-43a7-8d79-bb1d023ba36b"}]},"parent":{"ref":"EID6ee69ab4-0175-1000-02c1-6cf199e94f08"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:10:08Z","duration":97,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:10:08Z","duration":415,"status":"PASSED"},{"id":"EID6ee69c54-0175-1000-8d78-7847ff9d4507","testStepResults":{"TestStepResult":[{"id":"EID6ee69c54-0175-1000-7441-8a85504527e4","attachments":{"attachment":[{"ref":"EIDe64ea7f0-12de-4b0d-86ce-729c05049b6f"},{"ref":"EID2c3a673b-89be-483b-8c53-fd907905abe6"}]},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:10:08Z","duration":574,"status":"PASSED"},{"id":"EID6ee69eba-0175-1000-3d03-79bd7f75590f","parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee69eba-0175-1000-77f4-f75902fc704c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee69fa2-0175-1000-bfa3-174b5b28d4e1","parent":{"ref":"EID6ee69eba-0175-1000-77f4-f75902fc704c"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee69fa2-0175-1000-2956-243663fd85d5","parent":{"ref":"EID6ee69eba-0175-1000-77f4-f75902fc704c"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee69fa2-0175-1000-c8a2-3f88a526d786","parent":{"ref":"EID6ee69eba-0175-1000-77f4-f75902fc704c"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee69fa2-0175-1000-85c6-3b1f909ff973","parent":{"ref":"EID6ee69eba-0175-1000-77f4-f75902fc704c"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID70cb840f-8857-4801-b115-e1cd52b7daad"},{"ref":"EIDb9a7a734-1e61-4b76-9e49-237aa7b162d0"},{"ref":"EID4f914f34-b1bf-4ce1-af56-88def27ed2dd"}]},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:10:09Z","duration":107,"status":"PASSED"},{"id":"EID6ee69fa2-0175-1000-6bbe-e91fb90cd56c","attachments":{"attachment":{"ref":"EIDfaca066f-b896-4041-a338-b7e5aa2f7d51"}},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:10:09Z","duration":2,"status":"PASSED"},{"id":"EID6ee69fb3-0175-1000-f9dd-a02664ea6189","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6a095-0175-1000-c71a-3508f58fe08d","parent":{"ref":"EID6ee69fb3-0175-1000-f9dd-a02664ea6189"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a095-0175-1000-d9c0-00b6369258ae","parent":{"ref":"EID6ee69fb3-0175-1000-f9dd-a02664ea6189"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a095-0175-1000-75cb-fff9c8efced0","parent":{"ref":"EID6ee69fb3-0175-1000-f9dd-a02664ea6189"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:10:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID707d52cb-b00b-4253-ac80-b7db750f9207"},{"ref":"EID1b852fe3-36e9-4300-9a8d-348265a385fe"},{"ref":"EIDee932b24-aaad-4e89-b9cf-32905e20e2cc"}]},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:10:09Z","duration":163,"status":"PASSED"},{"id":"EID6ee6a095-0175-1000-3ed1-842d253724b3","attachments":{"attachment":{"ref":"EIDb4131f45-8fc9-419c-94f6-8fd07029246c"}},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:10:09Z","duration":1,"status":"PASSED"},{"id":"EID6ee6a0da-0175-1000-da99-971d550be2af","attachments":{"attachment":{"ref":"EID374ccb8a-abe5-4835-bc50-0098c06bf9e9"}},"parent":{"ref":"EID6ee69c54-0175-1000-8d78-7847ff9d4507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:10:09Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:10:08Z","duration":1188,"status":"PASSED"},{"id":"EID6ee6a0f8-0175-1000-2335-f1adc2f149e5","testStepResults":{"TestStepResult":[{"id":"EID6ee6a100-0175-1000-9e16-84033786da19","attachments":{"attachment":[{"ref":"EID180a1288-2e15-4941-b500-2a1fa544c2ba"},{"ref":"EID57f0cfda-b400-4570-9c3f-56f5ade3a172"}]},"parent":{"ref":"EID6ee6a0f8-0175-1000-2335-f1adc2f149e5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:10:09Z","duration":240,"status":"PASSED"},{"id":"EID6ee6a23c-0175-1000-70bb-df3479318e8f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6a4ee-0175-1000-b471-a3d6c0e28799","parent":{"ref":"EID6ee6a23c-0175-1000-70bb-df3479318e8f"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a4ee-0175-1000-a863-3de8f48e32c2","parent":{"ref":"EID6ee6a23c-0175-1000-70bb-df3479318e8f"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a4ee-0175-1000-049f-fdd5e95959b6","parent":{"ref":"EID6ee6a23c-0175-1000-70bb-df3479318e8f"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a4ee-0175-1000-1acf-d7b726c56057","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6a23c-0175-1000-70bb-df3479318e8f"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID82702551-6e06-482e-a9af-a4a67ab71b3a"},{"ref":"EID9ba20920-c075-4c3b-b31a-812dbde63cf9"},{"ref":"EIDe176245a-0e6e-4ecc-8b0d-bede5588aed4"}]},"parent":{"ref":"EID6ee6a0f8-0175-1000-2335-f1adc2f149e5"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:10:09Z","duration":522,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:10:09Z","duration":1022,"status":"PASSED_MANUAL"},{"id":"EID6ee6a4f6-0175-1000-2fba-0cfe0dbe749d","testStepResults":{"TestStepResult":{"id":"EID6ee6a4f6-0175-1000-85ed-921f6d281734","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6a577-0175-1000-c377-7105481341fd","parent":{"ref":"EID6ee6a4f6-0175-1000-85ed-921f6d281734"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a577-0175-1000-8a15-8a4a031119cf","parent":{"ref":"EID6ee6a4f6-0175-1000-85ed-921f6d281734"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a577-0175-1000-5100-3a8b890b9b32","parent":{"ref":"EID6ee6a4f6-0175-1000-85ed-921f6d281734"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a577-0175-1000-5660-5e5cc03f9df0","parent":{"ref":"EID6ee6a4f6-0175-1000-85ed-921f6d281734"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:10:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1f1f872d-f5c6-4270-b485-81664d4125a1"},{"ref":"EID4e5a4784-33ee-4916-8d41-11811211c8a8"},{"ref":"EID36da9143-36af-40eb-b801-a5b6d83aaca1"}]},"parent":{"ref":"EID6ee6a4f6-0175-1000-2fba-0cfe0dbe749d"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:10:10Z","duration":37,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:10:10Z","duration":130,"status":"PASSED"},{"id":"EID6ee6a578-0175-1000-e10a-46944fa7f1a5","testStepResults":{"TestStepResult":{"id":"EID6ee6a578-0175-1000-49c3-3810e225c5ba","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6a65b-0175-1000-32ac-5d307c9f1971","parent":{"ref":"EID6ee6a578-0175-1000-49c3-3810e225c5ba"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a65b-0175-1000-0a5a-6c8131b724eb","parent":{"ref":"EID6ee6a578-0175-1000-49c3-3810e225c5ba"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a65b-0175-1000-32b8-077baec79a4a","parent":{"ref":"EID6ee6a578-0175-1000-49c3-3810e225c5ba"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a65b-0175-1000-c71d-c545ad43d662","parent":{"ref":"EID6ee6a578-0175-1000-49c3-3810e225c5ba"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfe4848ff-707f-42f5-9d6f-2af6fffc296c"},{"ref":"EIDea687426-3c1d-4d00-9139-fa472f7ce2c6"},{"ref":"EIDd04ec425-71b5-4122-8779-56dc901b6267"}]},"parent":{"ref":"EID6ee6a578-0175-1000-e10a-46944fa7f1a5"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:10:10Z","duration":93,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:10:10Z","duration":228,"status":"PASSED"},{"id":"EID6ee6a65c-0175-1000-7106-50cd5e4aaa9a","testStepResults":{"TestStepResult":[{"id":"EID6ee6a664-0175-1000-5767-c6c02bb0e5e1","attachments":{"attachment":[{"ref":"EIDad9d0df8-88e1-4c2a-bee0-b6b3b19a3dbd"},{"ref":"EID48e67dcb-70ab-4fa4-8f1f-42ee913e2bbd"},{"ref":"EID7fc494e8-66ca-4b81-9708-a27c683579d7"},{"ref":"EID0305a9db-0543-46ae-b93a-019f88dfabc9"},{"ref":"EID095d764d-0a81-4b10-9bde-17dcf1742547"},{"ref":"EID9985bdea-9ede-466b-a306-28f8fc88651e"},{"ref":"EID809112ad-c4c6-42a7-864e-279a5eb57314"},{"ref":"EIDff4ce69a-df2e-487d-ae88-8f59b6d26e30"},{"ref":"EID96410e12-24f8-4958-b532-381c3f7db4ef"},{"ref":"EIDb06dfaf1-5087-4ab1-b7f6-7eaddcea892c"},{"ref":"EID9be49223-6629-4ceb-83b1-59f0d0aa5a81"},{"ref":"EID2eb742e0-ddd7-4074-b5c3-00228bcadbc7"}]},"parent":{"ref":"EID6ee6a65c-0175-1000-7106-50cd5e4aaa9a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:10:11Z","duration":423,"status":"PASSED"},{"id":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6a963-0175-1000-a87a-87b66c271214","parent":{"ref":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a963-0175-1000-5c04-4ef9473da78d","parent":{"ref":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a963-0175-1000-28c1-ee212f5d2ad2","parent":{"ref":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a963-0175-1000-1777-1dfcba6b1e70","parent":{"ref":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6a963-0175-1000-7c3c-65444e338fa1","parent":{"ref":"EID6ee6a8b7-0175-1000-c732-e7297c6938ec"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID18ef28c9-d517-4d51-b6f4-2b9451b81c46"},{"ref":"EIDee9380d4-b8a8-45ad-8a20-28e805ab4f63"},{"ref":"EID7439f2cd-ec95-4f2a-9db8-49735f39390f"}]},"parent":{"ref":"EID6ee6a65c-0175-1000-7106-50cd5e4aaa9a"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:10:11Z","duration":44,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:10:11Z","duration":776,"status":"PASSED"},{"id":"EID6ee6a964-0175-1000-104d-717f29559752","testStepResults":{"TestStepResult":{"id":"EID6ee6a964-0175-1000-ea70-610008aa927f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6aa10-0175-1000-8c63-13cb1b8c081e","parent":{"ref":"EID6ee6a964-0175-1000-ea70-610008aa927f"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6aa11-0175-1000-65e6-4264c895c2df","parent":{"ref":"EID6ee6a964-0175-1000-ea70-610008aa927f"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6aa11-0175-1000-9c1a-04dd1ac04f91","parent":{"ref":"EID6ee6a964-0175-1000-ea70-610008aa927f"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee6aa11-0175-1000-5c83-718c590a64f1","parent":{"ref":"EID6ee6a964-0175-1000-ea70-610008aa927f"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:10:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa35d3f47-b22a-4870-980b-5e7de5b31c11"},{"ref":"EIDd1dcfe81-18d0-409e-89d1-7f737216bcb7"},{"ref":"EIDbf61b063-2fdd-4e66-8d8f-58986992f1c7"}]},"parent":{"ref":"EID6ee6a964-0175-1000-104d-717f29559752"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:10:11Z","duration":54,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:10:11Z","duration":173,"status":"PASSED"},{"id":"EID6ee6aa11-0175-1000-de3a-5a5c493ec821","testStepResults":{"TestStepResult":{"id":"EID6ee6aa11-0175-1000-589c-c0a2aea79926","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6abb3-0175-1000-7fdb-aac6fa91a51a","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-d963-6c4821baf7f3","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-729d-77ed341a7e0a","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-3fb1-4d1ac22ca5d4","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-2dd7-4ca1a32eac5f","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-9f6e-0e8dd24a2393","parent":{"ref":"EID6ee6aa11-0175-1000-589c-c0a2aea79926"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf2f9d3dc-c275-456c-9fcb-e56b4ec06fda"},{"ref":"EIDea294a03-fafb-49b3-ab0e-8061e45afb72"},{"ref":"EID0af33f4f-4e6d-4607-8f8f-3780a3b31b10"}]},"parent":{"ref":"EID6ee6aa11-0175-1000-de3a-5a5c493ec821"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:10:11Z","duration":114,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:10:11Z","duration":418,"status":"PASSED"},{"id":"EID6ee6abb3-0175-1000-24c0-81aecfe95f4e","testStepResults":{"TestStepResult":{"id":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ad05-0175-1000-a71a-de09d9b089f5","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ad05-0175-1000-bb5c-4d068441c6a5","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ad05-0175-1000-d2ea-8645fa980fc3","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ad05-0175-1000-56ad-c612dfc968ec","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ad05-0175-1000-f778-ef4c2ba0d317","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ad05-0175-1000-a62a-6a3479305b40","parent":{"ref":"EID6ee6abb3-0175-1000-2f10-7efd99375ec9"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:10:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDebc56fd1-f7ca-4d75-a332-c91c98f939cb"},{"ref":"EIDf898286b-a9a2-4d49-b3fa-491ff3e1d139"},{"ref":"EID6832ab57-071d-4914-ad44-bb96c0920687"}]},"parent":{"ref":"EID6ee6abb3-0175-1000-24c0-81aecfe95f4e"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:10:12Z","duration":198,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:10:12Z","duration":345,"status":"PASSED"},{"id":"EID6ee6ad0c-0175-1000-a387-c84b33878a27","testStepResults":{"TestStepResult":{"id":"EID6ee6ad0c-0175-1000-fd46-6932eb80f4a4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ae0b-0175-1000-1d74-0febf6b17e23","parent":{"ref":"EID6ee6ad0c-0175-1000-fd46-6932eb80f4a4"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae0b-0175-1000-867c-5ce8a47f9b3e","parent":{"ref":"EID6ee6ad0c-0175-1000-fd46-6932eb80f4a4"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae0b-0175-1000-3358-c8ca37039899","parent":{"ref":"EID6ee6ad0c-0175-1000-fd46-6932eb80f4a4"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae0b-0175-1000-3815-d4cc4fe52a5f","parent":{"ref":"EID6ee6ad0c-0175-1000-fd46-6932eb80f4a4"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID065c2bd3-d31c-466e-976a-3e0931a38e41"},{"ref":"EID3383db0d-cf4a-452e-95ec-d964be7ca773"},{"ref":"EID8dbb2937-57fd-4844-ad8b-098593bab28e"}]},"parent":{"ref":"EID6ee6ad0c-0175-1000-a387-c84b33878a27"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:10:12Z","duration":139,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:10:12Z","duration":256,"status":"PASSED"},{"id":"EID6ee6ae0c-0175-1000-de44-0120e852631a","testStepResults":{"TestStepResult":[{"id":"EID6ee6ae0c-0175-1000-4ab8-86cc06cb34c0","attachments":{"attachment":[{"ref":"EID63b36290-a1f3-4be3-a738-89d7c71fcef3"},{"ref":"EID71cd4980-af8c-4e7c-b58b-eb8499fa195e"},{"ref":"EIDde27bee5-0390-4b81-9c04-1044b81ca66d"},{"ref":"EID5ed2e313-71a7-4fb1-bdae-989b219c58a4"}]},"parent":{"ref":"EID6ee6ae0c-0175-1000-de44-0120e852631a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:10:13Z","duration":395,"status":"PASSED"},{"id":"EID6ee6b001-0175-1000-c588-21c487dfdd1e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b4d1-0175-1000-6e55-395ea223a70e","parent":{"ref":"EID6ee6b001-0175-1000-c588-21c487dfdd1e"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4d1-0175-1000-215e-b8545d464c24","parent":{"ref":"EID6ee6b001-0175-1000-c588-21c487dfdd1e"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4d1-0175-1000-7e52-bad9e4a98ea9","parent":{"ref":"EID6ee6b001-0175-1000-c588-21c487dfdd1e"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4d1-0175-1000-1db1-30ae6f7d6a1d","parent":{"ref":"EID6ee6b001-0175-1000-c588-21c487dfdd1e"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdc61a8fb-0700-4d69-90b8-e91b04f1ec98"},{"ref":"EID2d5b85ef-3f04-4bb8-a7c8-5a8fd7a1b233"},{"ref":"EIDbd35649d-0759-4020-9ec5-40c22b537ad9"}]},"parent":{"ref":"EID6ee6ae0c-0175-1000-de44-0120e852631a"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:10:13Z","duration":1091,"status":"PASSED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:10:13Z","duration":1747,"status":"PASSED"},{"id":"EID6ee6b4e4-0175-1000-f8a0-7a02e35108a7","testStepResults":{"TestStepResult":{"id":"EID6ee6b4e4-0175-1000-b22f-31a52b99960a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b5d7-0175-1000-d201-93e36f189d1e","parent":{"ref":"EID6ee6b4e4-0175-1000-b22f-31a52b99960a"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b5d7-0175-1000-e321-90f102baeae3","parent":{"ref":"EID6ee6b4e4-0175-1000-b22f-31a52b99960a"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b5d7-0175-1000-559a-6adf187e8aa2","parent":{"ref":"EID6ee6b4e4-0175-1000-b22f-31a52b99960a"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b5d7-0175-1000-b1e4-12658b9c60bb","parent":{"ref":"EID6ee6b4e4-0175-1000-b22f-31a52b99960a"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID661b2a5a-68df-4c03-8043-e499482c2157"},{"ref":"EIDe2fbd3ff-4ba4-443e-956c-ddfbc0b6a2b9"},{"ref":"EID5c3a015b-219f-4434-abe8-400b2df0b807"}]},"parent":{"ref":"EID6ee6b4e4-0175-1000-f8a0-7a02e35108a7"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:10:14Z","duration":126,"status":"PASSED"}},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:10:14Z","duration":244,"status":"PASSED"},{"id":"EID6ee6b5d8-0175-1000-cbd8-1b094800c60c","testStepResults":{"TestStepResult":[{"id":"EID6ee6b5d8-0175-1000-4bdf-666848915c20","parent":{"ref":"EID6ee6b5d8-0175-1000-cbd8-1b094800c60c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b5e3-0175-1000-7e6a-5fb37036b27d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b830-0175-1000-9680-1b9e06c24fc7","parent":{"ref":"EID6ee6b5e3-0175-1000-7e6a-5fb37036b27d"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:10:15Z","duration":1,"status":"PASSED"},{"id":"EID6ee6b831-0175-1000-f97d-be45697fd5a2","parent":{"ref":"EID6ee6b5e3-0175-1000-7e6a-5fb37036b27d"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b831-0175-1000-553e-77e4b55f5469","parent":{"ref":"EID6ee6b5e3-0175-1000-7e6a-5fb37036b27d"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b831-0175-1000-deed-0a4ff5330c38","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee6b5e3-0175-1000-7e6a-5fb37036b27d"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID65d64253-041c-43e2-99d7-7514dc0c9af4"},{"ref":"EIDabe13f3e-478c-44cc-ba4d-fe69ffe07861"},{"ref":"EID65822b91-0738-40fb-9e88-21a9f55ffa04"}]},"parent":{"ref":"EID6ee6b5d8-0175-1000-cbd8-1b094800c60c"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:10:15Z","duration":473,"status":"FAILED"}]},"parent":{"ref":"EID6ee69123-0175-1000-3643-730545eac5f0"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:10:15Z","duration":601,"status":"FAILED"}]},"parent":{"ref":"EID84ce8428-9126-44cb-b018-55529a525833"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:10:05Z","duration":9998,"status":"FAILED"},{"id":"EID6ee6b831-0175-1000-4f96-6c868d89dae7","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2","testStepResults":{"TestStepResult":[{"id":"EID6ee6b831-0175-1000-ff0e-19abcc24dcb4","parent":{"ref":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b831-0175-1000-56b2-a91b365cf6da","parent":{"ref":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":126,"status":"PASSED"},{"id":"EID6ee6b831-0175-1000-0c5c-951017cd2e73","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ba8f-0175-1000-f9ee-00004acf03d5","parent":{"ref":"EID6ee6b831-0175-1000-0c5c-951017cd2e73"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ba8f-0175-1000-d5a9-e7f4dd31d8de","parent":{"ref":"EID6ee6b831-0175-1000-0c5c-951017cd2e73"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ba8f-0175-1000-7124-858f7c6b80ea","parent":{"ref":"EID6ee6b831-0175-1000-0c5c-951017cd2e73"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3cd58f34-3553-4675-9670-4016a5173669"},{"ref":"EID7e50ffd6-e614-42b7-ad69-dae0e62a632e"},{"ref":"EIDd252be28-a0c3-4492-82db-4ec62b98519b"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:10:15Z","duration":493,"status":"PASSED"},{"id":"EID6ee6ba8f-0175-1000-29fc-785b7d1e9bea","attachments":{"attachment":{"ref":"EID2a77e0b7-8bf2-45fb-9efc-5165c29ef17e"}},"parent":{"ref":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6baa6-0175-1000-61d5-7d11992132a4","parent":{"ref":"EID6ee6b831-0175-1000-4bfe-96e25aee02d2"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:10:16Z","duration":68,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:10:15Z","duration":698,"status":"PASSED"},{"id":"EID6ee6baeb-0175-1000-9677-516d88090028","testStepResults":{"TestStepResult":[{"id":"EID6ee6baeb-0175-1000-b46b-c2b81db054f6","parent":{"ref":"EID6ee6baeb-0175-1000-9677-516d88090028"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:10:16Z","duration":128,"status":"PASSED"},{"id":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6be9b-0175-1000-ec29-f05f99bcc17f","parent":{"ref":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6be9b-0175-1000-e199-f1b7dc7965b6","parent":{"ref":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6be9b-0175-1000-7ff3-7bb840e5b610","parent":{"ref":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6be9b-0175-1000-be70-9ac889995745","parent":{"ref":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6be9b-0175-1000-d941-2185dab4ff6a","parent":{"ref":"EID6ee6baeb-0175-1000-044f-ff3f85129a6e"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfae3468e-834b-403e-b889-5e19b31d3f56"},{"ref":"EID4309a94c-28c3-4ef8-8daa-3a7c79b1b42b"},{"ref":"EID52be83b3-b30d-4e6e-9d00-5bab795922bc"}]},"parent":{"ref":"EID6ee6baeb-0175-1000-9677-516d88090028"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:10:16Z","duration":788,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:10:16Z","duration":944,"status":"PASSED"},{"id":"EID6ee6be9c-0175-1000-bae8-bbe5b530910f","testStepResults":{"TestStepResult":[{"id":"EID6ee6be9c-0175-1000-74a0-3244e80f8c4b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6bfd4-0175-1000-9bc4-96b467c9d659","parent":{"ref":"EID6ee6be9c-0175-1000-74a0-3244e80f8c4b"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bfd4-0175-1000-3d01-93f306edacab","parent":{"ref":"EID6ee6be9c-0175-1000-74a0-3244e80f8c4b"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bfd4-0175-1000-136d-f5012c4726a0","parent":{"ref":"EID6ee6be9c-0175-1000-74a0-3244e80f8c4b"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2ddf5ef3-1a02-4ae9-bcc7-779c6e5985d7"},{"ref":"EIDa7abfa0c-b740-4899-9788-a449a87ab34b"},{"ref":"EIDea5f5912-8fd6-4a99-b7ac-927825252bc9"}]},"parent":{"ref":"EID6ee6be9c-0175-1000-bae8-bbe5b530910f"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:10:17Z","duration":257,"status":"PASSED"},{"id":"EID6ee6bfe3-0175-1000-ca16-8d296cc18142","attachments":{"attachment":{"ref":"EIDfe43e01d-a2f8-4a27-9065-a05cf699b5fb"}},"parent":{"ref":"EID6ee6be9c-0175-1000-bae8-bbe5b530910f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:10:17Z","duration":1,"status":"PASSED"},{"id":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c111-0175-1000-2746-ad6a91565f4e","parent":{"ref":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c111-0175-1000-b3fb-fe85d88a2039","parent":{"ref":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c111-0175-1000-45ab-66c0af5c2c92","parent":{"ref":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c111-0175-1000-6b70-c33026740f16","parent":{"ref":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c111-0175-1000-1d33-2c85b17df7a1","parent":{"ref":"EID6ee6bfed-0175-1000-2d74-3bf3e5c0a2b9"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe8495686-b8ad-42d5-a8bf-ffa288659428"},{"ref":"EID16e4ff9f-c830-443d-a2cd-30ae477809ca"},{"ref":"EID74b679dc-78b3-449c-9717-7ecb12853ea7"}]},"parent":{"ref":"EID6ee6be9c-0175-1000-bae8-bbe5b530910f"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:10:17Z","duration":198,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:10:17Z","duration":629,"status":"PASSED"},{"id":"EID6ee6c111-0175-1000-a8a0-f0e4d882958e","testStepResults":{"TestStepResult":[{"id":"EID6ee6c111-0175-1000-c0d7-2b7f1b13505c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c1ff-0175-1000-cb77-17433ea00647","parent":{"ref":"EID6ee6c111-0175-1000-c0d7-2b7f1b13505c"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c1ff-0175-1000-94eb-ef2ede7024b8","parent":{"ref":"EID6ee6c111-0175-1000-c0d7-2b7f1b13505c"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c1ff-0175-1000-bc03-06038e7e14b7","parent":{"ref":"EID6ee6c111-0175-1000-c0d7-2b7f1b13505c"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c1ff-0175-1000-4e46-886848cf25c4","parent":{"ref":"EID6ee6c111-0175-1000-c0d7-2b7f1b13505c"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5b7224c3-e3a4-4ee0-b381-2e920ea158a5"},{"ref":"EID955df65b-a997-4419-811d-68c4ba404138"},{"ref":"EIDb6bc5d5a-f11c-433c-bcfb-699b945302d3"}]},"parent":{"ref":"EID6ee6c111-0175-1000-a8a0-f0e4d882958e"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:10:17Z","duration":118,"status":"PASSED"},{"id":"EID6ee6c1ff-0175-1000-8bb8-67b9802b6bc5","attachments":{"attachment":{"ref":"EID38f8b290-13b6-4e1c-83c6-a94da6d52906"}},"parent":{"ref":"EID6ee6c111-0175-1000-a8a0-f0e4d882958e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:10:18Z","duration":1,"status":"PASSED"},{"id":"EID6ee6c216-0175-1000-1a75-0924e10ef8ea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c24e-0175-1000-a8ef-d3bb57198ab0","parent":{"ref":"EID6ee6c216-0175-1000-1a75-0924e10ef8ea"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c24e-0175-1000-15e2-69977b3ab974","parent":{"ref":"EID6ee6c216-0175-1000-1a75-0924e10ef8ea"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID152590e2-a179-4a39-9720-125761cc7db4"},{"ref":"EIDcf3851b0-b965-45e2-a1d2-adf62a6f8ed9"}]},"parent":{"ref":"EID6ee6c111-0175-1000-a8a0-f0e4d882958e"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:10:18Z","duration":52,"status":"PASSED"},{"id":"EID6ee6c24f-0175-1000-b212-8b589ba90c30","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c445-0175-1000-21ab-2a7ccb5a8e52","parent":{"ref":"EID6ee6c24f-0175-1000-b212-8b589ba90c30"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c445-0175-1000-67a8-56567210bbda","parent":{"ref":"EID6ee6c24f-0175-1000-b212-8b589ba90c30"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c445-0175-1000-f169-48b866915819","parent":{"ref":"EID6ee6c24f-0175-1000-b212-8b589ba90c30"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c445-0175-1000-b402-329649d61dc8","parent":{"ref":"EID6ee6c24f-0175-1000-b212-8b589ba90c30"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDead0e8a8-1387-4800-bb54-5b9f1f88368f"},{"ref":"EIDc2c56e6f-80dd-4b1f-b6b1-a79797f379ad"},{"ref":"EID7c26e304-8706-41ba-af1c-a722d2859a6d"}]},"parent":{"ref":"EID6ee6c111-0175-1000-a8a0-f0e4d882958e"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:10:18Z","duration":431,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:10:17Z","duration":820,"status":"PASSED"},{"id":"EID6ee6c445-0175-1000-4e93-561d9e58bb4f","testStepResults":{"TestStepResult":{"id":"EID6ee6c445-0175-1000-63b3-cb15cb544c78","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c668-0175-1000-ac73-cb8db6fd0ae5","parent":{"ref":"EID6ee6c445-0175-1000-63b3-cb15cb544c78"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c668-0175-1000-56b8-ea1bc93850f4","parent":{"ref":"EID6ee6c445-0175-1000-63b3-cb15cb544c78"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c668-0175-1000-2a7a-e8432c8ed704","parent":{"ref":"EID6ee6c445-0175-1000-63b3-cb15cb544c78"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b035185-b116-44a9-8ede-c7c4a2472a79"},{"ref":"EIDc2893d47-f2aa-42ef-95a1-dca6f00707ca"},{"ref":"EID02f6ec97-5d23-4845-bdec-0a99be954121"}]},"parent":{"ref":"EID6ee6c445-0175-1000-4e93-561d9e58bb4f"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:10:18Z","duration":417,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:10:18Z","duration":547,"status":"PASSED"},{"id":"EID6ee6c668-0175-1000-7643-5ab050a85933","testStepResults":{"TestStepResult":{"id":"EID6ee6c669-0175-1000-8bfe-b26c9098240c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c918-0175-1000-1a00-ed4a1e3d70bf","parent":{"ref":"EID6ee6c669-0175-1000-8bfe-b26c9098240c"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c918-0175-1000-d1a1-ecfcd33f8dd9","parent":{"ref":"EID6ee6c669-0175-1000-8bfe-b26c9098240c"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c918-0175-1000-3870-93cc064d9f97","parent":{"ref":"EID6ee6c669-0175-1000-8bfe-b26c9098240c"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48462b89-2038-4bd2-8b2f-21153421f2b3"},{"ref":"EIDd9ea8ee2-2811-4b76-a124-a4ad3acb58d2"},{"ref":"EIDe7966c01-a3e8-4b3e-88e7-d51cc9dfa0de"}]},"parent":{"ref":"EID6ee6c668-0175-1000-7643-5ab050a85933"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:10:19Z","duration":536,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:10:19Z","duration":689,"status":"PASSED"},{"id":"EID6ee6c919-0175-1000-6ad4-16bfd463db47","testStepResults":{"TestStepResult":{"id":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cad8-0175-1000-2269-c6aef8dec5f8","parent":{"ref":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cad8-0175-1000-9fe0-b5871b773693","parent":{"ref":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cad8-0175-1000-496d-f9844dc5fa54","parent":{"ref":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cad8-0175-1000-f5f0-cc998208da8b","parent":{"ref":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cad8-0175-1000-5c42-248fdb6d93d0","parent":{"ref":"EID6ee6c919-0175-1000-6bd8-c8b1ae7e9356"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID22bc960f-ff23-482d-aaae-78a9d955e9e0"},{"ref":"EID6b3a0b0e-ed19-49ff-8d60-1272d11df3df"},{"ref":"EID4ea9f305-fad4-40ca-a497-4dc43c5ea14d"}]},"parent":{"ref":"EID6ee6c919-0175-1000-6ad4-16bfd463db47"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:10:19Z","duration":363,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:10:19Z","duration":447,"status":"PASSED"},{"id":"EID6ee6cad9-0175-1000-df96-c9f1d58ed6fd","testStepResults":{"TestStepResult":{"id":"EID6ee6cad9-0175-1000-a92c-21cb0c5f9973","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cce3-0175-1000-9174-4f7e2fcdc455","parent":{"ref":"EID6ee6cad9-0175-1000-a92c-21cb0c5f9973"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cce3-0175-1000-e9ce-492c1db03e96","parent":{"ref":"EID6ee6cad9-0175-1000-a92c-21cb0c5f9973"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cce3-0175-1000-35fe-90904789b40c","parent":{"ref":"EID6ee6cad9-0175-1000-a92c-21cb0c5f9973"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbabc499e-cfaf-406e-8e35-67e1eadfd58b"},{"ref":"EID05ff34a5-fedd-4ae8-a0dd-f1ee5b7c4e95"},{"ref":"EID9802a990-c384-426d-977d-3782c204020f"}]},"parent":{"ref":"EID6ee6cad9-0175-1000-df96-c9f1d58ed6fd"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:10:20Z","duration":438,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:10:20Z","duration":522,"status":"PASSED"},{"id":"EID6ee6cce3-0175-1000-6bf7-4b3b164eebeb","testStepResults":{"TestStepResult":{"id":"EID6ee6cce3-0175-1000-d0c8-c08c3c9d0b4e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cfd2-0175-1000-46fc-a0e3ae7054bf","parent":{"ref":"EID6ee6cce3-0175-1000-d0c8-c08c3c9d0b4e"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cfd2-0175-1000-a87a-38dc70cfe3dc","parent":{"ref":"EID6ee6cce3-0175-1000-d0c8-c08c3c9d0b4e"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cfd2-0175-1000-3aab-a48d4f2e1c83","parent":{"ref":"EID6ee6cce3-0175-1000-d0c8-c08c3c9d0b4e"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID74756766-4af8-4c77-818d-e9eed0306311"},{"ref":"EIDd065dada-4e92-4e9b-81ed-b22945ffd0d5"},{"ref":"EID839f6c59-f0c5-42b8-9c01-de90d398822c"}]},"parent":{"ref":"EID6ee6cce3-0175-1000-6bf7-4b3b164eebeb"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:10:20Z","duration":679,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:10:20Z","duration":751,"status":"PASSED"},{"id":"EID6ee6cfd2-0175-1000-9a2c-8a267e4a1733","testStepResults":{"TestStepResult":{"id":"EID6ee6cfd2-0175-1000-910a-a869193cd088","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d256-0175-1000-abfc-ecc08d7857ee","parent":{"ref":"EID6ee6cfd2-0175-1000-910a-a869193cd088"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d256-0175-1000-a5e4-9e0de8613a09","parent":{"ref":"EID6ee6cfd2-0175-1000-910a-a869193cd088"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d256-0175-1000-015f-c463e6defd68","parent":{"ref":"EID6ee6cfd2-0175-1000-910a-a869193cd088"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d256-0175-1000-53af-23450c5a4c6e","parent":{"ref":"EID6ee6cfd2-0175-1000-910a-a869193cd088"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID43143398-2aca-4a23-a164-6005ef0a9eaa"},{"ref":"EIDbb24461f-9ec5-49dc-929e-059171334658"},{"ref":"EID037e309b-a720-4d4e-a8ba-f3070f304a4f"}]},"parent":{"ref":"EID6ee6cfd2-0175-1000-9a2c-8a267e4a1733"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:10:21Z","duration":537,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:10:21Z","duration":644,"status":"PASSED"},{"id":"EID6ee6d257-0175-1000-617c-2b2017db65a5","testStepResults":{"TestStepResult":{"id":"EID6ee6d257-0175-1000-4e04-081fef8533cf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d4a8-0175-1000-69c0-b78ef5ff1171","parent":{"ref":"EID6ee6d257-0175-1000-4e04-081fef8533cf"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4a8-0175-1000-93e4-a251e3d547b6","parent":{"ref":"EID6ee6d257-0175-1000-4e04-081fef8533cf"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4a8-0175-1000-5c41-f24d39bddec9","parent":{"ref":"EID6ee6d257-0175-1000-4e04-081fef8533cf"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4a8-0175-1000-608e-81b99811e628","parent":{"ref":"EID6ee6d257-0175-1000-4e04-081fef8533cf"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9f8f1dab-69fb-4d32-8d42-4dc2d5a38ef2"},{"ref":"EID6b57570c-3061-49b2-b6e6-e83869302df9"},{"ref":"EID63e3fb95-163f-4dc8-921d-ddebddfcf2ac"}]},"parent":{"ref":"EID6ee6d257-0175-1000-617c-2b2017db65a5"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:10:22Z","duration":490,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:10:22Z","duration":593,"status":"PASSED"},{"id":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a","testStepResults":{"TestStepResult":[{"id":"EID6ee6d4a8-0175-1000-ee0e-5a4055e87ae6","parent":{"ref":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4a8-0175-1000-df69-ba923196ba08","parent":{"ref":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:10:22Z","duration":214,"status":"PASSED"},{"id":"EID6ee6d4a9-0175-1000-a237-36e3ad8136f0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d662-0175-1000-b201-99deeb589ad1","parent":{"ref":"EID6ee6d4a9-0175-1000-a237-36e3ad8136f0"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d662-0175-1000-da71-4a13f1293c4a","parent":{"ref":"EID6ee6d4a9-0175-1000-a237-36e3ad8136f0"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d662-0175-1000-1f12-40ab7eb14b70","parent":{"ref":"EID6ee6d4a9-0175-1000-a237-36e3ad8136f0"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d662-0175-1000-0e34-ef3d338d4201","parent":{"ref":"EID6ee6d4a9-0175-1000-a237-36e3ad8136f0"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID45ab62dd-c927-455e-b33e-5f810afd50bc"},{"ref":"EID3cb16565-a21f-4c78-bbca-81d87e25ef92"},{"ref":"EID53874062-3bc1-4e04-ae14-3403689685bd"}]},"parent":{"ref":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:10:22Z","duration":295,"status":"PASSED"},{"id":"EID6ee6d662-0175-1000-6413-011a9f4fe266","attachments":{"attachment":{"ref":"EID40737cc5-752b-4135-9292-69baa70d2583"}},"parent":{"ref":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":1,"status":"PASSED"},{"id":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d768-0175-1000-590e-20497d2e0cf7","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d768-0175-1000-ccba-6c749a5795bf","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d768-0175-1000-1338-c67909000d51","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d769-0175-1000-0c94-d81b5292a2ac","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d769-0175-1000-881d-3e8f7923f6f3","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d769-0175-1000-e3ac-18d3148b7f8d","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d769-0175-1000-e4e5-38c4c21dcd4c","parent":{"ref":"EID6ee6d68f-0175-1000-d03b-b1a2f92bf470"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbd80817b-234b-48a6-9aa1-bb48fa7a6e9a"},{"ref":"EID98acf24a-debe-402b-aa1d-2fccd3339866"},{"ref":"EID0797ffe5-5e2e-4c5e-a113-c22ea899405a"}]},"parent":{"ref":"EID6ee6d4a8-0175-1000-fd86-2ea6f0db057a"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:10:23Z","duration":117,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:10:22Z","duration":705,"status":"PASSED"},{"id":"EID6ee6d769-0175-1000-386f-227a9bb77195","testStepResults":{"TestStepResult":[{"id":"EID6ee6d771-0175-1000-0bf9-0498266468a2","parent":{"ref":"EID6ee6d769-0175-1000-386f-227a9bb77195"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d771-0175-1000-8ded-05ae8dcd6856","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d7fa-0175-1000-6503-f6031f1d4535","parent":{"ref":"EID6ee6d771-0175-1000-8ded-05ae8dcd6856"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d7fa-0175-1000-0516-7a1643655b86","parent":{"ref":"EID6ee6d771-0175-1000-8ded-05ae8dcd6856"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d7fa-0175-1000-dfbd-69eed8a3a0a4","parent":{"ref":"EID6ee6d771-0175-1000-8ded-05ae8dcd6856"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d7fa-0175-1000-96dd-39f978094105","parent":{"ref":"EID6ee6d771-0175-1000-8ded-05ae8dcd6856"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeb15b7e6-f2a9-4661-b8dc-c8e1d1795996"},{"ref":"EID34b03c70-2545-41d5-9a8a-c39a31f262c1"},{"ref":"EID51aa7d31-b648-494e-b611-a73abb09e45f"}]},"parent":{"ref":"EID6ee6d769-0175-1000-386f-227a9bb77195"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:10:23Z","duration":48,"status":"PASSED"},{"id":"EID6ee6d7fa-0175-1000-6bd9-1de92499898e","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee6d80d-0175-1000-b5ee-a771901bf473","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d8be-0175-1000-f514-d73dd74ae716","parent":{"ref":"EID6ee6d80d-0175-1000-b5ee-a771901bf473"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d8be-0175-1000-ab1b-8f1807facbcd","parent":{"ref":"EID6ee6d80d-0175-1000-b5ee-a771901bf473"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d8be-0175-1000-83b5-d95e1b202b20","parent":{"ref":"EID6ee6d80d-0175-1000-b5ee-a771901bf473"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID543844ab-8dc4-47a0-aae6-eb6f5be53f86"},{"ref":"EID3f972745-67e9-42fa-a1fb-91cd3b8471be"},{"ref":"EID36a37abc-3108-4c44-9981-89af6f44ff91"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:23Z","duration":41,"status":"PASSED"},{"id":"EID6ee6d8c0-0175-1000-619b-209da55cdee2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d918-0175-1000-aeaa-003155542238","parent":{"ref":"EID6ee6d8c0-0175-1000-619b-209da55cdee2"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d918-0175-1000-4cbe-171cb0f73298","parent":{"ref":"EID6ee6d8c0-0175-1000-619b-209da55cdee2"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d918-0175-1000-be0c-2cb7c82edd84","parent":{"ref":"EID6ee6d8c0-0175-1000-619b-209da55cdee2"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDce4c37e7-3822-4bbc-a9bd-8ed132bf175c"},{"ref":"EID6776131f-ea0c-466e-9547-ab1f072f93d7"},{"ref":"EID3ab294db-313b-44c3-93c1-5b959dd9a088"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:23Z","duration":42,"status":"PASSED"},{"id":"EID6ee6d91a-0175-1000-dfd1-95d370c21427","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d973-0175-1000-3069-c8cc5d4ddf8e","parent":{"ref":"EID6ee6d91a-0175-1000-dfd1-95d370c21427"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d973-0175-1000-b68b-f05a9d17ec39","parent":{"ref":"EID6ee6d91a-0175-1000-dfd1-95d370c21427"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d973-0175-1000-7b84-47f09c94f189","parent":{"ref":"EID6ee6d91a-0175-1000-dfd1-95d370c21427"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0a5822b8-afb3-4228-b54f-581bde25a5f8"},{"ref":"EID3fe6521c-71aa-4db7-98a3-9c1f72d40c9b"},{"ref":"EID5bfbbec0-5567-4883-b202-a0103081cc6f"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:24Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee6d769-0175-1000-386f-227a9bb77195"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:10:23Z","duration":377,"status":"PASSED"},{"id":"EID6ee6d974-0175-1000-1cb5-03156b50df1e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d9f8-0175-1000-df78-cf14ce07c57c","parent":{"ref":"EID6ee6d974-0175-1000-1cb5-03156b50df1e"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d9f8-0175-1000-70e3-50b12671ff0c","parent":{"ref":"EID6ee6d974-0175-1000-1cb5-03156b50df1e"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d9f8-0175-1000-2ca4-546184fbb0fd","parent":{"ref":"EID6ee6d974-0175-1000-1cb5-03156b50df1e"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d9f8-0175-1000-7148-22f0a842c3c0","parent":{"ref":"EID6ee6d974-0175-1000-1cb5-03156b50df1e"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID34d7c68e-e42c-4966-94b8-4822011c3440"},{"ref":"EID1194ebd5-7f11-42ec-8723-e3fc5865d31c"},{"ref":"EID22c2248b-7fab-4099-9ffb-743c376aae02"}]},"parent":{"ref":"EID6ee6d769-0175-1000-386f-227a9bb77195"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:10:24Z","duration":74,"status":"PASSED"}]},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:10:23Z","duration":655,"status":"PASSED"},{"id":"EID6ee6d9f8-0175-1000-2cec-a7fe5c607e12","testStepResults":{"TestStepResult":{"id":"EID6ee6d9f8-0175-1000-ff1b-676bb54428e1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6dbde-0175-1000-33b1-940bf8c374cc","parent":{"ref":"EID6ee6d9f8-0175-1000-ff1b-676bb54428e1"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dbde-0175-1000-09bf-d6fd3e26ee14","parent":{"ref":"EID6ee6d9f8-0175-1000-ff1b-676bb54428e1"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dbde-0175-1000-fac8-f693d7891a33","parent":{"ref":"EID6ee6d9f8-0175-1000-ff1b-676bb54428e1"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dbde-0175-1000-3385-5cd58d9d727d","parent":{"ref":"EID6ee6d9f8-0175-1000-ff1b-676bb54428e1"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2dbe6780-101b-486d-907f-7171f4b16eb1"},{"ref":"EID1e455ca1-b3ad-48b6-860a-4784a452c310"},{"ref":"EIDb966f19e-7384-4703-a676-4c09579dca67"}]},"parent":{"ref":"EID6ee6d9f8-0175-1000-2cec-a7fe5c607e12"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:10:24Z","duration":343,"status":"PASSED"}},"parent":{"ref":"EID6ee6b831-0175-1000-4f96-6c868d89dae7"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:10:24Z","duration":486,"status":"PASSED"}]},"parent":{"ref":"EID84ce8428-9126-44cb-b018-55529a525833"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:10:15Z","duration":9133,"status":"PASSED"},{"id":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6dbde-0175-1000-ea42-5ada4a714484","testStepResults":{"TestStepResult":[{"id":"EID6ee6dbde-0175-1000-e4ec-953295b74b10","parent":{"ref":"EID6ee6dbde-0175-1000-ea42-5ada4a714484"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:10:24Z","duration":848,"status":"PASSED"},{"id":"EID6ee6dbde-0175-1000-b44c-5f2a6cfb69db","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6dcbd-0175-1000-a5f5-69f3be6296e8","parent":{"ref":"EID6ee6dbde-0175-1000-b44c-5f2a6cfb69db"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dcbd-0175-1000-99ce-1f006b8aa3c0","parent":{"ref":"EID6ee6dbde-0175-1000-b44c-5f2a6cfb69db"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dcbd-0175-1000-8374-512a8cb86bbb","parent":{"ref":"EID6ee6dbde-0175-1000-b44c-5f2a6cfb69db"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:10:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID122b0094-f119-45a8-bf08-60e04b5a60bd"},{"ref":"EID4d6b6af1-58cc-4605-82e2-9cd0b1fd3e0e"},{"ref":"EID4c4c7689-9404-4916-9f2c-f3d755a3d85f"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-ea42-5ada4a714484"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:10:24Z","duration":60,"status":"PASSED"},{"id":"EID6ee6dcbd-0175-1000-b401-cabc7833337f","attachments":{"attachment":{"ref":"EIDd4e0951e-6430-4e12-ba02-9eadff70a8e2"}},"parent":{"ref":"EID6ee6dbde-0175-1000-ea42-5ada4a714484"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:10:24Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:10:24Z","duration":234,"status":"PASSED"},{"id":"EID6ee6dcc8-0175-1000-02a2-6d72d376197c","testStepResults":{"TestStepResult":[{"id":"EID6ee6dcc8-0175-1000-14b4-0f3bd837e33b","parent":{"ref":"EID6ee6dcc8-0175-1000-02a2-6d72d376197c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:10:24Z","duration":848,"status":"PASSED"},{"id":"EID6ee6dcc8-0175-1000-15a2-d541a15f59ad","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6dd74-0175-1000-09e5-587049f456ec","parent":{"ref":"EID6ee6dcc8-0175-1000-15a2-d541a15f59ad"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dd74-0175-1000-2cc0-a9a56703b201","parent":{"ref":"EID6ee6dcc8-0175-1000-15a2-d541a15f59ad"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dd74-0175-1000-b0a4-292b862ce9ab","parent":{"ref":"EID6ee6dcc8-0175-1000-15a2-d541a15f59ad"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dd74-0175-1000-f8eb-642ee8a4dd43","parent":{"ref":"EID6ee6dcc8-0175-1000-15a2-d541a15f59ad"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3e7c2a54-32b6-4644-aeea-033865529669"},{"ref":"EID824a40db-9318-48fb-9997-8fb6b568b9f6"},{"ref":"EID6e58957e-9898-4409-a60a-a24f2b4478d1"}]},"parent":{"ref":"EID6ee6dcc8-0175-1000-02a2-6d72d376197c"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:10:24Z","duration":81,"status":"PASSED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:10:24Z","duration":172,"status":"PASSED"},{"id":"EID6ee6dd75-0175-1000-6094-9c3f1d289b2d","testStepResults":{"TestStepResult":[{"id":"EID6ee6dd75-0175-1000-48d5-902dd2a05e76","parent":{"ref":"EID6ee6dd75-0175-1000-6094-9c3f1d289b2d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":848,"status":"PASSED"},{"id":"EID6ee6dd75-0175-1000-9446-62c4f33dd18c","parent":{"ref":"EID6ee6dd75-0175-1000-6094-9c3f1d289b2d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6de28-0175-1000-02bb-d3b92bc2f34d","parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de28-0175-1000-5b89-e864b7dc527b","parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de28-0175-1000-e999-e0ce60e01d9e","parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de28-0175-1000-e24e-b4351aa0c03d","parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de28-0175-1000-66a2-047e1acf7adf","parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de28-0175-1000-6f53-51d2a2ae87d7","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"FAILED"},{"id":"EID6ee6de28-0175-1000-df94-7d61d5edfd63","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee6dd75-0175-1000-1fa9-631fc83ca23c"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1af75ff9-77cc-4727-b9bd-2c37c4f845aa"},{"ref":"EIDe8465118-50d1-4ae0-9a97-86ec8527c0dd"},{"ref":"EID05f89de5-3b9d-438a-9201-d08bc3e6e490"}]},"parent":{"ref":"EID6ee6dd75-0175-1000-6094-9c3f1d289b2d"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:10:25Z","duration":82,"status":"FAILED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:10:25Z","duration":179,"status":"FAILED"},{"id":"EID6ee6de28-0175-1000-5512-e10238d5d34d","testStepResults":{"TestStepResult":[{"id":"EID6ee6de28-0175-1000-1aaa-6ac3d4d68277","parent":{"ref":"EID6ee6de28-0175-1000-5512-e10238d5d34d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":848,"status":"PASSED"},{"id":"EID6ee6de29-0175-1000-13db-96b82a91def4","parent":{"ref":"EID6ee6de28-0175-1000-5512-e10238d5d34d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6dedf-0175-1000-c36d-15111269a459","parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-1e25-37d483e4ac2e","parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-630f-ce8580f5cf61","parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-41b7-5c4158dea0e7","parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-11e2-e85e4a6e61b1","parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-0309-a08d74ca1822","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee6de29-0175-1000-e4bc-9e7206dda1a2"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:10:25Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5a6b9107-7ee5-4320-ae22-aac22585fdcd"},{"ref":"EIDe54223b1-f517-4f72-bc81-e2d18cb8d4b8"},{"ref":"EID17ccff50-3a42-4d14-9e7a-4be015399179"}]},"parent":{"ref":"EID6ee6de28-0175-1000-5512-e10238d5d34d"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:10:25Z","duration":78,"status":"FAILED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:10:25Z","duration":183,"status":"FAILED"},{"id":"EID6ee6dedf-0175-1000-8b01-5063cde4a84f","testStepResults":{"TestStepResult":[{"id":"EID6ee6dedf-0175-1000-6004-f7e5908f6c00","parent":{"ref":"EID6ee6dedf-0175-1000-8b01-5063cde4a84f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":848,"status":"PASSED"},{"id":"EID6ee6dedf-0175-1000-8df5-f9d8a6746789","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID92ea83d7-474e-4055-aa19-f5023cc4de7d"},{"ref":"EIDed62694a-e641-4f1c-a045-06e942888d11"},{"ref":"EIDeea20723-a722-41ec-99a8-ca79832d75f9"},{"ref":"EIDc21d41eb-0be0-4eb3-b586-5722e83cff98"},{"ref":"EID45ca8406-790e-490b-aad4-9f11aa4ff949"},{"ref":"EID02676e5a-2b02-4742-89f7-c482907ae599"},{"ref":"EID6c1d891e-7a95-49f2-8f4f-af1f137d29c2"},{"ref":"EIDd2a942bb-c629-4302-a105-bec4b6b575c8"},{"ref":"EID9ccb2216-3b80-4c7e-8067-db163114a3da"},{"ref":"EIDe3bf0f22-e50f-4865-b954-096532c740e1"},{"ref":"EID87934528-ee3b-4b92-9848-802b47e72d44"},{"ref":"EID309097e7-0a77-4c1d-a608-718f19c524be"},{"ref":"EID6052bdea-fafc-49af-8556-aad67e06c8cc"},{"ref":"EID8021f406-8851-4bb8-928c-a8a8ee4b7d9d"},{"ref":"EID8523678a-c281-4ba1-88cd-6accc404172f"}]},"parent":{"ref":"EID6ee6dedf-0175-1000-8b01-5063cde4a84f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:10:25Z","duration":932,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:10:25Z","duration":1218,"status":"SKIPPED"},{"id":"EID6ee6e3a1-0175-1000-6e73-3bdf8d62a0f3","testStepResults":{"TestStepResult":[{"id":"EID6ee6e3a1-0175-1000-d702-75ac36016115","parent":{"ref":"EID6ee6e3a1-0175-1000-6e73-3bdf8d62a0f3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:10:26Z","duration":848,"status":"PASSED"},{"id":"EID6ee6e3a1-0175-1000-9665-a1cd613cd281","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6e556-0175-1000-233a-59e7fac49879","parent":{"ref":"EID6ee6e3a1-0175-1000-9665-a1cd613cd281"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e556-0175-1000-aefc-b151a7f92848","parent":{"ref":"EID6ee6e3a1-0175-1000-9665-a1cd613cd281"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e556-0175-1000-55a9-2c6ce73ef9ad","parent":{"ref":"EID6ee6e3a1-0175-1000-9665-a1cd613cd281"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e556-0175-1000-49a0-9035fddd9741","parent":{"ref":"EID6ee6e3a1-0175-1000-9665-a1cd613cd281"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67e74151-1a2c-4753-9735-0302f28ff62c"},{"ref":"EID1541a3d0-1a16-462a-89cc-5a60208baec4"},{"ref":"EID8521cedf-a0ee-4b07-94ab-6a115d785b94"}]},"parent":{"ref":"EID6ee6e3a1-0175-1000-6e73-3bdf8d62a0f3"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:10:26Z","duration":87,"status":"PASSED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:10:26Z","duration":438,"status":"PASSED"},{"id":"EID6ee6e557-0175-1000-03df-c4e2255d45fe","testStepResults":{"TestStepResult":[{"id":"EID6ee6e557-0175-1000-2951-b77c9617f348","parent":{"ref":"EID6ee6e557-0175-1000-03df-c4e2255d45fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:10:27Z","duration":848,"status":"PASSED"},{"id":"EID6ee6e557-0175-1000-84a1-59e913f36b34","parent":{"ref":"EID6ee6e557-0175-1000-03df-c4e2255d45fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:10:27Z","duration":16,"status":"PASSED"},{"id":"EID6ee6e567-0175-1000-8da7-65b5013c14db","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6e624-0175-1000-9237-ad949773a8f6","parent":{"ref":"EID6ee6e567-0175-1000-8da7-65b5013c14db"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e624-0175-1000-4c92-628ec5581721","parent":{"ref":"EID6ee6e567-0175-1000-8da7-65b5013c14db"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e624-0175-1000-de79-0d185628286d","parent":{"ref":"EID6ee6e567-0175-1000-8da7-65b5013c14db"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e624-0175-1000-384f-e7b07efff22e","parent":{"ref":"EID6ee6e567-0175-1000-8da7-65b5013c14db"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID90a3c08a-dad8-4379-95bf-b5676f27839a"},{"ref":"EID805305d8-52f4-49df-b592-f4f6a6d75de0"},{"ref":"EID49d0526e-0550-46ab-95d1-b22882bd90a6"}]},"parent":{"ref":"EID6ee6e557-0175-1000-03df-c4e2255d45fe"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:10:27Z","duration":101,"status":"PASSED"},{"id":"EID6ee6e624-0175-1000-c002-17c0637bea28","attachments":{"attachment":{"ref":"EIDb954331f-9686-4ce6-b382-41a188b069ea"}},"parent":{"ref":"EID6ee6e557-0175-1000-03df-c4e2255d45fe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e62f-0175-1000-9961-c2c88101f585","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6e633-0175-1000-c1d0-81238f4a2e3f","parent":{"ref":"EID6ee6e62f-0175-1000-9961-c2c88101f585"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e633-0175-1000-841e-04e3d389e6de","parent":{"ref":"EID6ee6e62f-0175-1000-9961-c2c88101f585"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee6e633-0175-1000-278b-4299c3f9baba","parent":{"ref":"EID6ee6e62f-0175-1000-9961-c2c88101f585"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDba4d435c-8198-407a-84f5-671ff71de398"},{"ref":"EIDc24692ea-dc0c-414c-9807-948b19aba4e8"}]},"parent":{"ref":"EID6ee6e557-0175-1000-03df-c4e2255d45fe"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:10:27Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee6dbde-0175-1000-85c1-d0bb6e13616a"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:10:27Z","duration":220,"status":"PASSED"}]},"parent":{"ref":"EID84ce8428-9126-44cb-b018-55529a525833"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:10:24Z","duration":2645,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EID6b3a0b0e-ed19-49ff-8d60-1272d11df3df","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6b3a0b0e-ed19-49ff-8d60-1272d11df3df"}},{"type":"ServiceEndpoint","id":"EIDa35d3f47-b22a-4870-980b-5e7de5b31c11","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbd80817b-234b-48a6-9aa1-bb48fa7a6e9a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID809112ad-c4c6-42a7-864e-279a5eb57314","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID809112ad-c4c6-42a7-864e-279a5eb57314"}},{"type":"GetParameter","id":"EID5bfbbec0-5567-4883-b202-a0103081cc6f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID213ee1b5-9bd6-42a8-af4c-a2f4b294426d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID3383db0d-cf4a-452e-95ec-d964be7ca773","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID3383db0d-cf4a-452e-95ec-d964be7ca773"}},{"type":"GetParameter","id":"EID833a71ab-f9e3-4831-9716-ded456f3ae9e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1e455ca1-b3ad-48b6-860a-4784a452c310","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID1e455ca1-b3ad-48b6-860a-4784a452c310"}},{"type":"GetParameter","id":"EIDbd35649d-0759-4020-9ec5-40c22b537ad9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDee9380d4-b8a8-45ad-8a20-28e805ab4f63","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDee9380d4-b8a8-45ad-8a20-28e805ab4f63"}},{"type":"Message","id":"EID87934528-ee3b-4b92-9848-802b47e72d44","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID87934528-ee3b-4b92-9848-802b47e72d44"}},{"type":"ServiceResponse","id":"EIDd9ea8ee2-2811-4b76-a124-a4ad3acb58d2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDd9ea8ee2-2811-4b76-a124-a4ad3acb58d2"}},{"type":"GetParameter","id":"EID65822b91-0738-40fb-9e88-21a9f55ffa04","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDa2c7b011-4e39-4c50-9bd9-efb7136ea874","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDa2c7b011-4e39-4c50-9bd9-efb7136ea874"}},{"type":"ServiceEndpoint","id":"EIDe8495686-b8ad-42d5-a8bf-ffa288659428","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDf94bd930-eae1-43a2-bf13-a9a3f5dcae6b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDf94bd930-eae1-43a2-bf13-a9a3f5dcae6b"}},{"type":"ServiceResponse","id":"EIDe2fbd3ff-4ba4-443e-956c-ddfbc0b6a2b9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe2fbd3ff-4ba4-443e-956c-ddfbc0b6a2b9"}},{"type":"ServiceEndpoint","id":"EID82702551-6e06-482e-a9af-a4a67ab71b3a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID22c2248b-7fab-4099-9ffb-743c376aae02","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDc3f257cb-e3be-4452-acfc-44bc02dcff7f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDc3f257cb-e3be-4452-acfc-44bc02dcff7f"}},{"type":"ServiceResponse","id":"EID7e50ffd6-e614-42b7-ad69-dae0e62a632e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID7e50ffd6-e614-42b7-ad69-dae0e62a632e"}},{"type":"ServiceResponse","id":"EID05ff34a5-fedd-4ae8-a0dd-f1ee5b7c4e95","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID05ff34a5-fedd-4ae8-a0dd-f1ee5b7c4e95"}},{"type":"ServiceEndpoint","id":"EID67e74151-1a2c-4753-9735-0302f28ff62c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID6d608345-66bb-4de2-8dff-e63d9c5962f3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe7966c01-a3e8-4b3e-88e7-d51cc9dfa0de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID037e309b-a720-4d4e-a8ba-f3070f304a4f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID824a40db-9318-48fb-9997-8fb6b568b9f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID824a40db-9318-48fb-9997-8fb6b568b9f6"}},{"type":"ServiceEndpoint","id":"EIDa90356fa-4254-4e8f-af40-c9ad930c2cd5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3e7c2a54-32b6-4644-aeea-033865529669","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID40737cc5-752b-4135-9292-69baa70d2583","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID40737cc5-752b-4135-9292-69baa70d2583"}},{"type":"ServiceResponse","id":"EIDe54223b1-f517-4f72-bc81-e2d18cb8d4b8","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe54223b1-f517-4f72-bc81-e2d18cb8d4b8"}},{"type":"Message","id":"EID5d4e271f-56b3-4c0e-8193-aab1e2d52959","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID5d4e271f-56b3-4c0e-8193-aab1e2d52959"}},{"type":"GetParameter","id":"EIDe176245a-0e6e-4ecc-8b0d-bede5588aed4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID60d93d58-373b-4b97-a444-64ef10e2e3a8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID60d93d58-373b-4b97-a444-64ef10e2e3a8"}},{"type":"Message","id":"EIDde27bee5-0390-4b81-9c04-1044b81ca66d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDde27bee5-0390-4b81-9c04-1044b81ca66d"}},{"type":"ServiceEndpoint","id":"EIDbabc499e-cfaf-406e-8e35-67e1eadfd58b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDb1cbfd29-83b3-4eeb-b7e7-7fd173768c70","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDb1cbfd29-83b3-4eeb-b7e7-7fd173768c70"}},{"type":"ServiceEndpoint","id":"EID5a6b9107-7ee5-4320-ae22-aac22585fdcd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID74b679dc-78b3-449c-9717-7ecb12853ea7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDed62694a-e641-4f1c-a045-06e942888d11","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDed62694a-e641-4f1c-a045-06e942888d11"}},{"type":"Message","id":"EID63b36290-a1f3-4be3-a738-89d7c71fcef3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID63b36290-a1f3-4be3-a738-89d7c71fcef3"}},{"type":"ServiceEndpoint","id":"EID70cb840f-8857-4801-b115-e1cd52b7daad","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID48462b89-2038-4bd2-8b2f-21153421f2b3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID8521cedf-a0ee-4b07-94ab-6a115d785b94","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID6832ab57-071d-4914-ad44-bb96c0920687","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID16e4ff9f-c830-443d-a2cd-30ae477809ca","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID16e4ff9f-c830-443d-a2cd-30ae477809ca"}},{"type":"Message","id":"EIDc21d41eb-0be0-4eb3-b586-5722e83cff98","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDc21d41eb-0be0-4eb3-b586-5722e83cff98"}},{"type":"Message","id":"EIDb4131f45-8fc9-419c-94f6-8fd07029246c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDb4131f45-8fc9-419c-94f6-8fd07029246c"}},{"type":"ServiceEndpoint","id":"EID84fcb18d-3748-416e-a9a7-9a774f874718","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd1dcfe81-18d0-409e-89d1-7f737216bcb7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDd1dcfe81-18d0-409e-89d1-7f737216bcb7"}},{"type":"GetParameter","id":"EID49d0526e-0550-46ab-95d1-b22882bd90a6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID736c5623-95d8-4ec2-bbb6-ffc5de88e131","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID4d6b6af1-58cc-4605-82e2-9cd0b1fd3e0e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID4d6b6af1-58cc-4605-82e2-9cd0b1fd3e0e"}},{"type":"ServiceResponse","id":"EID576286be-f12d-46b3-85b3-23c4537e4660","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID576286be-f12d-46b3-85b3-23c4537e4660"}},{"type":"ServiceEndpoint","id":"EID5b7224c3-e3a4-4ee0-b381-2e920ea158a5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID34b03c70-2545-41d5-9a8a-c39a31f262c1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID34b03c70-2545-41d5-9a8a-c39a31f262c1"}},{"type":"GetParameter","id":"EID52be83b3-b30d-4e6e-9d00-5bab795922bc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDe09038ec-a321-49b4-8c42-499cfdc25f74","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe09038ec-a321-49b4-8c42-499cfdc25f74"}},{"type":"GetParameter","id":"EIDd0e407a6-304e-457a-9ab9-b5ba16d98a5c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID4e5a4784-33ee-4916-8d41-11811211c8a8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID4e5a4784-33ee-4916-8d41-11811211c8a8"}},{"type":"Message","id":"EIDd2a942bb-c629-4302-a105-bec4b6b575c8","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDd2a942bb-c629-4302-a105-bec4b6b575c8"}},{"type":"ServiceEndpoint","id":"EID40af82f5-4f08-4096-89e1-a3f54d9bf1de","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID51aa7d31-b648-494e-b611-a73abb09e45f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EID22bc960f-ff23-482d-aaae-78a9d955e9e0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID3cd58f34-3553-4675-9670-4016a5173669","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID2a77e0b7-8bf2-45fb-9efc-5165c29ef17e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID2a77e0b7-8bf2-45fb-9efc-5165c29ef17e"}},{"type":"ServiceResponse","id":"EID3cb16565-a21f-4c78-bbca-81d87e25ef92","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID3cb16565-a21f-4c78-bbca-81d87e25ef92"}},{"type":"GetParameter","id":"EID7439f2cd-ec95-4f2a-9db8-49735f39390f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDbfe2b751-47f3-43a7-8d79-bb1d023ba36b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID8d7dd114-a64e-49e2-af3b-2ef6cadeb207","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID8d7dd114-a64e-49e2-af3b-2ef6cadeb207"}},{"type":"Message","id":"EID58b62b18-5c94-4bec-9428-ad6597ef979a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID58b62b18-5c94-4bec-9428-ad6597ef979a"}},{"type":"ServiceEndpoint","id":"EID2dbe6780-101b-486d-907f-7171f4b16eb1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID707d52cb-b00b-4253-ac80-b7db750f9207","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID73eef5ee-f1e4-415c-9a98-3a341d563272","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID73eef5ee-f1e4-415c-9a98-3a341d563272"}},{"type":"GetParameter","id":"EIDb966f19e-7384-4703-a676-4c09579dca67","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID75d1ec4e-59f1-47c8-b401-db558f80b675","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID52fb5cb5-bc79-41f8-aba3-326aa9b7ec1a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDfaca066f-b896-4041-a338-b7e5aa2f7d51","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDfaca066f-b896-4041-a338-b7e5aa2f7d51"}},{"type":"ServiceEndpoint","id":"EID152590e2-a179-4a39-9720-125761cc7db4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"ServiceResponse","id":"EID6776131f-ea0c-466e-9547-ab1f072f93d7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6776131f-ea0c-466e-9547-ab1f072f93d7"}},{"type":"ServiceResponse","id":"EID9ba20920-c075-4c3b-b31a-812dbde63cf9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID9ba20920-c075-4c3b-b31a-812dbde63cf9"}},{"type":"Message","id":"EID7fc494e8-66ca-4b81-9708-a27c683579d7","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID7fc494e8-66ca-4b81-9708-a27c683579d7"}},{"type":"GetParameter","id":"EID17ccff50-3a42-4d14-9e7a-4be015399179","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDb954331f-9686-4ce6-b382-41a188b069ea","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDb954331f-9686-4ce6-b382-41a188b069ea"}},{"type":"Message","id":"EIDb06dfaf1-5087-4ab1-b7f6-7eaddcea892c","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDb06dfaf1-5087-4ab1-b7f6-7eaddcea892c"}},{"type":"GetParameter","id":"EID9802a990-c384-426d-977d-3782c204020f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"GetParameter","id":"EID5c3a015b-219f-4434-abe8-400b2df0b807","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID46f94c1c-2062-4413-995e-5c7dbbd64f24","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID46f94c1c-2062-4413-995e-5c7dbbd64f24"}},{"type":"ServiceEndpoint","id":"EID1af75ff9-77cc-4727-b9bd-2c37c4f845aa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDeea20723-a722-41ec-99a8-ca79832d75f9","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDeea20723-a722-41ec-99a8-ca79832d75f9"}},{"type":"LogFile","id":"EIDc7f97447-5710-4ed7-b5e1-5644f16caddf","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDc7f97447-5710-4ed7-b5e1-5644f16caddf"}},{"type":"GetParameter","id":"EID4f914f34-b1bf-4ce1-af56-88def27ed2dd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID38f8b290-13b6-4e1c-83c6-a94da6d52906","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID38f8b290-13b6-4e1c-83c6-a94da6d52906"}},{"type":"Message","id":"EIDe64ea7f0-12de-4b0d-86ce-729c05049b6f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe64ea7f0-12de-4b0d-86ce-729c05049b6f"}},{"type":"ServiceEndpoint","id":"EID43143398-2aca-4a23-a164-6005ef0a9eaa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID1194ebd5-7f11-42ec-8723-e3fc5865d31c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID1194ebd5-7f11-42ec-8723-e3fc5865d31c"}},{"type":"Message","id":"EID6052bdea-fafc-49af-8556-aad67e06c8cc","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6052bdea-fafc-49af-8556-aad67e06c8cc"}},{"type":"ServiceResponse","id":"EIDc2893d47-f2aa-42ef-95a1-dca6f00707ca","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDc2893d47-f2aa-42ef-95a1-dca6f00707ca"}},{"type":"GetParameter","id":"EIDd04ec425-71b5-4122-8779-56dc901b6267","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1c1905cd-0402-4942-8ac8-a294fead2373","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID53874062-3bc1-4e04-ae14-3403689685bd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDdc61a8fb-0700-4d69-90b8-e91b04f1ec98","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID805305d8-52f4-49df-b592-f4f6a6d75de0","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID805305d8-52f4-49df-b592-f4f6a6d75de0"}},{"type":"ServiceResponse","id":"EIDf898286b-a9a2-4d49-b3fa-491ff3e1d139","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDf898286b-a9a2-4d49-b3fa-491ff3e1d139"}},{"type":"ServiceResponse","id":"EIDbb24461f-9ec5-49dc-929e-059171334658","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDbb24461f-9ec5-49dc-929e-059171334658"}},{"type":"ServiceEndpoint","id":"EIDeb15b7e6-f2a9-4661-b8dc-c8e1d1795996","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID2d5b85ef-3f04-4bb8-a7c8-5a8fd7a1b233","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID2d5b85ef-3f04-4bb8-a7c8-5a8fd7a1b233"}},{"type":"ServiceResponse","id":"EID98acf24a-debe-402b-aa1d-2fccd3339866","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID98acf24a-debe-402b-aa1d-2fccd3339866"}},{"type":"Message","id":"EID92ea83d7-474e-4055-aa19-f5023cc4de7d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID92ea83d7-474e-4055-aa19-f5023cc4de7d"}},{"type":"Message","id":"EID095d764d-0a81-4b10-9bde-17dcf1742547","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID095d764d-0a81-4b10-9bde-17dcf1742547"}},{"type":"ServiceEndpoint","id":"EID122b0094-f119-45a8-bf08-60e04b5a60bd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID8dbb2937-57fd-4844-ad8b-098593bab28e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDead0e8a8-1387-4800-bb54-5b9f1f88368f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID065c2bd3-d31c-466e-976a-3e0931a38e41","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID36a37abc-3108-4c44-9981-89af6f44ff91","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID5b65c77d-f142-4088-95d4-1389cd49de3b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID65d64253-041c-43e2-99d7-7514dc0c9af4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID63e3fb95-163f-4dc8-921d-ddebddfcf2ac","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID6ac4a694-e50c-4806-8ec6-ef0aa44c6de8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6ac4a694-e50c-4806-8ec6-ef0aa44c6de8"}},{"type":"GetParameter","id":"EID0af33f4f-4e6d-4607-8f8f-3780a3b31b10","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDae2dd7d9-2943-457b-8722-8dbc4bc9ec3e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDae2dd7d9-2943-457b-8722-8dbc4bc9ec3e"}},{"type":"Message","id":"EIDff4ce69a-df2e-487d-ae88-8f59b6d26e30","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDff4ce69a-df2e-487d-ae88-8f59b6d26e30"}},{"type":"GetParameter","id":"EID3ab294db-313b-44c3-93c1-5b959dd9a088","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID2eb742e0-ddd7-4074-b5c3-00228bcadbc7","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID2eb742e0-ddd7-4074-b5c3-00228bcadbc7"}},{"type":"Message","id":"EID48e67dcb-70ab-4fa4-8f1f-42ee913e2bbd","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID48e67dcb-70ab-4fa4-8f1f-42ee913e2bbd"}},{"type":"Message","id":"EID9985bdea-9ede-466b-a306-28f8fc88651e","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID9985bdea-9ede-466b-a306-28f8fc88651e"}},{"type":"Message","id":"EID71cd4980-af8c-4e7c-b58b-eb8499fa195e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID71cd4980-af8c-4e7c-b58b-eb8499fa195e"}},{"type":"GetParameter","id":"EIDee932b24-aaad-4e89-b9cf-32905e20e2cc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID2ddf5ef3-1a02-4ae9-bcc7-779c6e5985d7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EIDebc56fd1-f7ca-4d75-a332-c91c98f939cb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID05f89de5-3b9d-438a-9201-d08bc3e6e490","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa7abfa0c-b740-4899-9788-a449a87ab34b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDa7abfa0c-b740-4899-9788-a449a87ab34b"}},{"type":"Message","id":"EID5ed2e313-71a7-4fb1-bdae-989b219c58a4","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID5ed2e313-71a7-4fb1-bdae-989b219c58a4"}},{"type":"ServiceEndpoint","id":"EID661b2a5a-68df-4c03-8043-e499482c2157","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID34d7c68e-e42c-4966-94b8-4822011c3440","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID90a3c08a-dad8-4379-95bf-b5676f27839a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDabe13f3e-478c-44cc-ba4d-fe69ffe07861","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDabe13f3e-478c-44cc-ba4d-fe69ffe07861"}},{"type":"GetParameter","id":"EIDc24692ea-dc0c-414c-9807-948b19aba4e8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EID02676e5a-2b02-4742-89f7-c482907ae599","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID02676e5a-2b02-4742-89f7-c482907ae599"}},{"type":"ServiceEndpoint","id":"EID9893c7c7-86e2-4bae-a089-2e43d8df162c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDad9d0df8-88e1-4c2a-bee0-b6b3b19a3dbd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDad9d0df8-88e1-4c2a-bee0-b6b3b19a3dbd"}},{"type":"Message","id":"EID6c1d891e-7a95-49f2-8f4f-af1f137d29c2","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6c1d891e-7a95-49f2-8f4f-af1f137d29c2"}},{"type":"Message","id":"EID9ccb2216-3b80-4c7e-8067-db163114a3da","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID9ccb2216-3b80-4c7e-8067-db163114a3da"}},{"type":"ServiceResponse","id":"EIDbf3c8a43-cf3d-4c01-95a5-7e9af93b3433","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDbf3c8a43-cf3d-4c01-95a5-7e9af93b3433"}},{"type":"ServiceResponse","id":"EIDb9a7a734-1e61-4b76-9e49-237aa7b162d0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDb9a7a734-1e61-4b76-9e49-237aa7b162d0"}},{"type":"ServiceEndpoint","id":"EID18ef28c9-d517-4d51-b6f4-2b9451b81c46","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID955df65b-a997-4419-811d-68c4ba404138","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID955df65b-a997-4419-811d-68c4ba404138"}},{"type":"GetParameter","id":"EID7c26e304-8706-41ba-af1c-a722d2859a6d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID45ca8406-790e-490b-aad4-9f11aa4ff949","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID45ca8406-790e-490b-aad4-9f11aa4ff949"}},{"type":"ServiceEndpoint","id":"EIDce4c37e7-3822-4bbc-a9bd-8ed132bf175c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EIDcf3851b0-b965-45e2-a1d2-adf62a6f8ed9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvZG93bmxvYWRzL3JzYV93YXRlcnp1aXZlcmluZ3NpbnN0YWxsYXRpZXNfZXUyMDE1X2dwa2cuemlw"},{"type":"ServiceResponse","id":"EIDf44247af-8d9e-444c-96d2-c8e5258f9578","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDf44247af-8d9e-444c-96d2-c8e5258f9578"}},{"type":"GetParameter","id":"EID36da9143-36af-40eb-b801-a5b6d83aaca1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDfe4848ff-707f-42f5-9d6f-2af6fffc296c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1f1f872d-f5c6-4270-b485-81664d4125a1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDba4d435c-8198-407a-84f5-671ff71de398","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EID74756766-4af8-4c77-818d-e9eed0306311","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID8523678a-c281-4ba1-88cd-6accc404172f","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID8523678a-c281-4ba1-88cd-6accc404172f"}},{"type":"ServiceEndpoint","id":"EID8b035185-b116-44a9-8ede-c7c4a2472a79","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EID6b57570c-3061-49b2-b6e6-e83869302df9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID6b57570c-3061-49b2-b6e6-e83869302df9"}},{"type":"ServiceResponse","id":"EIDea687426-3c1d-4d00-9139-fa472f7ce2c6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDea687426-3c1d-4d00-9139-fa472f7ce2c6"}},{"type":"GetParameter","id":"EID6e58957e-9898-4409-a60a-a24f2b4478d1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9jMjFjNmJmNS04ODk5LTRiNDYtODk4Ni0wZjY1ZWNhMDVlZDAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID3fe6521c-71aa-4db7-98a3-9c1f72d40c9b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID3fe6521c-71aa-4db7-98a3-9c1f72d40c9b"}},{"type":"GetParameter","id":"EIDb6bc5d5a-f11c-433c-bcfb-699b945302d3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDc2c56e6f-80dd-4b1f-b6b1-a79797f379ad","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDc2c56e6f-80dd-4b1f-b6b1-a79797f379ad"}},{"type":"GetParameter","id":"EIDbf61b063-2fdd-4e66-8d8f-58986992f1c7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDd4e0951e-6430-4e12-ba02-9eadff70a8e2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDd4e0951e-6430-4e12-ba02-9eadff70a8e2"}},{"type":"ServiceResponse","id":"EID3c399219-5cea-4bce-9f22-782876123a17","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID3c399219-5cea-4bce-9f22-782876123a17"}},{"type":"ServiceResponse","id":"EID1541a3d0-1a16-462a-89cc-5a60208baec4","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID1541a3d0-1a16-462a-89cc-5a60208baec4"}},{"type":"ServiceResponse","id":"EID1b852fe3-36e9-4300-9a8d-348265a385fe","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID1b852fe3-36e9-4300-9a8d-348265a385fe"}},{"type":"Message","id":"EID8021f406-8851-4bb8-928c-a8a8ee4b7d9d","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID8021f406-8851-4bb8-928c-a8a8ee4b7d9d"}},{"type":"ServiceResponse","id":"EID3f972745-67e9-42fa-a1fb-91cd3b8471be","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID3f972745-67e9-42fa-a1fb-91cd3b8471be"}},{"type":"Message","id":"EID9be49223-6629-4ceb-83b1-59f0d0aa5a81","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID9be49223-6629-4ceb-83b1-59f0d0aa5a81"}},{"type":"GetParameter","id":"EID02f6ec97-5d23-4845-bdec-0a99be954121","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceEndpoint","id":"EID543844ab-8dc4-47a0-aae6-eb6f5be53f86","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID4c4c7689-9404-4916-9f2c-f3d755a3d85f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDea5f5912-8fd6-4a99-b7ac-927825252bc9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID96410e12-24f8-4958-b532-381c3f7db4ef","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID96410e12-24f8-4958-b532-381c3f7db4ef"}},{"type":"ServiceResponse","id":"EID4309a94c-28c3-4ef8-8daa-3a7c79b1b42b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID4309a94c-28c3-4ef8-8daa-3a7c79b1b42b"}},{"type":"Message","id":"EID57f0cfda-b400-4570-9c3f-56f5ade3a172","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID57f0cfda-b400-4570-9c3f-56f5ade3a172"}},{"type":"ServiceEndpoint","id":"EID74c2f54d-f7ef-44f7-8739-925ae04bec09","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDfe43e01d-a2f8-4a27-9065-a05cf699b5fb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDfe43e01d-a2f8-4a27-9065-a05cf699b5fb"}},{"type":"GetParameter","id":"EID839f6c59-f0c5-42b8-9c01-de90d398822c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDea294a03-fafb-49b3-ab0e-8061e45afb72","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDea294a03-fafb-49b3-ab0e-8061e45afb72"}},{"type":"ServiceEndpoint","id":"EID0a5822b8-afb3-4228-b54f-581bde25a5f8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID9f8f1dab-69fb-4d32-8d42-4dc2d5a38ef2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EIDe3bf0f22-e50f-4865-b954-096532c740e1","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe3bf0f22-e50f-4865-b954-096532c740e1"}},{"type":"ServiceEndpoint","id":"EID351962d7-a366-4011-b87c-69692c6364f0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID374ccb8a-abe5-4835-bc50-0098c06bf9e9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID374ccb8a-abe5-4835-bc50-0098c06bf9e9"}},{"type":"ServiceEndpoint","id":"EIDf2f9d3dc-c275-456c-9fcb-e56b4ec06fda","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd252be28-a0c3-4492-82db-4ec62b98519b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe8465118-50d1-4ae0-9a97-86ec8527c0dd","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDe8465118-50d1-4ae0-9a97-86ec8527c0dd"}},{"type":"GetParameter","id":"EID4ea9f305-fad4-40ca-a497-4dc43c5ea14d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID309097e7-0a77-4c1d-a608-718f19c524be","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID309097e7-0a77-4c1d-a608-718f19c524be"}},{"type":"ServiceEndpoint","id":"EID45ab62dd-c927-455e-b33e-5f810afd50bc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0797ffe5-5e2e-4c5e-a113-c22ea899405a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"Message","id":"EID0305a9db-0543-46ae-b93a-019f88dfabc9","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID0305a9db-0543-46ae-b93a-019f88dfabc9"}},{"type":"ServiceEndpoint","id":"EIDfae3468e-834b-403e-b889-5e19b31d3f56","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9yaWNodGxpam5zdGVkZWxpamthZnZhbHdhdGVyMjAxNS9hdG9tL3YxXzAvcnNhX3dhdGVyenVpdmVyaW5nc2luc3RhbGxhdGllc19ldTIwMTUueG1s"},{"type":"ServiceResponse","id":"EIDd065dada-4e92-4e9b-81ed-b22945ffd0d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EIDd065dada-4e92-4e9b-81ed-b22945ffd0d5"}},{"type":"Message","id":"EID180a1288-2e15-4941-b500-2a1fa544c2ba","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID180a1288-2e15-4941-b500-2a1fa544c2ba"}},{"type":"Message","id":"EID2c3a673b-89be-483b-8c53-fd907905abe6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID84ce8428-9126-44cb-b018-55529a525833/Attachments/EID2c3a673b-89be-483b-8c53-fd907905abe6"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:10:05Z","duration":22324,"status":"FAILED"}}}}}
11:10:53.794 [print] EIDe43cc173-1805-44cf-94f4-98c35f178b80
11:10:53.794 [print] FAILED
11:10:53.794 [print] FAILED
11:10:53.794 [print] Conformance Class Download Service - Pre-defined Atom
11:10:53.794 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e43cc173-1805-44cf-94f4-98c35f178b80.json
11:10:53.794 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e43cc173-1805-44cf-94f4-98c35f178b80.json
11:10:53.794 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe43cc173-1805-44cf-94f4-98c35f178b80/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:53.823 [print] [ "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:10:53.823 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:30.661 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/bu/wfs?request=GetCapabilities&service=WFS"}}}
11:09:30.662 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 289
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/bu/wfs?request=GetCapabilities&service=WFS"}}}
11:09:32.313 response time in milliseconds: 1545.71
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:32 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883372135","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:32.313 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:28.857 [print] testing url:https://geodata.nationaalgeoregister.nl/nhi/wfs?request=GetCapabilities
11:09:28.857 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nhi/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:29.281 response time in milliseconds: 423.58 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:28 GMT 1 < X-Cnection: [close, close]
11:09:29.291 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nhi/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:29.722 response time in milliseconds: 430.11 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:28 GMT 1 < X-Cnection: [close, close]
11:09:29.725 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:31.603 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rdinfo/wfs?request=GetCapabilities&service=WFS"}}}
11:10:31.605 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 285
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rdinfo/wfs?request=GetCapabilities&service=WFS"}}}
11:10:36.434 response time in milliseconds: 4721.21
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:36 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883436225","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:36.434 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:39.381 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:14:39.381 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:14:45.437 response time in milliseconds: 5309.79
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:44 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:42 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/7e06ab19-2634-43be-b456-026fb36f2366.json","testRuns":{"TestRun":{"id":"EID7e06ab19-2634-43be-b456-026fb36f2366","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:41.877Z","testTasks":{"TestTask":{"id":"EID14cd4eef-b376-41fb-94af-ecd67dfc7b00","parent":{"ref":"EID7e06ab19-2634-43be-b456-026fb36f2366"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID87a6f209-5e5f-4cba-a717-859932a7f3fb"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID87a6f209-5e5f-4cba-a717-859932a7f3fb","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:39.826Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:41.493Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:45.440 [print] EID7e06ab19-2634-43be-b456-026fb36f2366
11:14:45.440 [print] UNDEFINED
11:14:45.440 [print] Conformance Class Download Service - Pre-defined Atom
11:14:45.440 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/7e06ab19-2634-43be-b456-026fb36f2366.json
11:14:45.440 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/log
11:14:45.440 [print] statuspath TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366
11:14:45.440 [print] progresspath TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
11:14:45.441 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:45.962 response time in milliseconds: 520.43
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:45 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized"]}
11:14:45.962 [print] {
"val": "21",
"max": "22",
"log": [
"28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)",
"28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:41 - Preparing 1 Test Task:",
"28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)",
"28.10.2020 11:14:41 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:41 - with parameters: ",
"28.10.2020 11:14:41 - etf.testcases = *",
"28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:41 - Setting state to CREATED",
"28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z",
"28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:44 - Project Properties: ",
"28.10.2020 11:14:44 - etf.testcases - * ",
"28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:14:44 - username - ",
"28.10.2020 11:14:44 - authUser - ",
"28.10.2020 11:14:44 - authMethod - basic ",
"28.10.2020 11:14:44 - TestRunTask initialized"
]
}
11:14:45.963 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:46.484 response time in milliseconds: 521.38
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:46 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"25","max":"26","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized"]}
11:14:46.485 retry condition not satisfied: response.val == response.max
11:14:46.485 sleeping before retry #1
11:14:51.486 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:57.045 response time in milliseconds: 5558.42
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:56 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"156","max":"157","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:57.045 retry condition not satisfied: response.val == response.max
11:14:57.045 sleeping before retry #2
11:15:02.046 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:02.549 response time in milliseconds: 502.79
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:15:02 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:02.550 retry condition not satisfied: response.val == response.max
11:15:02.550 sleeping before retry #3
11:15:07.551 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:08.071 response time in milliseconds: 519.80
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:15:08 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:08.077 retry condition not satisfied: response.val == response.max
11:15:08.077 sleeping before retry #4
11:15:13.078 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:13.588 response time in milliseconds: 509.75
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:15:13 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:13.594 retry condition not satisfied: response.val == response.max
11:15:13.594 sleeping before retry #5
11:15:18.594 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:19.119 response time in milliseconds: 524.72
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:15:19 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:19.120 retry condition not satisfied: response.val == response.max
11:15:19.120 sleeping before retry #6
11:15:24.120 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:24.646 response time in milliseconds: 525.27
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:15:24 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:24.646 retry condition not satisfied: response.val == response.max
11:15:24.646 sleeping before retry #7
11:15:29.647 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:30.159 response time in milliseconds: 511.42
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:15:30 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:30.166 retry condition not satisfied: response.val == response.max
11:15:30.166 sleeping before retry #8
11:15:35.167 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:35.685 response time in milliseconds: 515.01
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:15:35 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:35.686 retry condition not satisfied: response.val == response.max
11:15:35.686 sleeping before retry #9
11:15:40.686 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:41.205 response time in milliseconds: 518.50
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:15:41 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:41.205 retry condition not satisfied: response.val == response.max
11:15:41.205 sleeping before retry #10
11:15:46.206 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:48.987 response time in milliseconds: 2779.93
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:15:48 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:15:48.987 retry condition not satisfied: response.val == response.max
11:15:48.987 sleeping before retry #11
11:15:53.988 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:54.499 response time in milliseconds: 510.84
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:15:54 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:15:54.500 retry condition not satisfied: response.val == response.max
11:15:54.500 sleeping before retry #12
11:15:59.501 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:00.030 response time in milliseconds: 529.12
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:15:59 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:00.031 retry condition not satisfied: response.val == response.max
11:16:00.031 sleeping before retry #13
11:16:05.031 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:05.536 response time in milliseconds: 504.36
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:16:05 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:05.536 retry condition not satisfied: response.val == response.max
11:16:05.536 sleeping before retry #14
11:16:10.538 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:11.047 response time in milliseconds: 508.42
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:16:10 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:11.047 retry condition not satisfied: response.val == response.max
11:16:11.048 sleeping before retry #15
11:16:16.048 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:16.567 response time in milliseconds: 517.80
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:16:16 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:16.567 retry condition not satisfied: response.val == response.max
11:16:16.567 sleeping before retry #16
11:16:21.568 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:22.078 response time in milliseconds: 509.31
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:16:22 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:22.080 retry condition not satisfied: response.val == response.max
11:16:22.081 sleeping before retry #17
11:16:27.081 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:27.604 response time in milliseconds: 519.06
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:16:27 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:16:27.605 retry condition not satisfied: response.val == response.max
11:16:27.605 sleeping before retry #18
11:16:32.605 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:33.116 response time in milliseconds: 510.25
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:16:33 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:16:31 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:16:33.116 retry condition not satisfied: response.val == response.max
11:16:33.116 sleeping before retry #19
11:16:38.117 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID7e06ab19-2634-43be-b456-026fb36f2366/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:38.638 response time in milliseconds: 520.87
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:16:38 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:14:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:41 UTC 2020)","28.10.2020 11:14:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:41 - Preparing 1 Test Task:","28.10.2020 11:14:41 - TestTask 1 (14cd4eef-b376-41fb-94af-ecd67dfc7b00)","28.10.2020 11:14:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:41 - with parameters: ","28.10.2020 11:14:41 - etf.testcases = *","28.10.2020 11:14:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:41 - Setting state to CREATED","28.10.2020 11:14:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:42 - Starting TestRun.7e06ab19-2634-43be-b456-026fb36f2366 at 2020-10-28T11:14:44Z","28.10.2020 11:14:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:44 - Project Properties: ","28.10.2020 11:14:44 - etf.testcases - * ","28.10.2020 11:14:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:44 - username - ","28.10.2020 11:14:44 - authUser - ","28.10.2020 11:14:44 - authMethod - basic ","28.10.2020 11:14:44 - TestRunTask initialized","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:53 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:15:53 ERROR Response did not meet SLA 40909/30000","28.10.2020 11:15:53 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:15:56 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:16:31 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:16:38.643 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:05:59.572 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/rce/ps-ch/wfs/v1_0?request=GetCapabilities&service=wfs"}}}
11:05:59.573 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/rce/ps-ch/wfs/v1_0?request=GetCapabilities&service=wfs"}}}
11:06:06.519 response time in milliseconds: 6839.02
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:06 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883166345","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:06:06.521 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:56.551 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:10:56.552 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:11:03.130 response time in milliseconds: 5807.56
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:11:02 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:11:00 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/adba38b1-7fe7-42c5-8a94-e50f696fd3ad.json","testRuns":{"TestRun":{"id":"EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:59.079Z","testTasks":{"TestTask":{"id":"EIDc613b005-f33f-4497-ab78-c37af110d61f","parent":{"ref":"EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID96f567ac-651b-4d04-a818-51414f1a3e73"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID96f567ac-651b-4d04-a818-51414f1a3e73","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:10:57.108Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:58.595Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:11:03.141 [print] EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad
11:11:03.142 [print] UNDEFINED
11:11:03.142 [print] Conformance Class Download Service - Pre-defined Atom
11:11:03.142 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/adba38b1-7fe7-42c5-8a94-e50f696fd3ad.json
11:11:03.143 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/log
11:11:03.143 [print] statuspath TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad
11:11:03.144 [print] progresspath TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
11:11:03.145 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:03.667 response time in milliseconds: 520.76
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:11:03 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:10:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:59 UTC 2020)","28.10.2020 11:10:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:59 - Preparing 1 Test Task:","28.10.2020 11:10:59 - TestTask 1 (c613b005-f33f-4497-ab78-c37af110d61f)","28.10.2020 11:10:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:59 - with parameters: ","28.10.2020 11:10:59 - etf.testcases = *","28.10.2020 11:10:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:59 - Setting state to CREATED","28.10.2020 11:10:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:00 - Starting TestRun.adba38b1-7fe7-42c5-8a94-e50f696fd3ad at 2020-10-28T11:11:01Z","28.10.2020 11:11:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:01 - Project Properties: ","28.10.2020 11:11:01 - etf.testcases - * ","28.10.2020 11:11:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:01 - username - ","28.10.2020 11:11:01 - authUser - ","28.10.2020 11:11:01 - authMethod - basic ","28.10.2020 11:11:01 - TestRunTask initialized"]}
11:11:03.667 [print] {
"val": "12",
"max": "13",
"log": [
"28.10.2020 11:10:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:59 UTC 2020)",
"28.10.2020 11:10:59 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:10:59 - Preparing 1 Test Task:",
"28.10.2020 11:10:59 - TestTask 1 (c613b005-f33f-4497-ab78-c37af110d61f)",
"28.10.2020 11:10:59 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:10:59 - with parameters: ",
"28.10.2020 11:10:59 - etf.testcases = *",
"28.10.2020 11:10:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:10:59 - Setting state to CREATED",
"28.10.2020 11:10:59 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:11:00 - Starting TestRun.adba38b1-7fe7-42c5-8a94-e50f696fd3ad at 2020-10-28T11:11:01Z",
"28.10.2020 11:11:01 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:11:01 - Project Properties: ",
"28.10.2020 11:11:01 - etf.testcases - * ",
"28.10.2020 11:11:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:11:01 - username - ",
"28.10.2020 11:11:01 - authUser - ",
"28.10.2020 11:11:01 - authMethod - basic ",
"28.10.2020 11:11:01 - TestRunTask initialized"
]
}
11:11:03.668 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:04.193 response time in milliseconds: 517.85
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:11:04 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:10:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:59 UTC 2020)","28.10.2020 11:10:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:59 - Preparing 1 Test Task:","28.10.2020 11:10:59 - TestTask 1 (c613b005-f33f-4497-ab78-c37af110d61f)","28.10.2020 11:10:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:59 - with parameters: ","28.10.2020 11:10:59 - etf.testcases = *","28.10.2020 11:10:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:59 - Setting state to CREATED","28.10.2020 11:10:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:00 - Starting TestRun.adba38b1-7fe7-42c5-8a94-e50f696fd3ad at 2020-10-28T11:11:01Z","28.10.2020 11:11:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:01 - Project Properties: ","28.10.2020 11:11:01 - etf.testcases - * ","28.10.2020 11:11:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:01 - username - ","28.10.2020 11:11:01 - authUser - ","28.10.2020 11:11:01 - authMethod - basic ","28.10.2020 11:11:01 - TestRunTask initialized"]}
11:11:04.193 retry condition not satisfied: response.val == response.max
11:11:04.193 sleeping before retry #1
11:11:09.194 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:09.719 response time in milliseconds: 524.21
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:11:09 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"69","max":"70","log":["28.10.2020 11:10:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:59 UTC 2020)","28.10.2020 11:10:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:59 - Preparing 1 Test Task:","28.10.2020 11:10:59 - TestTask 1 (c613b005-f33f-4497-ab78-c37af110d61f)","28.10.2020 11:10:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:59 - with parameters: ","28.10.2020 11:10:59 - etf.testcases = *","28.10.2020 11:10:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:59 - Setting state to CREATED","28.10.2020 11:10:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:00 - Starting TestRun.adba38b1-7fe7-42c5-8a94-e50f696fd3ad at 2020-10-28T11:11:01Z","28.10.2020 11:11:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:01 - Project Properties: ","28.10.2020 11:11:01 - etf.testcases - * ","28.10.2020 11:11:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:01 - username - ","28.10.2020 11:11:01 - authUser - ","28.10.2020 11:11:01 - authMethod - basic ","28.10.2020 11:11:01 - TestRunTask initialized","28.10.2020 11:11:06 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:11:06 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:08 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:11:09.720 retry condition not satisfied: response.val == response.max
11:11:09.720 sleeping before retry #2
11:11:14.721 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:15.234 response time in milliseconds: 512.52
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:11:15 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:10:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:59 UTC 2020)","28.10.2020 11:10:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:59 - Preparing 1 Test Task:","28.10.2020 11:10:59 - TestTask 1 (c613b005-f33f-4497-ab78-c37af110d61f)","28.10.2020 11:10:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:59 - with parameters: ","28.10.2020 11:10:59 - etf.testcases = *","28.10.2020 11:10:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:59 - Setting state to CREATED","28.10.2020 11:10:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:00 - Starting TestRun.adba38b1-7fe7-42c5-8a94-e50f696fd3ad at 2020-10-28T11:11:01Z","28.10.2020 11:11:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:01 - Project Properties: ","28.10.2020 11:11:01 - etf.testcases - * ","28.10.2020 11:11:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:01 - username - ","28.10.2020 11:11:01 - authUser - ","28.10.2020 11:11:01 - authMethod - basic ","28.10.2020 11:11:01 - TestRunTask initialized","28.10.2020 11:11:06 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:11:06 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:08 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:10 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:11:10 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:11:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:11 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:12 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:12 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:11:12 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:12 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:12 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:12 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:11:12 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:11:12 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:12 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:11:13 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:13 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:13 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:11:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:14 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:11:15.235 retry condition not satisfied: response.val == response.max
11:11:15.235 sleeping before retry #3
11:11:20.236 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:22.244 response time in milliseconds: 2007.75
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:11:22 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:11:22.245 retry condition satisfied
11:11:22.245 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:11:22.247 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:26.355 response time in milliseconds: 3138.64
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:11:25 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:11:17 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/adba38b1-7fe7-42c5-8a94-e50f696fd3ad.json","testRuns":{"TestRun":{"id":"EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:59.079Z","testTasks":{"TestTask":{"id":"EIDc613b005-f33f-4497-ab78-c37af110d61f","parent":{"ref":"EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID96f567ac-651b-4d04-a818-51414f1a3e73"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID96f567ac-651b-4d04-a818-51414f1a3e73","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:10:57.108Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:58.595Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44","testObject":{"ref":"EID96f567ac-651b-4d04-a818-51414f1a3e73"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee76cfe-0175-1000-615e-a2f5bb0b01bf","testCaseResults":{"TestCaseResult":[{"id":"EID6ee76d43-0175-1000-d08b-b31e2120fcc4","testStepResults":{"TestStepResult":[{"id":"EID6ee76d77-0175-1000-a374-6f09cb5f4de0","parent":{"ref":"EID6ee76d43-0175-1000-d08b-b31e2120fcc4"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:11:02Z","duration":105,"status":"PASSED"},{"id":"EID6ee76de1-0175-1000-911d-b34302f90a80","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee76fc8-0175-1000-00d7-5146c3f5791a","parent":{"ref":"EID6ee76de1-0175-1000-911d-b34302f90a80"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee76fc8-0175-1000-eeba-83628209d126","parent":{"ref":"EID6ee76de1-0175-1000-911d-b34302f90a80"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee76fc8-0175-1000-446a-2fb026949eb4","parent":{"ref":"EID6ee76de1-0175-1000-911d-b34302f90a80"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee76fc8-0175-1000-b048-164a2fa9b6bb","parent":{"ref":"EID6ee76de1-0175-1000-911d-b34302f90a80"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0bccb009-ea09-44a2-b321-376e6145ff45"},{"ref":"EID19701895-1301-46f2-bac0-487e1af35ecf"},{"ref":"EIDc97642f0-eab1-4d06-b20c-ac70c2b6d25d"}]},"parent":{"ref":"EID6ee76d43-0175-1000-d08b-b31e2120fcc4"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:11:02Z","duration":312,"status":"PASSED"}]},"parent":{"ref":"EID6ee76cfe-0175-1000-615e-a2f5bb0b01bf"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:11:01Z","duration":645,"status":"PASSED"},{"id":"EID6ee76fc8-0175-1000-d82f-0730e9704455","testStepResults":{"TestStepResult":{"id":"EID6ee76fc8-0175-1000-fb69-d6834806a479","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77059-0175-1000-e663-89e12538d4fd","parent":{"ref":"EID6ee76fc8-0175-1000-fb69-d6834806a479"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee77059-0175-1000-30ec-38426735fce3","parent":{"ref":"EID6ee76fc8-0175-1000-fb69-d6834806a479"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee77059-0175-1000-fad2-dd874fc45739","parent":{"ref":"EID6ee76fc8-0175-1000-fb69-d6834806a479"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:11:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9196c5fc-984e-4aa9-80e8-c58f052432c1"},{"ref":"EID986c71cf-6a5b-4a6c-ae7d-37008f91f649"},{"ref":"EIDa360e856-9131-4e4a-8076-335a17c6d2e5"}]},"parent":{"ref":"EID6ee76fc8-0175-1000-d82f-0730e9704455"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:11:02Z","duration":33,"status":"PASSED"}},"parent":{"ref":"EID6ee76cfe-0175-1000-615e-a2f5bb0b01bf"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:11:02Z","duration":156,"status":"PASSED"}]},"parent":{"ref":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:11:01Z","duration":870,"status":"PASSED"},{"id":"EID6ee77064-0175-1000-8a3d-058413055f1a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee77064-0175-1000-29a6-3e5f39cfd292","testStepResults":{"TestStepResult":[{"id":"EID6ee77064-0175-1000-04d9-c873f8c3cb6f","parent":{"ref":"EID6ee77064-0175-1000-29a6-3e5f39cfd292"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:11:02Z","duration":33,"status":"PASSED"},{"id":"EID6ee77064-0175-1000-2556-8a1e096d1846","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77170-0175-1000-c34f-f80fc19ffd38","parent":{"ref":"EID6ee77064-0175-1000-2556-8a1e096d1846"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:11:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee77170-0175-1000-16fc-f731c3b7e33a","parent":{"ref":"EID6ee77064-0175-1000-2556-8a1e096d1846"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:11:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee77170-0175-1000-7700-cb0c2cb20de7","parent":{"ref":"EID6ee77064-0175-1000-2556-8a1e096d1846"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:11:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee77170-0175-1000-0b61-7c4c92a8832e","parent":{"ref":"EID6ee77064-0175-1000-2556-8a1e096d1846"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:11:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee77170-0175-1000-4c94-d4f5b093b558","parent":{"ref":"EID6ee77064-0175-1000-2556-8a1e096d1846"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:11:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc8e889ce-77ca-4993-baed-ae35c688ec68"},{"ref":"EID1edf87cf-21b4-4981-a24d-4c9e099a2b5f"},{"ref":"EID357787a8-4b58-4027-871d-58d383d07df7"}]},"parent":{"ref":"EID6ee77064-0175-1000-29a6-3e5f39cfd292"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:11:02Z","duration":122,"status":"PASSED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:11:02Z","duration":406,"status":"PASSED"},{"id":"EID6ee774a1-0175-1000-b009-ac242e898732","testStepResults":{"TestStepResult":[{"id":"EID6ee774a1-0175-1000-4529-d199d0cbbb69","attachments":{"attachment":[{"ref":"EIDecb61e93-6501-4551-8323-3d705f4830ce"},{"ref":"EID98f627aa-9866-4314-aa60-402aa59e575b"}]},"parent":{"ref":"EID6ee774a1-0175-1000-b009-ac242e898732"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:11:03Z","duration":184,"status":"PASSED"},{"id":"EID6ee77583-0175-1000-4673-0972c0f91b58","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7768a-0175-1000-9207-42a6fa866ecf","parent":{"ref":"EID6ee77583-0175-1000-4673-0972c0f91b58"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7768a-0175-1000-bcd0-174540b60daa","parent":{"ref":"EID6ee77583-0175-1000-4673-0972c0f91b58"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7768a-0175-1000-064c-c391995e3527","parent":{"ref":"EID6ee77583-0175-1000-4673-0972c0f91b58"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7768a-0175-1000-e34f-a970e503ae5e","parent":{"ref":"EID6ee77583-0175-1000-4673-0972c0f91b58"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7609b735-31c3-4e71-9e19-6093ed0951e7"},{"ref":"EID51fcc14a-557a-46bd-97c4-6d7fdf3686ed"},{"ref":"EID8c77130c-d6f3-40c7-a2e3-4293357d20be"}]},"parent":{"ref":"EID6ee774a1-0175-1000-b009-ac242e898732"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:11:04Z","duration":107,"status":"PASSED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:11:03Z","duration":489,"status":"PASSED"},{"id":"EID6ee7768a-0175-1000-bbd7-37b9f594884b","testStepResults":{"TestStepResult":[{"id":"EID6ee7768a-0175-1000-9f6a-3966946eff48","attachments":{"attachment":[{"ref":"EID6fd9b1c8-810d-403a-948e-1c5ac0739da9"},{"ref":"EID832e2e2e-f4bc-403b-ab28-9d2897650b50"}]},"parent":{"ref":"EID6ee7768a-0175-1000-bbd7-37b9f594884b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:11:04Z","duration":228,"status":"PASSED"},{"id":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7785c-0175-1000-b429-432b8072e68f","parent":{"ref":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7785c-0175-1000-a3ed-5b67a160ee4b","parent":{"ref":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7785c-0175-1000-6318-eea1cd2058a3","parent":{"ref":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7785c-0175-1000-59fb-5804647c8b81","parent":{"ref":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee7785c-0175-1000-7dd4-890cbccaad6e","parent":{"ref":"EID6ee777a3-0175-1000-bcc8-36cbb24cf4e7"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:11:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb8d6bcd2-5197-4a2c-91b1-3bd6948ac1ca"},{"ref":"EID7bd1e540-14ae-4b24-8908-77d915b40720"},{"ref":"EID22df2e52-d5a3-42a8-b61d-479835fb352a"}]},"parent":{"ref":"EID6ee7768a-0175-1000-bbd7-37b9f594884b"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:11:04Z","duration":69,"status":"PASSED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:11:04Z","duration":466,"status":"PASSED"},{"id":"EID6ee77870-0175-1000-266a-f60f95a181a2","testStepResults":{"TestStepResult":[{"id":"EID6ee77871-0175-1000-f022-92d25b0794c9","attachments":{"attachment":[{"ref":"EID0936e062-b377-4bd2-bdab-5937ef10d39f"},{"ref":"EID3f7b7079-7754-4a9c-9ad2-d746a82101c6"}]},"parent":{"ref":"EID6ee77870-0175-1000-266a-f60f95a181a2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:11:04Z","duration":133,"status":"PASSED"},{"id":"EID6ee77938-0175-1000-6704-635b252eef65","parent":{"ref":"EID6ee77870-0175-1000-266a-f60f95a181a2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77938-0175-1000-ce9d-657fc3555e31","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee779e2-0175-1000-3b07-71b44661cdf8","parent":{"ref":"EID6ee77938-0175-1000-ce9d-657fc3555e31"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee779e2-0175-1000-4a31-b61385b187b9","parent":{"ref":"EID6ee77938-0175-1000-ce9d-657fc3555e31"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee779e2-0175-1000-fca5-acd3be2b1b12","parent":{"ref":"EID6ee77938-0175-1000-ce9d-657fc3555e31"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee779e2-0175-1000-cd8c-77783194c842","parent":{"ref":"EID6ee77938-0175-1000-ce9d-657fc3555e31"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa9071770-8e6a-4e29-869b-bb7580377014"},{"ref":"EID224dbd22-15d1-442e-96c6-913c7229fba7"},{"ref":"EID8e2ac076-0492-4d45-a346-e8a84f0ce15c"}]},"parent":{"ref":"EID6ee77870-0175-1000-266a-f60f95a181a2"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:11:05Z","duration":45,"status":"PASSED"},{"id":"EID6ee779e2-0175-1000-5f6d-6a7b20761049","attachments":{"attachment":{"ref":"EID5bdfeeae-6afa-4d40-a1df-988246b102c7"}},"parent":{"ref":"EID6ee77870-0175-1000-266a-f60f95a181a2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:11:05Z","duration":1,"status":"PASSED"},{"id":"EID6ee779ef-0175-1000-0325-e14d056908ea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77acc-0175-1000-b293-38d87ec9fba0","parent":{"ref":"EID6ee779ef-0175-1000-0325-e14d056908ea"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77acc-0175-1000-992f-9ee928e101c2","parent":{"ref":"EID6ee779ef-0175-1000-0325-e14d056908ea"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77acc-0175-1000-fcf9-4f2d15d88d64","parent":{"ref":"EID6ee779ef-0175-1000-0325-e14d056908ea"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77acc-0175-1000-9888-6aa2aae06dc3","parent":{"ref":"EID6ee779ef-0175-1000-0325-e14d056908ea"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77acc-0175-1000-34aa-e4b28f42af37","parent":{"ref":"EID6ee779ef-0175-1000-0325-e14d056908ea"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8da46067-366a-41cf-be06-7445b21bd051"},{"ref":"EID1a041037-b248-4a44-8bd9-ef875abc9b69"},{"ref":"EID93dade34-377e-4d28-b0c8-6735fcfd3b07"}]},"parent":{"ref":"EID6ee77870-0175-1000-266a-f60f95a181a2"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:11:05Z","duration":89,"status":"PASSED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:11:04Z","duration":604,"status":"PASSED"},{"id":"EID6ee77acc-0175-1000-dd37-994ce31f0a01","testStepResults":{"TestStepResult":[{"id":"EID6ee77acc-0175-1000-9e7b-91b9aeeb386c","attachments":{"attachment":[{"ref":"EIDe15f6860-5c2c-435f-ad8d-57e6cb2b9c7f"},{"ref":"EID44215be6-aeec-4499-8b7d-66830167ec8c"}]},"parent":{"ref":"EID6ee77acc-0175-1000-dd37-994ce31f0a01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:11:05Z","duration":102,"status":"PASSED"},{"id":"EID6ee77b6b-0175-1000-4617-5a01739fd420","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77c71-0175-1000-bad9-1f1390d01396","parent":{"ref":"EID6ee77b6b-0175-1000-4617-5a01739fd420"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77c71-0175-1000-1e7c-ae2049b93c07","parent":{"ref":"EID6ee77b6b-0175-1000-4617-5a01739fd420"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77c71-0175-1000-fce0-67b29ad7a95b","parent":{"ref":"EID6ee77b6b-0175-1000-4617-5a01739fd420"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee77c71-0175-1000-f418-5d97f1023cd4","parent":{"ref":"EID6ee77b6b-0175-1000-4617-5a01739fd420"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:11:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID121386b8-9490-47c9-91b0-897bea61aa49"},{"ref":"EIDd8ef0c5f-8fe9-4af0-9df8-736490d43216"},{"ref":"EID575aa18f-8568-4dc3-8e41-fc6000121af1"}]},"parent":{"ref":"EID6ee77acc-0175-1000-dd37-994ce31f0a01"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:11:05Z","duration":84,"status":"PASSED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:11:05Z","duration":421,"status":"PASSED"},{"id":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d","testStepResults":{"TestStepResult":[{"id":"EID6ee77c71-0175-1000-dd3c-6b63c743910f","attachments":{"attachment":[{"ref":"EIDb5cd8d9a-3007-46b9-bea7-279ca7a0a7cb"},{"ref":"EID71dc9759-ed86-46b5-ba06-f14a358b5a8c"}]},"parent":{"ref":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:11:05Z","duration":155,"status":"PASSED"},{"id":"EID6ee77d3a-0175-1000-23df-1acf0687637a","parent":{"ref":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee77d3a-0175-1000-4c65-ce5816cb7621","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77eab-0175-1000-a7d8-14212409aa83","parent":{"ref":"EID6ee77d3a-0175-1000-4c65-ce5816cb7621"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee77eab-0175-1000-15a2-721e6f75b306","parent":{"ref":"EID6ee77d3a-0175-1000-4c65-ce5816cb7621"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee77eab-0175-1000-3212-e967b6ee6beb","parent":{"ref":"EID6ee77d3a-0175-1000-4c65-ce5816cb7621"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee77eac-0175-1000-ad67-c47b5da0d641","parent":{"ref":"EID6ee77d3a-0175-1000-4c65-ce5816cb7621"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID10031700-1beb-4610-9831-e02536841617"},{"ref":"EIDc93618ab-71fa-4c79-a829-a7abe5e12886"},{"ref":"EIDb0ac13a0-c932-48c5-8405-b7628b09cc5a"}]},"parent":{"ref":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:11:06Z","duration":65,"status":"PASSED"},{"id":"EID6ee77eac-0175-1000-2f2c-dfa0083ab8f1","attachments":{"attachment":{"ref":"EID47acf478-8a16-472b-9fd8-804ba445d0ea"}},"parent":{"ref":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:11:06Z","duration":1,"status":"PASSED"},{"id":"EID6ee77ebe-0175-1000-d6ee-52d6a464df10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee77fe3-0175-1000-821f-76fc00a2301f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee77ebe-0175-1000-d6ee-52d6a464df10"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:11:06Z","duration":39,"status":"FAILED"},{"id":"EID6ee7800a-0175-1000-a66b-3bfaa4eec5e1","parent":{"ref":"EID6ee77ebe-0175-1000-d6ee-52d6a464df10"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee7800a-0175-1000-25c1-bc4ddbe67ce4","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee77ebe-0175-1000-d6ee-52d6a464df10"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:11:06Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf4688ffb-9e70-47a0-94df-d6ba17eee167"},{"ref":"EIDdbade434-0af2-4eca-8d2b-c254471940f6"},{"ref":"EID68ce262a-2dc3-4c2a-8015-08cdf66ea97f"}]},"parent":{"ref":"EID6ee77c71-0175-1000-b6ac-3090ae89a48d"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:11:06Z","duration":212,"status":"FAILED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:11:05Z","duration":948,"status":"FAILED"},{"id":"EID6ee78025-0175-1000-a1c8-7a1a93279804","testStepResults":{"TestStepResult":[{"id":"EID6ee78025-0175-1000-5cc2-ccac3bf6bc60","attachments":{"attachment":[{"ref":"EID087d549a-1e87-46e1-bcd0-d6ea416f441f"},{"ref":"EIDed9787b5-0024-4b70-accb-42ea47219475"}]},"parent":{"ref":"EID6ee78025-0175-1000-a1c8-7a1a93279804"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:11:06Z","duration":329,"status":"PASSED"},{"id":"EID6ee781f4-0175-1000-e509-491767051aa1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee782ab-0175-1000-b456-6f4ff4dfdb7f","parent":{"ref":"EID6ee781f4-0175-1000-e509-491767051aa1"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee782ab-0175-1000-fe98-2cfd3d4d28eb","parent":{"ref":"EID6ee781f4-0175-1000-e509-491767051aa1"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee782ab-0175-1000-adf6-e9c0421c4249","parent":{"ref":"EID6ee781f4-0175-1000-e509-491767051aa1"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee782ab-0175-1000-ff90-5cd1a1744195","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee781f4-0175-1000-e509-491767051aa1"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID2ee16628-107f-4267-bbfb-f01d0728aa84"},{"ref":"EIDbc6597c5-dbcb-467d-93ff-e79c53d3fdde"},{"ref":"EID2286f611-50af-4b4f-9918-bc24ab9cc1d1"}]},"parent":{"ref":"EID6ee78025-0175-1000-a1c8-7a1a93279804"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:11:07Z","duration":58,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:11:06Z","duration":646,"status":"PASSED_MANUAL"},{"id":"EID6ee782ac-0175-1000-252d-722e5fe26077","testStepResults":{"TestStepResult":{"id":"EID6ee782ac-0175-1000-44ec-959247d2f784","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee783f2-0175-1000-9984-e41fd4f6ef48","parent":{"ref":"EID6ee782ac-0175-1000-44ec-959247d2f784"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee783f2-0175-1000-54a1-99744af539c7","parent":{"ref":"EID6ee782ac-0175-1000-44ec-959247d2f784"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee783f2-0175-1000-70e0-9b533c80fc95","parent":{"ref":"EID6ee782ac-0175-1000-44ec-959247d2f784"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee783f3-0175-1000-dd4a-df717381a6c3","parent":{"ref":"EID6ee782ac-0175-1000-44ec-959247d2f784"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID138f1ea9-1f9b-4c3a-a85d-c3f52e924d89"},{"ref":"EIDc5b243cd-c29e-4570-8775-f3871896ae8a"},{"ref":"EIDf15a988e-44e0-42ed-87de-dd749d00b9d7"}]},"parent":{"ref":"EID6ee782ac-0175-1000-252d-722e5fe26077"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:11:07Z","duration":47,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:11:07Z","duration":327,"status":"PASSED"},{"id":"EID6ee783f3-0175-1000-35ab-98db90ab1323","testStepResults":{"TestStepResult":{"id":"EID6ee783f3-0175-1000-4c74-37074f665eb2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78482-0175-1000-54f2-5690e7be1438","parent":{"ref":"EID6ee783f3-0175-1000-4c74-37074f665eb2"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee78482-0175-1000-5ef3-643a75dc094e","parent":{"ref":"EID6ee783f3-0175-1000-4c74-37074f665eb2"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee78482-0175-1000-24bb-eca62b179670","parent":{"ref":"EID6ee783f3-0175-1000-4c74-37074f665eb2"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee78482-0175-1000-a470-f7dad1a702c8","parent":{"ref":"EID6ee783f3-0175-1000-4c74-37074f665eb2"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:11:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc832ea64-bb25-4478-b1af-c3b4597df39e"},{"ref":"EID0c7c2c19-c3f3-4526-8d88-1c7ffe2230bd"},{"ref":"EID670122eb-b703-4cfe-bd50-9386296e091b"}]},"parent":{"ref":"EID6ee783f3-0175-1000-35ab-98db90ab1323"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:11:07Z","duration":42,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:11:07Z","duration":155,"status":"PASSED"},{"id":"EID6ee7848e-0175-1000-191d-6d998326ddd0","testStepResults":{"TestStepResult":{"id":"EID6ee7848e-0175-1000-cb6f-e80be509e3ff","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID27d9f4a6-e51c-455b-8d00-c92c5ae0329e"},{"ref":"EIDc4285402-ae97-459f-ba5e-87db953f9954"},{"ref":"EID3e68506b-5b22-461d-a40f-58d2c8869d3a"},{"ref":"EIDdf97baa4-0633-4803-a1a1-cd4d10636051"},{"ref":"EIDb153fcf6-9ad7-4015-a255-c07d4819abef"},{"ref":"EIDc8f5869d-4ab8-4119-ab85-d25e282d31dc"},{"ref":"EIDf5085727-4b62-43ad-88cb-8477625bcadf"},{"ref":"EID05bba0ba-77ac-4410-8af3-0b4406c17b2a"},{"ref":"EID5d3ad412-9a2b-491f-9758-50121aecc5b0"}]},"parent":{"ref":"EID6ee7848e-0175-1000-191d-6d998326ddd0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:11:07Z","duration":498,"status":"SKIPPED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:11:07Z","duration":721,"status":"SKIPPED"},{"id":"EID6ee7875f-0175-1000-40cc-9c5352b8c11b","testStepResults":{"TestStepResult":{"id":"EID6ee7875f-0175-1000-1217-ad01e25bd9ee","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78862-0175-1000-06a5-6087878c1064","parent":{"ref":"EID6ee7875f-0175-1000-1217-ad01e25bd9ee"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:11:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee78862-0175-1000-d1fc-e60c0c688065","parent":{"ref":"EID6ee7875f-0175-1000-1217-ad01e25bd9ee"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:11:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee78862-0175-1000-0ee7-9d5e73ad50e4","parent":{"ref":"EID6ee7875f-0175-1000-1217-ad01e25bd9ee"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:11:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee78862-0175-1000-7660-cad3f1e633fb","parent":{"ref":"EID6ee7875f-0175-1000-1217-ad01e25bd9ee"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:11:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1fe770c7-0aef-4bc6-8532-4a5152515b96"},{"ref":"EID5298f93e-f380-4151-b2e1-cfcb68955727"},{"ref":"EIDb331ffdf-c42c-4d97-a023-06ed6bc1f678"}]},"parent":{"ref":"EID6ee7875f-0175-1000-40cc-9c5352b8c11b"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:11:08Z","duration":69,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:11:08Z","duration":259,"status":"PASSED"},{"id":"EID6ee78862-0175-1000-fb29-4e551bb1e20d","testStepResults":{"TestStepResult":{"id":"EID6ee78863-0175-1000-751f-ece4caab0f42","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7895d-0175-1000-3953-0e6506d7dfde","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee7895d-0175-1000-0f0d-0d6d0318073c","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee7895d-0175-1000-6ebb-6d63d8915679","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee7895d-0175-1000-a4fd-0b430db4db0e","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee7895d-0175-1000-e2d7-b7a9d4569af2","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee7895d-0175-1000-8f95-2d2a0b6ecaf3","parent":{"ref":"EID6ee78863-0175-1000-751f-ece4caab0f42"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb733baad-d4ec-4b40-a4f1-84e119a8cc09"},{"ref":"EIDca2924b0-9498-4b0b-893c-4b4bb949055c"},{"ref":"EIDce2c3ed9-8733-4247-a225-5ea2fe03f41c"}]},"parent":{"ref":"EID6ee78862-0175-1000-fb29-4e551bb1e20d"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:11:08Z","duration":57,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:11:08Z","duration":251,"status":"PASSED"},{"id":"EID6ee7895e-0175-1000-bb3f-13f67e04dd69","testStepResults":{"TestStepResult":{"id":"EID6ee7895e-0175-1000-613d-4c571b974a73","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78a8c-0175-1000-3f27-1b92bfcb485a","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78a8c-0175-1000-cfab-a32ffcdf21d3","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78a8c-0175-1000-714f-50b5dbfa4132","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78a8c-0175-1000-bd98-44559b5db2cf","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78a8c-0175-1000-7ec3-172a4a2d9e26","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78a8c-0175-1000-c982-7de4ac7b5486","parent":{"ref":"EID6ee7895e-0175-1000-613d-4c571b974a73"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID629a19ec-1a6a-490e-9213-498605c3768a"},{"ref":"EID7f269135-3c7d-4e4a-8664-6a312150a2e7"},{"ref":"EID422b4706-2bfc-42b5-9d75-0dc80460ca65"}]},"parent":{"ref":"EID6ee7895e-0175-1000-bb3f-13f67e04dd69"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:11:09Z","duration":52,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:11:09Z","duration":302,"status":"PASSED"},{"id":"EID6ee78a8d-0175-1000-0d30-132ddd83e540","testStepResults":{"TestStepResult":{"id":"EID6ee78a8d-0175-1000-b452-acfa3b90fab5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78b88-0175-1000-c709-129cf221e8ba","parent":{"ref":"EID6ee78a8d-0175-1000-b452-acfa3b90fab5"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78b88-0175-1000-f647-4575287e9c27","parent":{"ref":"EID6ee78a8d-0175-1000-b452-acfa3b90fab5"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78b88-0175-1000-6c8b-e44f3463548f","parent":{"ref":"EID6ee78a8d-0175-1000-b452-acfa3b90fab5"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee78b88-0175-1000-0a44-11fee79d0c6c","parent":{"ref":"EID6ee78a8d-0175-1000-b452-acfa3b90fab5"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:11:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb654603e-8c96-485a-a95f-f76a0510e064"},{"ref":"EID23ddad78-a3e2-4553-9c68-bb23d00b7f40"},{"ref":"EID894ff010-a9c6-4143-8fb9-0d324d4670e5"}]},"parent":{"ref":"EID6ee78a8d-0175-1000-0d30-132ddd83e540"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:11:09Z","duration":66,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:11:09Z","duration":251,"status":"PASSED"},{"id":"EID6ee78b88-0175-1000-a142-c1bf010e014e","testStepResults":{"TestStepResult":[{"id":"EID6ee78b88-0175-1000-b386-f04e17873cc8","attachments":{"attachment":[{"ref":"EID472f7165-30ad-400f-b024-54966c2a2739"},{"ref":"EIDe9f98711-9144-4014-87fd-8baa991f6636"},{"ref":"EID0f5369e2-3225-4bb6-9df2-01b7492193b4"},{"ref":"EID80bf2117-0bf0-4707-875b-c0fce5441406"}]},"parent":{"ref":"EID6ee78b88-0175-1000-a142-c1bf010e014e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:11:09Z","duration":421,"status":"PASSED"},{"id":"EID6ee78d7b-0175-1000-fc00-2eec9ce72030","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78eac-0175-1000-a835-8da6b882186e","parent":{"ref":"EID6ee78d7b-0175-1000-fc00-2eec9ce72030"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78eac-0175-1000-05de-74862066946d","parent":{"ref":"EID6ee78d7b-0175-1000-fc00-2eec9ce72030"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78eac-0175-1000-406b-e7a46a096fee","parent":{"ref":"EID6ee78d7b-0175-1000-fc00-2eec9ce72030"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78eac-0175-1000-b1ba-184113360dca","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee78d7b-0175-1000-fc00-2eec9ce72030"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDb2a995e8-0cd5-436c-ae7e-3e8549a01c87"},{"ref":"EIDc5b9c20a-0d2a-453e-be59-f9ee60d99bf6"},{"ref":"EIDad8dcf68-d9bc-4d0d-afa5-b3371ae9face"}]},"parent":{"ref":"EID6ee78b88-0175-1000-a142-c1bf010e014e"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:11:10Z","duration":32,"status":"FAILED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:11:09Z","duration":805,"status":"FAILED"},{"id":"EID6ee78eae-0175-1000-b5ab-9537307ba7ea","testStepResults":{"TestStepResult":{"id":"EID6ee78eae-0175-1000-eb30-f78b47eeb876","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee78f91-0175-1000-0e08-1bedfe451f10","parent":{"ref":"EID6ee78eae-0175-1000-eb30-f78b47eeb876"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78f91-0175-1000-90a5-e8649c619616","parent":{"ref":"EID6ee78eae-0175-1000-eb30-f78b47eeb876"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78f91-0175-1000-716c-d577dc877f43","parent":{"ref":"EID6ee78eae-0175-1000-eb30-f78b47eeb876"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78f91-0175-1000-0963-048d32e3d41e","parent":{"ref":"EID6ee78eae-0175-1000-eb30-f78b47eeb876"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8cf43339-265e-4293-a70d-c2d04e1fb27d"},{"ref":"EID4a35759a-7fc0-4757-874b-dde6af28d74b"},{"ref":"EID6d773349-7a18-4611-8037-a9cd46c04bec"}]},"parent":{"ref":"EID6ee78eae-0175-1000-b5ab-9537307ba7ea"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:11:10Z","duration":100,"status":"PASSED"}},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:11:10Z","duration":227,"status":"PASSED"},{"id":"EID6ee78f9a-0175-1000-921d-2966d6486e1b","testStepResults":{"TestStepResult":[{"id":"EID6ee78f9a-0175-1000-9df3-02db76d9b362","parent":{"ref":"EID6ee78f9a-0175-1000-921d-2966d6486e1b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee78f9a-0175-1000-3c58-1f3629f65090","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79054-0175-1000-576c-42ed8f4fd4ec","parent":{"ref":"EID6ee78f9a-0175-1000-3c58-1f3629f65090"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee79054-0175-1000-8814-8c8e26c915f1","parent":{"ref":"EID6ee78f9a-0175-1000-3c58-1f3629f65090"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee79054-0175-1000-e8ee-6f069f1c000f","parent":{"ref":"EID6ee78f9a-0175-1000-3c58-1f3629f65090"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee79054-0175-1000-8b5b-63c419703e1a","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee78f9a-0175-1000-3c58-1f3629f65090"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID995795cd-27d6-4e14-b7ea-29c75dd7ef03"},{"ref":"EID59a6cbec-f842-494b-9e04-90e4b745bf1c"},{"ref":"EID7ab42b43-a24b-4e31-b9dc-ddb0f5bd60d4"}]},"parent":{"ref":"EID6ee78f9a-0175-1000-921d-2966d6486e1b"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:11:10Z","duration":48,"status":"FAILED"}]},"parent":{"ref":"EID6ee77064-0175-1000-8a3d-058413055f1a"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:11:10Z","duration":186,"status":"FAILED"}]},"parent":{"ref":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:11:02Z","duration":8177,"status":"FAILED"},{"id":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc","testCaseResults":{"TestCaseResult":[{"id":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5","testStepResults":{"TestStepResult":[{"id":"EID6ee79056-0175-1000-8375-f0af96b82514","parent":{"ref":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:11:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee79056-0175-1000-7d9d-c1777c172ce0","parent":{"ref":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:11:10Z","duration":100,"status":"PASSED"},{"id":"EID6ee79056-0175-1000-697e-88891ebc553d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7911e-0175-1000-6889-5236efe70b40","parent":{"ref":"EID6ee79056-0175-1000-697e-88891ebc553d"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee7911e-0175-1000-0f85-b08345039878","parent":{"ref":"EID6ee79056-0175-1000-697e-88891ebc553d"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee7911e-0175-1000-a42e-a02692b0e716","parent":{"ref":"EID6ee79056-0175-1000-697e-88891ebc553d"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDef8def6b-af5d-4300-b718-229c1dbf1bfd"},{"ref":"EIDfb9682f6-10d5-4a1c-80d1-3980652f2cb5"},{"ref":"EIDa693a35c-9eea-4179-aa6a-da62e7afccae"}]},"parent":{"ref":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:11:10Z","duration":82,"status":"PASSED"},{"id":"EID6ee7911f-0175-1000-6b7a-673c0a139c73","attachments":{"attachment":{"ref":"EIDbccaf07f-73f2-4f2f-b5d3-0111459bfd74"}},"parent":{"ref":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee7912d-0175-1000-9223-c78b542141c0","parent":{"ref":"EID6ee79056-0175-1000-9019-e6a5d4de8ee5"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:11:11Z","duration":67,"status":"PASSED"}]},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:11:10Z","duration":283,"status":"PASSED"},{"id":"EID6ee79171-0175-1000-d4a2-748f9a16abdb","testStepResults":{"TestStepResult":[{"id":"EID6ee79171-0175-1000-20cb-ddb13a030ea1","parent":{"ref":"EID6ee79171-0175-1000-d4a2-748f9a16abdb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:11:11Z","duration":33,"status":"PASSED"},{"id":"EID6ee79171-0175-1000-9428-173e6e5ff535","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee791d2-0175-1000-0bbb-9131e9c50814","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79171-0175-1000-9428-173e6e5ff535"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:11:11Z","duration":10,"status":"FAILED"},{"id":"EID6ee791dc-0175-1000-2622-68cb55eceaee","parent":{"ref":"EID6ee79171-0175-1000-9428-173e6e5ff535"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee791dc-0175-1000-a191-0a774acadf9d","parent":{"ref":"EID6ee79171-0175-1000-9428-173e6e5ff535"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee791dc-0175-1000-cf65-9ba5d81410b0","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee79171-0175-1000-9428-173e6e5ff535"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"},{"id":"EID6ee791dc-0175-1000-f64a-d07de3a4bd61","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee79171-0175-1000-9428-173e6e5ff535"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID220ce76d-cd81-4fec-b0ca-24969e887530"},{"ref":"EID325e9009-8120-4c51-b7d6-b1ff5bd34af5"},{"ref":"EID4d29838a-cb50-4ec6-9815-e542a7c97290"}]},"parent":{"ref":"EID6ee79171-0175-1000-d4a2-748f9a16abdb"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:11:11Z","duration":33,"status":"FAILED"}]},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:11:11Z","duration":107,"status":"FAILED"},{"id":"EID6ee791dd-0175-1000-4196-778bf6c2c9f6","testStepResults":{"TestStepResult":{"id":"EID6ee791dd-0175-1000-e7a1-b5de76fac2d7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79245-0175-1000-98ce-b82d51b0fde2","parent":{"ref":"EID6ee791dd-0175-1000-e7a1-b5de76fac2d7"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee79245-0175-1000-5ea6-1207f7a184c0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee791dd-0175-1000-e7a1-b5de76fac2d7"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:11:11Z","duration":13,"status":"FAILED"},{"id":"EID6ee79253-0175-1000-b2d6-32105b0aa44d","parent":{"ref":"EID6ee791dd-0175-1000-e7a1-b5de76fac2d7"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe4054650-6e71-4772-97e0-cccea7d59371"},{"ref":"EID37eddf5d-9583-47a2-99a5-b41436700674"},{"ref":"EID338385d6-8405-44b4-aecc-516d2fcda94f"}]},"parent":{"ref":"EID6ee791dd-0175-1000-4196-778bf6c2c9f6"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:11:11Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:11:11Z","duration":118,"status":"FAILED"},{"id":"EID6ee79253-0175-1000-7720-caceb927b054","testStepResults":{"TestStepResult":{"id":"EID6ee79253-0175-1000-81ce-e1b34d7c9020","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee792ed-0175-1000-1e3c-f228ca7c4fbd","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee79253-0175-1000-81ce-e1b34d7c9020"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"},{"id":"EID6ee792ed-0175-1000-b970-48f514930ae1","parent":{"ref":"EID6ee79253-0175-1000-81ce-e1b34d7c9020"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee792ed-0175-1000-c706-fc365e5061c8","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79253-0175-1000-81ce-e1b34d7c9020"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:11:11Z","duration":11,"status":"FAILED"},{"id":"EID6ee792f8-0175-1000-e0d0-beb8602e1590","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee79253-0175-1000-81ce-e1b34d7c9020"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa1d62560-c619-4045-9dc3-7e2b0dea6016"},{"ref":"EIDeab440dd-0cc1-46a7-88ef-04914e670c26"},{"ref":"EID047976ec-0597-4ab2-ab18-a0dd897a4fe8"}]},"parent":{"ref":"EID6ee79253-0175-1000-7720-caceb927b054"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:11:11Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:11:11Z","duration":165,"status":"FAILED"},{"id":"EID6ee792f8-0175-1000-c09a-d181afcdb8d9","testStepResults":{"TestStepResult":{"id":"EID6ee792f8-0175-1000-2181-94c1c3b862b4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7936a-0175-1000-c7aa-4185cd685520","parent":{"ref":"EID6ee792f8-0175-1000-2181-94c1c3b862b4"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee7936a-0175-1000-f9ad-37e4770b5db0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee792f8-0175-1000-2181-94c1c3b862b4"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:11:11Z","duration":11,"status":"FAILED"},{"id":"EID6ee79375-0175-1000-9f99-99746e2eae0a","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee792f8-0175-1000-2181-94c1c3b862b4"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID84452361-0af8-42c1-9a60-617e9aaf64b6"},{"ref":"EIDb848d782-c1a0-473e-874a-11610740cd25"},{"ref":"EIDe14609bb-c2f9-4a4a-957a-6d74c258980f"}]},"parent":{"ref":"EID6ee792f8-0175-1000-c09a-d181afcdb8d9"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:11:11Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:11:11Z","duration":126,"status":"FAILED"},{"id":"EID6ee79376-0175-1000-8034-ae5d12bbd35a","testStepResults":{"TestStepResult":{"id":"EID6ee79376-0175-1000-df08-633473509ef9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee793d2-0175-1000-11bc-187f49300fcd","parent":{"ref":"EID6ee79376-0175-1000-df08-633473509ef9"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee793d2-0175-1000-f478-90a8eedbeb36","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79376-0175-1000-df08-633473509ef9"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:11:11Z","duration":94,"status":"FAILED"},{"id":"EID6ee79430-0175-1000-ca6c-17931299857e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee79376-0175-1000-df08-633473509ef9"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:11:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID87f6632d-f630-4ac6-8116-ee435167eb39"},{"ref":"EIDd599106a-a513-4d87-b3f6-d9315b1bbddf"},{"ref":"EID9f43dc25-13b8-4b0a-bea2-25c82209382c"}]},"parent":{"ref":"EID6ee79376-0175-1000-8034-ae5d12bbd35a"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:11:11Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:11:11Z","duration":186,"status":"FAILED"},{"id":"EID6ee79430-0175-1000-8a26-9737a5288d26","testStepResults":{"TestStepResult":{"id":"EID6ee79430-0175-1000-0c28-3ef940f9518d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee794e6-0175-1000-7049-3f889f5e44bb","parent":{"ref":"EID6ee79430-0175-1000-0c28-3ef940f9518d"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee794e6-0175-1000-ca58-f392cbf8315d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79430-0175-1000-0c28-3ef940f9518d"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:11:12Z","duration":11,"status":"FAILED"},{"id":"EID6ee794f1-0175-1000-ab18-2d8ede20192d","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee79430-0175-1000-0c28-3ef940f9518d"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"FAILED"},{"id":"EID6ee794f1-0175-1000-5d69-5d63ffcfbd66","parent":{"ref":"EID6ee79430-0175-1000-0c28-3ef940f9518d"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee794f1-0175-1000-0a64-64c5d301c1ea","parent":{"ref":"EID6ee79430-0175-1000-0c28-3ef940f9518d"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID80b0e27d-c6ec-457f-a8d3-f825a7eb1756"},{"ref":"EIDbae5b3aa-547d-4eaf-bfdf-cdd41d3f35cb"},{"ref":"EID8f291dc8-9e7e-4756-8541-b497811f6f4c"}]},"parent":{"ref":"EID6ee79430-0175-1000-8a26-9737a5288d26"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:11:11Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:11:11Z","duration":193,"status":"FAILED"},{"id":"EID6ee794f1-0175-1000-0f00-4f72d00bfd49","testStepResults":{"TestStepResult":{"id":"EID6ee794f1-0175-1000-2b7e-4cbb79362acb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79540-0175-1000-5f05-49f4ebc9a924","parent":{"ref":"EID6ee794f1-0175-1000-2b7e-4cbb79362acb"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee79540-0175-1000-17d8-f9d0a1258787","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee794f1-0175-1000-2b7e-4cbb79362acb"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:11:12Z","duration":20,"status":"FAILED"},{"id":"EID6ee79554-0175-1000-8ef0-faaa7686ac27","parent":{"ref":"EID6ee794f1-0175-1000-2b7e-4cbb79362acb"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc57c7434-84db-41a8-b9f0-fa118517d802"},{"ref":"EID7be47814-aa2f-4760-b9ef-bf4b073b703d"},{"ref":"EID64842a08-be4c-417d-bdee-8d4c8903bb87"}]},"parent":{"ref":"EID6ee794f1-0175-1000-0f00-4f72d00bfd49"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:11:12Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:11:12Z","duration":99,"status":"FAILED"},{"id":"EID6ee79554-0175-1000-0392-be40ea8caa6c","testStepResults":{"TestStepResult":{"id":"EID6ee79554-0175-1000-4efa-df85ebdfbc67","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee795b7-0175-1000-6b07-476194ae924b","parent":{"ref":"EID6ee79554-0175-1000-4efa-df85ebdfbc67"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee795b7-0175-1000-5dab-ef943eef1bf1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79554-0175-1000-4efa-df85ebdfbc67"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:11:12Z","duration":11,"status":"FAILED"},{"id":"EID6ee795c2-0175-1000-e60f-cb29873c63b3","parent":{"ref":"EID6ee79554-0175-1000-4efa-df85ebdfbc67"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID84b4735f-0919-4c04-91fc-85f2b9cfef7c"},{"ref":"EID8ffc0f30-87de-4800-adf0-f23ad2540dc6"},{"ref":"EID9c4f008c-4684-426b-a7e8-07219b365f6e"}]},"parent":{"ref":"EID6ee79554-0175-1000-0392-be40ea8caa6c"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:11:12Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:11:12Z","duration":110,"status":"FAILED"},{"id":"EID6ee795c2-0175-1000-9078-6e1694add722","testStepResults":{"TestStepResult":{"id":"EID6ee795c3-0175-1000-2eda-09f400274162","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79679-0175-1000-8181-4bf27cfa1436","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee795c3-0175-1000-2eda-09f400274162"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:11:12Z","duration":22,"status":"FAILED"},{"id":"EID6ee7968f-0175-1000-c987-28821dd2b7f8","parent":{"ref":"EID6ee795c3-0175-1000-2eda-09f400274162"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee7968f-0175-1000-15bf-bb488cfa481e","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee795c3-0175-1000-2eda-09f400274162"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"FAILED"},{"id":"EID6ee7968f-0175-1000-6d4f-a645f155b0ee","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee795c3-0175-1000-2eda-09f400274162"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa2dacb87-194f-44b6-8731-c09c5abb2c32"},{"ref":"EIDc5b90895-6cf2-40e2-8174-aade1cc03a52"},{"ref":"EIDfa8823bf-6e37-4a4e-86ea-d904d02a36c2"}]},"parent":{"ref":"EID6ee795c2-0175-1000-9078-6e1694add722"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:11:12Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:11:12Z","duration":215,"status":"FAILED"},{"id":"EID6ee7969a-0175-1000-2de3-d96710be6495","testStepResults":{"TestStepResult":{"id":"EID6ee7969a-0175-1000-47f9-f3dcfce320c5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79714-0175-1000-3559-92e0de7d5374","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee7969a-0175-1000-47f9-f3dcfce320c5"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:11:12Z","duration":13,"status":"FAILED"},{"id":"EID6ee79721-0175-1000-b545-6dda8e52e482","parent":{"ref":"EID6ee7969a-0175-1000-47f9-f3dcfce320c5"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee79721-0175-1000-6475-25fc6cde5345","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee7969a-0175-1000-47f9-f3dcfce320c5"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"FAILED"},{"id":"EID6ee79721-0175-1000-55c3-bfcc88568259","parent":{"ref":"EID6ee7969a-0175-1000-47f9-f3dcfce320c5"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDef4538fb-9185-44e5-b481-83e8a7a50872"},{"ref":"EID11f5ae66-5621-4f96-bf25-589a81f0c6c1"},{"ref":"EID6b07ba84-0262-4046-bedc-6be31d03c200"}]},"parent":{"ref":"EID6ee7969a-0175-1000-2de3-d96710be6495"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:11:12Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:11:12Z","duration":135,"status":"FAILED"},{"id":"EID6ee79722-0175-1000-8efa-e74b3ca30917","testStepResults":{"TestStepResult":[{"id":"EID6ee79722-0175-1000-1fb6-f37b1d6cc1a7","parent":{"ref":"EID6ee79722-0175-1000-8efa-e74b3ca30917"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee79722-0175-1000-454c-2c9b96005b90","parent":{"ref":"EID6ee79722-0175-1000-8efa-e74b3ca30917"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:11:12Z","duration":155,"status":"PASSED"},{"id":"EID6ee79722-0175-1000-212a-b06d29624e25","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee797da-0175-1000-0ebd-821508416b48","parent":{"ref":"EID6ee79722-0175-1000-212a-b06d29624e25"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee797da-0175-1000-08e3-6fb0185cda5a","parent":{"ref":"EID6ee79722-0175-1000-212a-b06d29624e25"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee797da-0175-1000-2538-8d9918313c54","parent":{"ref":"EID6ee79722-0175-1000-212a-b06d29624e25"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee797da-0175-1000-0426-a7d938517551","parent":{"ref":"EID6ee79722-0175-1000-212a-b06d29624e25"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:11:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf0c23879-079a-4ed7-804b-05fde5dc5dc0"},{"ref":"EIDef211b65-bd4a-4e1b-8356-9eace0e306af"},{"ref":"EIDaaaaac15-1b94-4d0d-943b-e8b426cdcf5f"}]},"parent":{"ref":"EID6ee79722-0175-1000-8efa-e74b3ca30917"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:11:12Z","duration":68,"status":"PASSED"},{"id":"EID6ee797db-0175-1000-8f8e-446efc7ce520","attachments":{"attachment":{"ref":"EID0f0f2cc6-ae66-4184-a878-3b654bd256b5"}},"parent":{"ref":"EID6ee79722-0175-1000-8efa-e74b3ca30917"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:11:12Z","duration":4,"status":"PASSED"},{"id":"EID6ee797f4-0175-1000-2e0b-354a729e078c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee798ae-0175-1000-d704-572528095681","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ae-0175-1000-5231-82b37a892b38","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:11:13Z","duration":12,"status":"FAILED"},{"id":"EID6ee798ba-0175-1000-17f2-f7b1fe551109","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ba-0175-1000-84b7-35daa9ead3a1","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ba-0175-1000-72f6-5dda46af5b9d","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ba-0175-1000-7432-649ff27377e7","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ba-0175-1000-2e89-add67d93cf45","parent":{"ref":"EID6ee797f4-0175-1000-2e0b-354a729e078c"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1213b7f5-6f50-4557-9385-0a539b62880e"},{"ref":"EID100a5316-e0f7-4941-8e19-78ba92e89671"},{"ref":"EIDace96de9-ed6a-497a-b2ba-07d31b0d9644"}]},"parent":{"ref":"EID6ee79722-0175-1000-8efa-e74b3ca30917"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:11:12Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:11:12Z","duration":408,"status":"FAILED"},{"id":"EID6ee798ba-0175-1000-0cbc-963c4f2eb4f2","testStepResults":{"TestStepResult":[{"id":"EID6ee798ba-0175-1000-4e17-2532c9124c43","parent":{"ref":"EID6ee798ba-0175-1000-0cbc-963c4f2eb4f2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee798ba-0175-1000-34d6-14c90a399aa2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79951-0175-1000-4de3-b1fa3318ac66","parent":{"ref":"EID6ee798ba-0175-1000-34d6-14c90a399aa2"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79951-0175-1000-126e-53067574184b","parent":{"ref":"EID6ee798ba-0175-1000-34d6-14c90a399aa2"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79951-0175-1000-c0fa-580f93f4c69f","parent":{"ref":"EID6ee798ba-0175-1000-34d6-14c90a399aa2"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79951-0175-1000-57e6-6a5a95783c60","parent":{"ref":"EID6ee798ba-0175-1000-34d6-14c90a399aa2"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID430cf9a4-1fc9-4205-b0bb-65d92b6d95a2"},{"ref":"EIDfa4473b2-a775-429b-9deb-faf20e4de5f6"},{"ref":"EID6e6170c6-097e-4fa5-8702-c1610ab54c4a"}]},"parent":{"ref":"EID6ee798ba-0175-1000-0cbc-963c4f2eb4f2"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:11:13Z","duration":46,"status":"PASSED"},{"id":"EID6ee79951-0175-1000-119e-08decdba97d4","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee79969-0175-1000-bb3d-06f7c7852546","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79a4e-0175-1000-3d8f-cdf343276a52","parent":{"ref":"EID6ee79969-0175-1000-bb3d-06f7c7852546"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79a4e-0175-1000-970b-d8ce24b3206d","parent":{"ref":"EID6ee79969-0175-1000-bb3d-06f7c7852546"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79a4e-0175-1000-a674-4a1e2d4c85da","parent":{"ref":"EID6ee79969-0175-1000-bb3d-06f7c7852546"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3b2d17e6-9ac4-40d1-9efb-9c1025dd9be7"},{"ref":"EID20986e2a-1188-4718-b2b3-852ccc1f364a"},{"ref":"EID0e953184-d5b4-4286-b11d-699369b06b13"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:13Z","duration":148,"status":"PASSED"},{"id":"EID6ee79a5d-0175-1000-0394-7376e9932cdb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79b2a-0175-1000-76dc-931224da8784","parent":{"ref":"EID6ee79a5d-0175-1000-0394-7376e9932cdb"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:13Z","duration":1,"status":"PASSED"},{"id":"EID6ee79b2b-0175-1000-7304-c55bfd6227ef","parent":{"ref":"EID6ee79a5d-0175-1000-0394-7376e9932cdb"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79b2b-0175-1000-f6cf-774d3399ef6e","parent":{"ref":"EID6ee79a5d-0175-1000-0394-7376e9932cdb"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID30d25151-2813-4ccf-8bc6-855ff2af3fb5"},{"ref":"EID828490f7-74ef-4e59-a900-ee6889bff2c3"},{"ref":"EIDcbab8340-a25d-4456-a123-6cefdf237584"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:13Z","duration":152,"status":"PASSED"},{"id":"EID6ee79b2c-0175-1000-3218-d4fc93f13007","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79b83-0175-1000-0c5c-7be8f5354ba7","parent":{"ref":"EID6ee79b2c-0175-1000-3218-d4fc93f13007"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79b83-0175-1000-00c7-a53b1d49f20a","parent":{"ref":"EID6ee79b2c-0175-1000-3218-d4fc93f13007"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79b83-0175-1000-62c3-03771fdefe3b","parent":{"ref":"EID6ee79b2c-0175-1000-3218-d4fc93f13007"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdda596d4-7050-4f07-aee3-6a40e1bb6642"},{"ref":"EIDa4537683-d7c8-43f4-a209-a2d8e682b52b"},{"ref":"EIDf1414747-bbdc-4c4c-bc2b-08f9f20086f9"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:13Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee798ba-0175-1000-0cbc-963c4f2eb4f2"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:11:13Z","duration":563,"status":"PASSED"},{"id":"EID6ee79b84-0175-1000-d2ae-f519db993b6d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79be2-0175-1000-d40e-d13637a3a4f4","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79b84-0175-1000-d2ae-f519db993b6d"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:11:13Z","duration":11,"status":"FAILED"},{"id":"EID6ee79bed-0175-1000-9772-c906c157724a","parent":{"ref":"EID6ee79b84-0175-1000-d2ae-f519db993b6d"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee79bed-0175-1000-50d9-816d4c39ea4b","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee79b84-0175-1000-d2ae-f519db993b6d"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"FAILED"},{"id":"EID6ee79bed-0175-1000-36d4-5619b4d5d78d","parent":{"ref":"EID6ee79b84-0175-1000-d2ae-f519db993b6d"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:11:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3626bdbf-8a52-446e-9623-5ede3c28825f"},{"ref":"EIDa131ffa8-b49e-42f2-b4df-915d3e3997c6"},{"ref":"EID3a31eaad-97f5-4f0c-bc7b-bbbb4281be05"}]},"parent":{"ref":"EID6ee798ba-0175-1000-0cbc-963c4f2eb4f2"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:11:13Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:11:13Z","duration":820,"status":"FAILED"},{"id":"EID6ee79bee-0175-1000-e5b7-33cd5771ec16","testStepResults":{"TestStepResult":{"id":"EID6ee79bee-0175-1000-e9db-ad81cdb09040","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee79c6c-0175-1000-fc74-552e57fcbc5a","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee79bee-0175-1000-e9db-ad81cdb09040"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:11:14Z","duration":11,"status":"FAILED"},{"id":"EID6ee79c77-0175-1000-6a8f-74ecab5b9bd3","parent":{"ref":"EID6ee79bee-0175-1000-e9db-ad81cdb09040"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee79c77-0175-1000-e4ad-13dff25409f0","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee79bee-0175-1000-e9db-ad81cdb09040"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:11:14Z","duration":1,"status":"FAILED"},{"id":"EID6ee79c78-0175-1000-8413-4a06552bcb54","parent":{"ref":"EID6ee79bee-0175-1000-e9db-ad81cdb09040"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID681f2f2b-96e2-4847-a19c-6cf53cc2a44f"},{"ref":"EID04adabd0-fc2c-4951-8ff0-0464c24908b5"},{"ref":"EID9bde00ea-988f-4971-91a6-f91438d87231"}]},"parent":{"ref":"EID6ee79bee-0175-1000-e5b7-33cd5771ec16"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:11:13Z","duration":39,"status":"FAILED"}},"parent":{"ref":"EID6ee79055-0175-1000-9f3d-d83387fbb5bc"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:11:13Z","duration":138,"status":"FAILED"}]},"parent":{"ref":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:11:10Z","duration":3107,"status":"FAILED"},{"id":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4","testCaseResults":{"TestCaseResult":[{"id":"EID6ee79c78-0175-1000-624a-5a3f179b77dc","testStepResults":{"TestStepResult":{"id":"EID6ee79c78-0175-1000-c770-aedfb3346400","parent":{"ref":"EID6ee79c78-0175-1000-624a-5a3f179b77dc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee79c78-0175-1000-63a5-32cffd7fac4c","testStepResults":{"TestStepResult":{"id":"EID6ee79c78-0175-1000-23e8-bca1252437a3","parent":{"ref":"EID6ee79c78-0175-1000-63a5-32cffd7fac4c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee79c78-0175-1000-04ae-0cfe6df9b639","testStepResults":{"TestStepResult":{"id":"EID6ee79c78-0175-1000-7fc7-3421e8db35d6","parent":{"ref":"EID6ee79c78-0175-1000-04ae-0cfe6df9b639"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee79c79-0175-1000-4c57-1a9fa43c5224","testStepResults":{"TestStepResult":{"id":"EID6ee79c79-0175-1000-7b36-5d1d4a893ba0","parent":{"ref":"EID6ee79c79-0175-1000-4c57-1a9fa43c5224"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee79c79-0175-1000-8e42-96dd93fae6ee","testStepResults":{"TestStepResult":{"id":"EID6ee79c79-0175-1000-c789-9d5c2683bf99","parent":{"ref":"EID6ee79c79-0175-1000-8e42-96dd93fae6ee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee79c79-0175-1000-0d74-9f3c7fcc848a","testStepResults":{"TestStepResult":{"id":"EID6ee79c79-0175-1000-0629-a35a895351bc","parent":{"ref":"EID6ee79c79-0175-1000-0d74-9f3c7fcc848a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:11:14Z","duration":9,"status":"SKIPPED"},{"id":"EID6ee79c82-0175-1000-f25b-18d6253399f4","testStepResults":{"TestStepResult":{"id":"EID6ee79c82-0175-1000-ca46-172bd778c481","parent":{"ref":"EID6ee79c82-0175-1000-f25b-18d6253399f4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:11:14Z","duration":433,"status":"SKIPPED"}},"parent":{"ref":"EID6ee79c78-0175-1000-41a7-58cdf18f8ce4"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:11:14Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:11:14Z","duration":11,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID64842a08-be4c-417d-bdee-8d4c8903bb87","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID2ee16628-107f-4267-bbfb-f01d0728aa84","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID6d773349-7a18-4611-8037-a9cd46c04bec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0bccb009-ea09-44a2-b321-376e6145ff45","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb0ac13a0-c932-48c5-8405-b7628b09cc5a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID4b0b4375-6a2b-421f-8587-048b3626ec5c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID4b0b4375-6a2b-421f-8587-048b3626ec5c"}},{"type":"GetParameter","id":"EID575aa18f-8568-4dc3-8e41-fc6000121af1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb848d782-c1a0-473e-874a-11610740cd25","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDb848d782-c1a0-473e-874a-11610740cd25"}},{"type":"ServiceEndpoint","id":"EID8da46067-366a-41cf-be06-7445b21bd051","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID1a041037-b248-4a44-8bd9-ef875abc9b69","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID1a041037-b248-4a44-8bd9-ef875abc9b69"}},{"type":"GetParameter","id":"EID0e953184-d5b4-4286-b11d-699369b06b13","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID3e68506b-5b22-461d-a40f-58d2c8869d3a","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID3e68506b-5b22-461d-a40f-58d2c8869d3a"}},{"type":"ServiceEndpoint","id":"EID121386b8-9490-47c9-91b0-897bea61aa49","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3b2d17e6-9ac4-40d1-9efb-9c1025dd9be7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDc4285402-ae97-459f-ba5e-87db953f9954","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc4285402-ae97-459f-ba5e-87db953f9954"}},{"type":"GetParameter","id":"EID894ff010-a9c6-4143-8fb9-0d324d4670e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0c7c2c19-c3f3-4526-8d88-1c7ffe2230bd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID0c7c2c19-c3f3-4526-8d88-1c7ffe2230bd"}},{"type":"ServiceEndpoint","id":"EID681f2f2b-96e2-4847-a19c-6cf53cc2a44f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID357787a8-4b58-4027-871d-58d383d07df7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID51fcc14a-557a-46bd-97c4-6d7fdf3686ed","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID51fcc14a-557a-46bd-97c4-6d7fdf3686ed"}},{"type":"Message","id":"EID5bdfeeae-6afa-4d40-a1df-988246b102c7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID5bdfeeae-6afa-4d40-a1df-988246b102c7"}},{"type":"Message","id":"EIDc8f5869d-4ab8-4119-ab85-d25e282d31dc","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc8f5869d-4ab8-4119-ab85-d25e282d31dc"}},{"type":"ServiceEndpoint","id":"EIDf4688ffb-9e70-47a0-94df-d6ba17eee167","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID27d9f4a6-e51c-455b-8d00-c92c5ae0329e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID27d9f4a6-e51c-455b-8d00-c92c5ae0329e"}},{"type":"Message","id":"EID0f0f2cc6-ae66-4184-a878-3b654bd256b5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID0f0f2cc6-ae66-4184-a878-3b654bd256b5"}},{"type":"ServiceEndpoint","id":"EIDe4054650-6e71-4772-97e0-cccea7d59371","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID224dbd22-15d1-442e-96c6-913c7229fba7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID224dbd22-15d1-442e-96c6-913c7229fba7"}},{"type":"ServiceEndpoint","id":"EIDef4538fb-9185-44e5-b481-83e8a7a50872","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8e2ac076-0492-4d45-a346-e8a84f0ce15c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDe50e3435-4f7e-4265-a34a-feb761d0017b","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDe50e3435-4f7e-4265-a34a-feb761d0017b"}},{"type":"ServiceResponse","id":"EID7f269135-3c7d-4e4a-8664-6a312150a2e7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID7f269135-3c7d-4e4a-8664-6a312150a2e7"}},{"type":"GetParameter","id":"EIDad8dcf68-d9bc-4d0d-afa5-b3371ae9face","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf0c23879-079a-4ed7-804b-05fde5dc5dc0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID47acf478-8a16-472b-9fd8-804ba445d0ea","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID47acf478-8a16-472b-9fd8-804ba445d0ea"}},{"type":"ServiceResponse","id":"EID7bd1e540-14ae-4b24-8908-77d915b40720","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID7bd1e540-14ae-4b24-8908-77d915b40720"}},{"type":"ServiceResponse","id":"EID986c71cf-6a5b-4a6c-ae7d-37008f91f649","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID986c71cf-6a5b-4a6c-ae7d-37008f91f649"}},{"type":"GetParameter","id":"EID338385d6-8405-44b4-aecc-516d2fcda94f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID995795cd-27d6-4e14-b7ea-29c75dd7ef03","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9f43dc25-13b8-4b0a-bea2-25c82209382c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID11f5ae66-5621-4f96-bf25-589a81f0c6c1","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID11f5ae66-5621-4f96-bf25-589a81f0c6c1"}},{"type":"Message","id":"EID832e2e2e-f4bc-403b-ab28-9d2897650b50","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID832e2e2e-f4bc-403b-ab28-9d2897650b50"}},{"type":"ServiceEndpoint","id":"EIDc57c7434-84db-41a8-b9f0-fa118517d802","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID71dc9759-ed86-46b5-ba06-f14a358b5a8c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID71dc9759-ed86-46b5-ba06-f14a358b5a8c"}},{"type":"ServiceEndpoint","id":"EID220ce76d-cd81-4fec-b0ca-24969e887530","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDace96de9-ed6a-497a-b2ba-07d31b0d9644","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID93dade34-377e-4d28-b0c8-6735fcfd3b07","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID10031700-1beb-4610-9831-e02536841617","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfa8823bf-6e37-4a4e-86ea-d904d02a36c2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID3a31eaad-97f5-4f0c-bc7b-bbbb4281be05","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9c4f008c-4684-426b-a7e8-07219b365f6e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID7609b735-31c3-4e71-9e19-6093ed0951e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID98f627aa-9866-4314-aa60-402aa59e575b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID98f627aa-9866-4314-aa60-402aa59e575b"}},{"type":"ServiceEndpoint","id":"EID138f1ea9-1f9b-4c3a-a85d-c3f52e924d89","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa1d62560-c619-4045-9dc3-7e2b0dea6016","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID6fd9b1c8-810d-403a-948e-1c5ac0739da9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID6fd9b1c8-810d-403a-948e-1c5ac0739da9"}},{"type":"GetParameter","id":"EID8c77130c-d6f3-40c7-a2e3-4293357d20be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID7be47814-aa2f-4760-b9ef-bf4b073b703d","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID7be47814-aa2f-4760-b9ef-bf4b073b703d"}},{"type":"ServiceResponse","id":"EIDc93618ab-71fa-4c79-a829-a7abe5e12886","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc93618ab-71fa-4c79-a829-a7abe5e12886"}},{"type":"Message","id":"EIDdf97baa4-0633-4803-a1a1-cd4d10636051","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDdf97baa4-0633-4803-a1a1-cd4d10636051"}},{"type":"Error","id":"EID987c26ef-ab51-4bcf-9e71-94c66588fb26","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID987c26ef-ab51-4bcf-9e71-94c66588fb26"}},{"type":"ServiceResponse","id":"EID325e9009-8120-4c51-b7d6-b1ff5bd34af5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID325e9009-8120-4c51-b7d6-b1ff5bd34af5"}},{"type":"ServiceResponse","id":"EIDbae5b3aa-547d-4eaf-bfdf-cdd41d3f35cb","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDbae5b3aa-547d-4eaf-bfdf-cdd41d3f35cb"}},{"type":"Message","id":"EID05bba0ba-77ac-4410-8af3-0b4406c17b2a","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID05bba0ba-77ac-4410-8af3-0b4406c17b2a"}},{"type":"Message","id":"EIDbccaf07f-73f2-4f2f-b5d3-0111459bfd74","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDbccaf07f-73f2-4f2f-b5d3-0111459bfd74"}},{"type":"GetParameter","id":"EIDb331ffdf-c42c-4d97-a023-06ed6bc1f678","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID51a80542-2502-4704-8540-11d8b2147536","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID51a80542-2502-4704-8540-11d8b2147536"}},{"type":"GetParameter","id":"EIDcbab8340-a25d-4456-a123-6cefdf237584","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"LogFile","id":"EID8f82c0a3-26d8-44f1-bdee-08d30e84aeb7","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID8f82c0a3-26d8-44f1-bdee-08d30e84aeb7"}},{"type":"ServiceResponse","id":"EIDfb9682f6-10d5-4a1c-80d1-3980652f2cb5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDfb9682f6-10d5-4a1c-80d1-3980652f2cb5"}},{"type":"ServiceResponse","id":"EIDd599106a-a513-4d87-b3f6-d9315b1bbddf","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDd599106a-a513-4d87-b3f6-d9315b1bbddf"}},{"type":"Error","id":"EID28f58983-8ba9-48ec-a4e0-174eedcbc0b2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID28f58983-8ba9-48ec-a4e0-174eedcbc0b2"}},{"type":"ServiceResponse","id":"EIDc5b90895-6cf2-40e2-8174-aade1cc03a52","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc5b90895-6cf2-40e2-8174-aade1cc03a52"}},{"type":"ServiceResponse","id":"EID19701895-1301-46f2-bac0-487e1af35ecf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID19701895-1301-46f2-bac0-487e1af35ecf"}},{"type":"GetParameter","id":"EIDf1414747-bbdc-4c4c-bc2b-08f9f20086f9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID44215be6-aeec-4499-8b7d-66830167ec8c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID44215be6-aeec-4499-8b7d-66830167ec8c"}},{"type":"GetParameter","id":"EID68ce262a-2dc3-4c2a-8015-08cdf66ea97f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID9196c5fc-984e-4aa9-80e8-c58f052432c1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDce2c3ed9-8733-4247-a225-5ea2fe03f41c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDb5cd8d9a-3007-46b9-bea7-279ca7a0a7cb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDb5cd8d9a-3007-46b9-bea7-279ca7a0a7cb"}},{"type":"Message","id":"EID0936e062-b377-4bd2-bdab-5937ef10d39f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID0936e062-b377-4bd2-bdab-5937ef10d39f"}},{"type":"Message","id":"EIDf5085727-4b62-43ad-88cb-8477625bcadf","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDf5085727-4b62-43ad-88cb-8477625bcadf"}},{"type":"ServiceResponse","id":"EIDc5b9c20a-0d2a-453e-be59-f9ee60d99bf6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc5b9c20a-0d2a-453e-be59-f9ee60d99bf6"}},{"type":"ServiceEndpoint","id":"EID80b0e27d-c6ec-457f-a8d3-f825a7eb1756","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID80bf2117-0bf0-4707-875b-c0fce5441406","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID80bf2117-0bf0-4707-875b-c0fce5441406"}},{"type":"GetParameter","id":"EIDc97642f0-eab1-4d06-b20c-ac70c2b6d25d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID8b3fe911-4c14-4cc9-ad50-cc0bc3355f0c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID8b3fe911-4c14-4cc9-ad50-cc0bc3355f0c"}},{"type":"Error","id":"EIDe66b934a-1f60-4885-bcdd-feea9c014ff9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDe66b934a-1f60-4885-bcdd-feea9c014ff9"}},{"type":"Message","id":"EID087d549a-1e87-46e1-bcd0-d6ea416f441f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID087d549a-1e87-46e1-bcd0-d6ea416f441f"}},{"type":"Error","id":"EID17b4ff80-2c82-4d84-90fa-fddba345fe18","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID17b4ff80-2c82-4d84-90fa-fddba345fe18"}},{"type":"ServiceEndpoint","id":"EIDc832ea64-bb25-4478-b1af-c3b4597df39e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID7ab42b43-a24b-4e31-b9dc-ddb0f5bd60d4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID17361b0f-4953-4979-afbe-cfb00ebc0ee0","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID17361b0f-4953-4979-afbe-cfb00ebc0ee0"}},{"type":"ServiceEndpoint","id":"EIDdda596d4-7050-4f07-aee3-6a40e1bb6642","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID1213b7f5-6f50-4557-9385-0a539b62880e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID629a19ec-1a6a-490e-9213-498605c3768a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa693a35c-9eea-4179-aa6a-da62e7afccae","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID87f6632d-f630-4ac6-8116-ee435167eb39","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID3626bdbf-8a52-446e-9623-5ede3c28825f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID1055a701-0953-4c68-9b89-282ee88075e7","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID1055a701-0953-4c68-9b89-282ee88075e7"}},{"type":"GetParameter","id":"EID6b07ba84-0262-4046-bedc-6be31d03c200","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDb153fcf6-9ad7-4015-a255-c07d4819abef","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDb153fcf6-9ad7-4015-a255-c07d4819abef"}},{"type":"GetParameter","id":"EID9bde00ea-988f-4971-91a6-f91438d87231","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDbc6597c5-dbcb-467d-93ff-e79c53d3fdde","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDbc6597c5-dbcb-467d-93ff-e79c53d3fdde"}},{"type":"ServiceEndpoint","id":"EID8cf43339-265e-4293-a70d-c2d04e1fb27d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID828490f7-74ef-4e59-a900-ee6889bff2c3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID828490f7-74ef-4e59-a900-ee6889bff2c3"}},{"type":"Message","id":"EID472f7165-30ad-400f-b024-54966c2a2739","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID472f7165-30ad-400f-b024-54966c2a2739"}},{"type":"GetParameter","id":"EID2286f611-50af-4b4f-9918-bc24ab9cc1d1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID37eddf5d-9583-47a2-99a5-b41436700674","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID37eddf5d-9583-47a2-99a5-b41436700674"}},{"type":"ServiceResponse","id":"EIDa131ffa8-b49e-42f2-b4df-915d3e3997c6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDa131ffa8-b49e-42f2-b4df-915d3e3997c6"}},{"type":"ServiceEndpoint","id":"EIDc8e889ce-77ca-4993-baed-ae35c688ec68","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID2ebcb396-85bf-4f02-b3af-7287f3ddcf63","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID2ebcb396-85bf-4f02-b3af-7287f3ddcf63"}},{"type":"ServiceEndpoint","id":"EID430cf9a4-1fc9-4205-b0bb-65d92b6d95a2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EIDf15a988e-44e0-42ed-87de-dd749d00b9d7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8ffc0f30-87de-4800-adf0-f23ad2540dc6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID8ffc0f30-87de-4800-adf0-f23ad2540dc6"}},{"type":"ServiceResponse","id":"EIDd8ef0c5f-8fe9-4af0-9df8-736490d43216","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDd8ef0c5f-8fe9-4af0-9df8-736490d43216"}},{"type":"ServiceEndpoint","id":"EIDa2dacb87-194f-44b6-8731-c09c5abb2c32","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDfa4473b2-a775-429b-9deb-faf20e4de5f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDfa4473b2-a775-429b-9deb-faf20e4de5f6"}},{"type":"ServiceResponse","id":"EIDa4537683-d7c8-43f4-a209-a2d8e682b52b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDa4537683-d7c8-43f4-a209-a2d8e682b52b"}},{"type":"ServiceResponse","id":"EID23ddad78-a3e2-4553-9c68-bb23d00b7f40","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID23ddad78-a3e2-4553-9c68-bb23d00b7f40"}},{"type":"ServiceEndpoint","id":"EID30d25151-2813-4ccf-8bc6-855ff2af3fb5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID5298f93e-f380-4151-b2e1-cfcb68955727","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID5298f93e-f380-4151-b2e1-cfcb68955727"}},{"type":"ServiceResponse","id":"EIDeab440dd-0cc1-46a7-88ef-04914e670c26","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDeab440dd-0cc1-46a7-88ef-04914e670c26"}},{"type":"GetParameter","id":"EID670122eb-b703-4cfe-bd50-9386296e091b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDef8def6b-af5d-4300-b718-229c1dbf1bfd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb8d6bcd2-5197-4a2c-91b1-3bd6948ac1ca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDed9787b5-0024-4b70-accb-42ea47219475","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDed9787b5-0024-4b70-accb-42ea47219475"}},{"type":"ServiceResponse","id":"EID4a35759a-7fc0-4757-874b-dde6af28d74b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID4a35759a-7fc0-4757-874b-dde6af28d74b"}},{"type":"GetParameter","id":"EID22df2e52-d5a3-42a8-b61d-479835fb352a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID100a5316-e0f7-4941-8e19-78ba92e89671","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID100a5316-e0f7-4941-8e19-78ba92e89671"}},{"type":"ServiceEndpoint","id":"EID1fe770c7-0aef-4bc6-8532-4a5152515b96","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID0b17d731-ea8e-4214-98f1-17accedb16b0","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID0b17d731-ea8e-4214-98f1-17accedb16b0"}},{"type":"GetParameter","id":"EID047976ec-0597-4ab2-ab18-a0dd897a4fe8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDa360e856-9131-4e4a-8076-335a17c6d2e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID84452361-0af8-42c1-9a60-617e9aaf64b6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID0f5369e2-3225-4bb6-9df2-01b7492193b4","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID0f5369e2-3225-4bb6-9df2-01b7492193b4"}},{"type":"Message","id":"EIDe15f6860-5c2c-435f-ad8d-57e6cb2b9c7f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDe15f6860-5c2c-435f-ad8d-57e6cb2b9c7f"}},{"type":"ServiceEndpoint","id":"EIDa9071770-8e6a-4e29-869b-bb7580377014","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4d29838a-cb50-4ec6-9815-e542a7c97290","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8f291dc8-9e7e-4756-8541-b497811f6f4c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDc5b243cd-c29e-4570-8775-f3871896ae8a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDc5b243cd-c29e-4570-8775-f3871896ae8a"}},{"type":"Message","id":"EIDe9f98711-9144-4014-87fd-8baa991f6636","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDe9f98711-9144-4014-87fd-8baa991f6636"}},{"type":"ServiceEndpoint","id":"EIDb2a995e8-0cd5-436c-ae7e-3e8549a01c87","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb733baad-d4ec-4b40-a4f1-84e119a8cc09","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID422b4706-2bfc-42b5-9d75-0dc80460ca65","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDaaaaac15-1b94-4d0d-943b-e8b426cdcf5f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb654603e-8c96-485a-a95f-f76a0510e064","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID59a6cbec-f842-494b-9e04-90e4b745bf1c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID59a6cbec-f842-494b-9e04-90e4b745bf1c"}},{"type":"GetParameter","id":"EID6e6170c6-097e-4fa5-8702-c1610ab54c4a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Error","id":"EIDcfb98ef2-4866-45ad-b915-b696223c2aac","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDcfb98ef2-4866-45ad-b915-b696223c2aac"}},{"type":"ServiceResponse","id":"EID20986e2a-1188-4718-b2b3-852ccc1f364a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID20986e2a-1188-4718-b2b3-852ccc1f364a"}},{"type":"ServiceResponse","id":"EIDca2924b0-9498-4b0b-893c-4b4bb949055c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDca2924b0-9498-4b0b-893c-4b4bb949055c"}},{"type":"ServiceEndpoint","id":"EID84b4735f-0919-4c04-91fc-85f2b9cfef7c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID1edf87cf-21b4-4981-a24d-4c9e099a2b5f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID1edf87cf-21b4-4981-a24d-4c9e099a2b5f"}},{"type":"ServiceResponse","id":"EID04adabd0-fc2c-4951-8ff0-0464c24908b5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID04adabd0-fc2c-4951-8ff0-0464c24908b5"}},{"type":"Message","id":"EID3f7b7079-7754-4a9c-9ad2-d746a82101c6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID3f7b7079-7754-4a9c-9ad2-d746a82101c6"}},{"type":"ServiceResponse","id":"EIDef211b65-bd4a-4e1b-8356-9eace0e306af","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDef211b65-bd4a-4e1b-8356-9eace0e306af"}},{"type":"ServiceResponse","id":"EIDdbade434-0af2-4eca-8d2b-c254471940f6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDdbade434-0af2-4eca-8d2b-c254471940f6"}},{"type":"GetParameter","id":"EIDe14609bb-c2f9-4a4a-957a-6d74c258980f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID5d3ad412-9a2b-491f-9758-50121aecc5b0","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EID5d3ad412-9a2b-491f-9758-50121aecc5b0"}},{"type":"Error","id":"EIDf17c927e-dcc6-4e13-9830-d61267704698","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDf17c927e-dcc6-4e13-9830-d61267704698"}},{"type":"Message","id":"EIDecb61e93-6501-4551-8323-3d705f4830ce","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID56eb6cd2-a506-45a5-81ab-d9b2c3f92f44/Attachments/EIDecb61e93-6501-4551-8323-3d705f4830ce"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:11:01Z","duration":12223,"status":"FAILED"}}}}}
11:11:26.368 [print] EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad
11:11:26.369 [print] FAILED
11:11:26.369 [print] FAILED
11:11:26.370 [print] Conformance Class Download Service - Pre-defined Atom
11:11:26.370 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/adba38b1-7fe7-42c5-8a94-e50f696fd3ad.json
11:11:26.370 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/adba38b1-7fe7-42c5-8a94-e50f696fd3ad.json
11:11:26.370 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDadba38b1-7fe7-42c5-8a94-e50f696fd3ad/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:11:26.397 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:11:26.397 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:08.624 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:09:08.626 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:09:15.342 response time in milliseconds: 6613.22
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:15 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883355175","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:15.343 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:35.295 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/noordzeevaarwegmarkeringenrd/wfs?request=GetCapabilities&service=WFS"}}}
11:15:35.296 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 307
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/noordzeevaarwegmarkeringenrd/wfs?request=GetCapabilities&service=WFS"}}}
11:15:39.942 response time in milliseconds: 4540.98
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:39 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883739766","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:39.943 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:13:02.474 [print] testing url:https://geodata.nationaalgeoregister.nl/nl/rws/hy-n/wfs?request=GetCapabilities&service=WFS
11:13:02.474 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/hy-n/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:02.907 response time in milliseconds: 432.16 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:02 GMT 1 < ETag: "1867c-5af58a654ab6f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:02.914 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/hy-n/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:03.309 response time in milliseconds: 394.46 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:03 GMT 1 < ETag: "1867c-5af58a654ab6f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:03.312 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:06:59.929 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:06:59.929 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:01.010 response time in milliseconds: 1080.58 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:07:00 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642234A97130556 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:07:01.027 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:07:01.710 response time in milliseconds: 682.08 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:07:01 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642234AD2AEA1BD 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:07:01.710 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:06:09.127 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:06:09.128 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:09.532 response time in milliseconds: 403.28 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:06:09 GMT 1 < X-Cnection: [close, close]
11:06:09.542 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:09.950 response time in milliseconds: 407.01 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:06:09 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:32.803 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:32.805 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:39.983 response time in milliseconds: 6425.55
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:39 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:37 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f.json","testRuns":{"TestRun":{"id":"EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:36.158Z","testTasks":{"TestTask":{"id":"EID811abd9f-c29f-4d2c-8ab9-9e45e8efcd75","parent":{"ref":"EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID39d76d6b-2cc3-434a-830c-0ecb85f80733"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID39d76d6b-2cc3-434a-830c-0ecb85f80733","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:33.248Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:35.098Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:39.992 [print] EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f
11:14:39.992 [print] UNDEFINED
11:14:39.992 [print] Conformance Class Download Service - Pre-defined Atom
11:14:39.992 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f.json
11:14:39.992 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/log
11:14:39.993 [print] statuspath TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f
11:14:39.994 [print] progresspath TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
11:14:39.996 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:40.517 response time in milliseconds: 520.71
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:40 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:14:36 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:36 UTC 2020)","28.10.2020 11:14:36 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:36 - Preparing 1 Test Task:","28.10.2020 11:14:36 - TestTask 1 (811abd9f-c29f-4d2c-8ab9-9e45e8efcd75)","28.10.2020 11:14:36 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:36 - with parameters: ","28.10.2020 11:14:36 - etf.testcases = *","28.10.2020 11:14:36 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:36 - Setting state to CREATED","28.10.2020 11:14:36 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:37 - Starting TestRun.a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f at 2020-10-28T11:14:39Z","28.10.2020 11:14:39 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:39 - Project Properties: ","28.10.2020 11:14:39 - etf.testcases - * ","28.10.2020 11:14:39 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:39 - username - ","28.10.2020 11:14:39 - authUser - ","28.10.2020 11:14:39 - authMethod - basic ","28.10.2020 11:14:39 - TestRunTask initialized"]}
11:14:40.518 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:14:36 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:36 UTC 2020)",
"28.10.2020 11:14:36 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:36 - Preparing 1 Test Task:",
"28.10.2020 11:14:36 - TestTask 1 (811abd9f-c29f-4d2c-8ab9-9e45e8efcd75)",
"28.10.2020 11:14:36 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:36 - with parameters: ",
"28.10.2020 11:14:36 - etf.testcases = *",
"28.10.2020 11:14:36 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:36 - Setting state to CREATED",
"28.10.2020 11:14:36 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:37 - Starting TestRun.a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f at 2020-10-28T11:14:39Z",
"28.10.2020 11:14:39 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:39 - Project Properties: ",
"28.10.2020 11:14:39 - etf.testcases - * ",
"28.10.2020 11:14:39 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:14:39 - username - ",
"28.10.2020 11:14:39 - authUser - ",
"28.10.2020 11:14:39 - authMethod - basic ",
"28.10.2020 11:14:39 - TestRunTask initialized"
]
}
11:14:40.518 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:41.026 response time in milliseconds: 506.82
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:40 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:14:36 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:36 UTC 2020)","28.10.2020 11:14:36 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:36 - Preparing 1 Test Task:","28.10.2020 11:14:36 - TestTask 1 (811abd9f-c29f-4d2c-8ab9-9e45e8efcd75)","28.10.2020 11:14:36 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:36 - with parameters: ","28.10.2020 11:14:36 - etf.testcases = *","28.10.2020 11:14:36 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:36 - Setting state to CREATED","28.10.2020 11:14:36 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:37 - Starting TestRun.a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f at 2020-10-28T11:14:39Z","28.10.2020 11:14:39 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:39 - Project Properties: ","28.10.2020 11:14:39 - etf.testcases - * ","28.10.2020 11:14:39 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:39 - username - ","28.10.2020 11:14:39 - authUser - ","28.10.2020 11:14:39 - authMethod - basic ","28.10.2020 11:14:39 - TestRunTask initialized"]}
11:14:41.026 retry condition not satisfied: response.val == response.max
11:14:41.026 sleeping before retry #1
11:14:46.026 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:46.552 response time in milliseconds: 524.82
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:46 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"73","max":"74","log":["28.10.2020 11:14:36 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:36 UTC 2020)","28.10.2020 11:14:36 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:36 - Preparing 1 Test Task:","28.10.2020 11:14:36 - TestTask 1 (811abd9f-c29f-4d2c-8ab9-9e45e8efcd75)","28.10.2020 11:14:36 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:36 - with parameters: ","28.10.2020 11:14:36 - etf.testcases = *","28.10.2020 11:14:36 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:36 - Setting state to CREATED","28.10.2020 11:14:36 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:37 - Starting TestRun.a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f at 2020-10-28T11:14:39Z","28.10.2020 11:14:39 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:39 - Project Properties: ","28.10.2020 11:14:39 - etf.testcases - * ","28.10.2020 11:14:39 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:39 - username - ","28.10.2020 11:14:39 - authUser - ","28.10.2020 11:14:39 - authMethod - basic ","28.10.2020 11:14:39 - TestRunTask initialized","28.10.2020 11:14:42 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:42 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:14:46.552 retry condition not satisfied: response.val == response.max
11:14:46.552 sleeping before retry #2
11:14:51.553 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:52.094 response time in milliseconds: 535.09
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:14:52 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:14:36 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:36 UTC 2020)","28.10.2020 11:14:36 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:36 - Preparing 1 Test Task:","28.10.2020 11:14:36 - TestTask 1 (811abd9f-c29f-4d2c-8ab9-9e45e8efcd75)","28.10.2020 11:14:36 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:36 - with parameters: ","28.10.2020 11:14:36 - etf.testcases = *","28.10.2020 11:14:36 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:36 - Setting state to CREATED","28.10.2020 11:14:36 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:37 - Starting TestRun.a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f at 2020-10-28T11:14:39Z","28.10.2020 11:14:39 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:39 - Project Properties: ","28.10.2020 11:14:39 - etf.testcases - * ","28.10.2020 11:14:39 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:39 - username - ","28.10.2020 11:14:39 - authUser - ","28.10.2020 11:14:39 - authMethod - basic ","28.10.2020 11:14:39 - TestRunTask initialized","28.10.2020 11:14:42 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:42 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:46 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:14:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:48 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:48 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:48 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:48 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:50 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:50 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:50 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:14:52.095 retry condition not satisfied: response.val == response.max
11:14:52.095 sleeping before retry #3
11:14:57.096 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:59.102 response time in milliseconds: 2006.19
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:14:59 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:14:59.102 retry condition satisfied
11:14:59.103 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:14:59.103 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:03.117 response time in milliseconds: 3057.40
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:15:02 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:14:54 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f.json","testRuns":{"TestRun":{"id":"EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:36.158Z","testTasks":{"TestTask":{"id":"EID811abd9f-c29f-4d2c-8ab9-9e45e8efcd75","parent":{"ref":"EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID39d76d6b-2cc3-434a-830c-0ecb85f80733"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID39d76d6b-2cc3-434a-830c-0ecb85f80733","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:33.248Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:35.098Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237","testObject":{"ref":"EID39d76d6b-2cc3-434a-830c-0ecb85f80733"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eeabdee-0175-1000-2609-8046dcec0972","testCaseResults":{"TestCaseResult":[{"id":"EID6eeabdee-0175-1000-0ab0-49cf2a36d124","testStepResults":{"TestStepResult":[{"id":"EID6eeabdef-0175-1000-df8c-b6af26639767","parent":{"ref":"EID6eeabdee-0175-1000-0ab0-49cf2a36d124"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:14:39Z","duration":18,"status":"PASSED"},{"id":"EID6eeabe02-0175-1000-e3d3-268b096be247","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeabecc-0175-1000-90c0-e0c4d370202e","parent":{"ref":"EID6eeabe02-0175-1000-e3d3-268b096be247"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeabecc-0175-1000-2977-3dec49d322cf","parent":{"ref":"EID6eeabe02-0175-1000-e3d3-268b096be247"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeabecc-0175-1000-71c9-c97f70a8e7b4","parent":{"ref":"EID6eeabe02-0175-1000-e3d3-268b096be247"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeabecd-0175-1000-6347-e3daf0b82e81","parent":{"ref":"EID6eeabe02-0175-1000-e3d3-268b096be247"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7df0e65e-4906-421a-9e56-90585596c117"},{"ref":"EID4b1707ae-cf3a-4d46-9b0b-f6d245dd86e6"},{"ref":"EID9ee73b21-01f5-43b7-8a37-87c788a41abf"}]},"parent":{"ref":"EID6eeabdee-0175-1000-0ab0-49cf2a36d124"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:14:39Z","duration":69,"status":"PASSED"}]},"parent":{"ref":"EID6eeabdee-0175-1000-2609-8046dcec0972"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:14:39Z","duration":232,"status":"PASSED"},{"id":"EID6eeabede-0175-1000-8d8f-65531e1bfd6e","testStepResults":{"TestStepResult":{"id":"EID6eeabede-0175-1000-a67c-7ec1432b6e84","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeabf69-0175-1000-b05e-610ced6d849d","parent":{"ref":"EID6eeabede-0175-1000-a67c-7ec1432b6e84"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeabf69-0175-1000-5ac7-648083296544","parent":{"ref":"EID6eeabede-0175-1000-a67c-7ec1432b6e84"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeabf69-0175-1000-ee02-49e2c56cbcd4","parent":{"ref":"EID6eeabede-0175-1000-a67c-7ec1432b6e84"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID567b9fe2-aff0-46bc-a455-8198f8b268cf"},{"ref":"EIDf8a49b49-6b4f-456b-9a83-9678ac0fc097"},{"ref":"EIDebee8840-6fcd-41d4-a1b8-52cfe89d8629"}]},"parent":{"ref":"EID6eeabede-0175-1000-8d8f-65531e1bfd6e"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:14:39Z","duration":41,"status":"PASSED"}},"parent":{"ref":"EID6eeabdee-0175-1000-2609-8046dcec0972"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:14:39Z","duration":139,"status":"PASSED"}]},"parent":{"ref":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:14:39Z","duration":379,"status":"PASSED"},{"id":"EID6eeabf69-0175-1000-5821-12a81b905498","testCaseResults":{"TestCaseResult":[{"id":"EID6eeabf69-0175-1000-6dd1-a2c59fd28eb7","testStepResults":{"TestStepResult":[{"id":"EID6eeabf73-0175-1000-2012-35e2fe47a226","parent":{"ref":"EID6eeabf69-0175-1000-6dd1-a2c59fd28eb7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:14:39Z","duration":40,"status":"PASSED"},{"id":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac05c-0175-1000-5852-34b0404e9e06","parent":{"ref":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeac05c-0175-1000-febb-59e7987c39d7","parent":{"ref":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeac05c-0175-1000-47b7-3158529e8fa5","parent":{"ref":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeac05c-0175-1000-95d9-943215547029","parent":{"ref":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"},{"id":"EID6eeac05c-0175-1000-f4cf-b71bdf262ceb","parent":{"ref":"EID6eeabf73-0175-1000-29d5-7af9a6d5a104"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:14:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5c65806b-ea5f-4a48-bd70-08ff1c7b959b"},{"ref":"EID75f6b1a5-ec6b-4c86-9d45-69bf6b1ce3da"},{"ref":"EID086ebde0-b72d-4db5-9aab-02b6060f1931"}]},"parent":{"ref":"EID6eeabf69-0175-1000-6dd1-a2c59fd28eb7"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:14:39Z","duration":105,"status":"PASSED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:14:39Z","duration":243,"status":"PASSED"},{"id":"EID6eeac065-0175-1000-767b-5e0813bf7199","testStepResults":{"TestStepResult":[{"id":"EID6eeac065-0175-1000-264d-86adfce2dfa0","attachments":{"attachment":[{"ref":"EID8eedd8d4-888e-4d01-a9a4-23996d3b728b"},{"ref":"EIDf6ad014b-9c04-4981-bdfb-3b448ea0bd2e"}]},"parent":{"ref":"EID6eeac065-0175-1000-767b-5e0813bf7199"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:14:39Z","duration":167,"status":"PASSED"},{"id":"EID6eeac151-0175-1000-992b-2eb89084e06f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac22a-0175-1000-1bec-35e26f7e7d0b","parent":{"ref":"EID6eeac151-0175-1000-992b-2eb89084e06f"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:14:40Z","duration":1,"status":"PASSED"},{"id":"EID6eeac22b-0175-1000-b407-498cfd2f8ddd","parent":{"ref":"EID6eeac151-0175-1000-992b-2eb89084e06f"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac22b-0175-1000-89f5-96a5341e53dc","parent":{"ref":"EID6eeac151-0175-1000-992b-2eb89084e06f"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac22b-0175-1000-bb95-7fd09d051487","parent":{"ref":"EID6eeac151-0175-1000-992b-2eb89084e06f"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9346bb43-398f-4be9-8b86-e5e072e20b71"},{"ref":"EIDef78c21c-5798-4e84-ba76-e4157746924d"},{"ref":"EID4e999d81-1110-4365-a1da-a1eb4cf0786d"}]},"parent":{"ref":"EID6eeac065-0175-1000-767b-5e0813bf7199"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:14:40Z","duration":99,"status":"PASSED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:14:39Z","duration":454,"status":"PASSED"},{"id":"EID6eeac22b-0175-1000-8d31-192d107ab44b","testStepResults":{"TestStepResult":[{"id":"EID6eeac237-0175-1000-ad48-80327e7e1744","attachments":{"attachment":[{"ref":"EID2556f834-c4a3-43fb-b8bf-11f2f241f7f6"},{"ref":"EIDf6560ae5-d3c9-40d8-be79-841d0c04395c"}]},"parent":{"ref":"EID6eeac22b-0175-1000-8d31-192d107ab44b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:14:40Z","duration":128,"status":"PASSED"},{"id":"EID6eeac2e5-0175-1000-c02a-9d71f1245680","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac391-0175-1000-293a-474d913d2826","parent":{"ref":"EID6eeac2e5-0175-1000-c02a-9d71f1245680"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac391-0175-1000-d890-67dc024f4335","parent":{"ref":"EID6eeac2e5-0175-1000-c02a-9d71f1245680"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac391-0175-1000-fcc4-85884bde9bb7","parent":{"ref":"EID6eeac2e5-0175-1000-c02a-9d71f1245680"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac391-0175-1000-b32f-2d3cd9d12299","parent":{"ref":"EID6eeac2e5-0175-1000-c02a-9d71f1245680"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac391-0175-1000-f0d9-0e1ab9dbcc85","parent":{"ref":"EID6eeac2e5-0175-1000-c02a-9d71f1245680"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1dee11b9-7c68-442b-ac4b-91004fad2268"},{"ref":"EID048cc44c-0d25-4148-8418-9d5c027008a1"},{"ref":"EID28b9e8ad-cbef-4b22-a10e-e809ca8c9b7a"}]},"parent":{"ref":"EID6eeac22b-0175-1000-8d31-192d107ab44b"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:14:40Z","duration":43,"status":"PASSED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:14:40Z","duration":358,"status":"PASSED"},{"id":"EID6eeac39b-0175-1000-220e-6a012b7b1577","testStepResults":{"TestStepResult":[{"id":"EID6eeac39b-0175-1000-b289-a370b46092e1","attachments":{"attachment":[{"ref":"EID46e7c85b-223d-41b2-a6c1-dc73e45f9b14"},{"ref":"EID236f738a-27c0-4fdd-b415-1810a50d1913"}]},"parent":{"ref":"EID6eeac39b-0175-1000-220e-6a012b7b1577"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:14:40Z","duration":110,"status":"PASSED"},{"id":"EID6eeac440-0175-1000-499e-78a328d57c97","parent":{"ref":"EID6eeac39b-0175-1000-220e-6a012b7b1577"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:14:40Z","duration":0,"status":"PASSED"},{"id":"EID6eeac440-0175-1000-d34f-b4b49199f4e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac502-0175-1000-b30d-1b624cc65264","parent":{"ref":"EID6eeac440-0175-1000-d34f-b4b49199f4e2"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac502-0175-1000-ce99-e0a618f152b0","parent":{"ref":"EID6eeac440-0175-1000-d34f-b4b49199f4e2"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac502-0175-1000-39ec-6d344110face","parent":{"ref":"EID6eeac440-0175-1000-d34f-b4b49199f4e2"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac502-0175-1000-f42e-51ade81792fe","parent":{"ref":"EID6eeac440-0175-1000-d34f-b4b49199f4e2"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2622a71c-c7fd-4181-a6c7-136ae2900c38"},{"ref":"EID84bb4597-b2de-432b-ba55-de9bd0b913ea"},{"ref":"EIDb38699d3-f972-4878-9cf7-4fc66afe649a"}]},"parent":{"ref":"EID6eeac39b-0175-1000-220e-6a012b7b1577"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:14:40Z","duration":95,"status":"PASSED"},{"id":"EID6eeac50c-0175-1000-9da3-6dfb4128ad71","attachments":{"attachment":{"ref":"EID774cc9ef-b8ce-4e38-bbce-81aa867d2530"}},"parent":{"ref":"EID6eeac39b-0175-1000-220e-6a012b7b1577"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:14:41Z","duration":2,"status":"PASSED"},{"id":"EID6eeac52e-0175-1000-984e-473350f813d8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac5e0-0175-1000-32de-9df5b9bcddf6","parent":{"ref":"EID6eeac52e-0175-1000-984e-473350f813d8"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac5e0-0175-1000-1c78-602abbe3639e","parent":{"ref":"EID6eeac52e-0175-1000-984e-473350f813d8"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac5e0-0175-1000-19aa-5c7968f946b9","parent":{"ref":"EID6eeac52e-0175-1000-984e-473350f813d8"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac5e0-0175-1000-3b6c-7af5afbe064f","parent":{"ref":"EID6eeac52e-0175-1000-984e-473350f813d8"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac5e0-0175-1000-9147-fde056e979ac","parent":{"ref":"EID6eeac52e-0175-1000-984e-473350f813d8"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID62d8933a-d51e-493d-9c9a-3128b6038c66"},{"ref":"EIDcbf6b681-31ec-4fb1-8915-095db5f4f9dd"},{"ref":"EIDb13d69ee-1ab9-45fe-87d2-983129a2e220"}]},"parent":{"ref":"EID6eeac39b-0175-1000-220e-6a012b7b1577"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:14:41Z","duration":42,"status":"PASSED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:14:40Z","duration":582,"status":"PASSED"},{"id":"EID6eeac61d-0175-1000-89ed-3e673bffcb0b","testStepResults":{"TestStepResult":[{"id":"EID6eeac61d-0175-1000-ce69-ccc12a0a1b7a","attachments":{"attachment":[{"ref":"EID471b940d-0aa6-49a6-8c0e-f36755968302"},{"ref":"EIDa015d101-9170-4d84-a2b4-b878a42093ed"}]},"parent":{"ref":"EID6eeac61d-0175-1000-89ed-3e673bffcb0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:14:41Z","duration":155,"status":"PASSED"},{"id":"EID6eeac6ed-0175-1000-b0e8-a022d21475d2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeac7dd-0175-1000-da91-6a5f90102cef","parent":{"ref":"EID6eeac6ed-0175-1000-b0e8-a022d21475d2"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac7dd-0175-1000-7671-fc2ddd76c191","parent":{"ref":"EID6eeac6ed-0175-1000-b0e8-a022d21475d2"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac7dd-0175-1000-ef0f-426740910696","parent":{"ref":"EID6eeac6ed-0175-1000-b0e8-a022d21475d2"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"},{"id":"EID6eeac7dd-0175-1000-fe8d-91c217eafe5f","parent":{"ref":"EID6eeac6ed-0175-1000-b0e8-a022d21475d2"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:14:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1da81532-c057-4a98-8eed-ba586f1f89b4"},{"ref":"EID02fc067b-7b98-4906-a36b-148e88b859cd"},{"ref":"EID294cf2fa-5c7c-4b7e-99ec-8e5d7a71a9c6"}]},"parent":{"ref":"EID6eeac61d-0175-1000-89ed-3e673bffcb0b"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:14:41Z","duration":90,"status":"PASSED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:14:41Z","duration":448,"status":"PASSED"},{"id":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3","testStepResults":{"TestStepResult":[{"id":"EID6eeac7e5-0175-1000-9c76-7962b1ced003","attachments":{"attachment":[{"ref":"EIDb1dfd83d-cccd-459c-83f6-d6d79bced30b"},{"ref":"EID22e1453f-a17b-4356-8443-cf67f3dea384"}]},"parent":{"ref":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:14:41Z","duration":255,"status":"PASSED"},{"id":"EID6eeac915-0175-1000-eb58-613777005113","parent":{"ref":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"},{"id":"EID6eeac915-0175-1000-4605-682eb1c7d0b9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaca1c-0175-1000-94b2-62163d8a5211","parent":{"ref":"EID6eeac915-0175-1000-4605-682eb1c7d0b9"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"},{"id":"EID6eeaca1c-0175-1000-fe6f-d47a33731c35","parent":{"ref":"EID6eeac915-0175-1000-4605-682eb1c7d0b9"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"},{"id":"EID6eeaca1c-0175-1000-791b-3fb03d30d29b","parent":{"ref":"EID6eeac915-0175-1000-4605-682eb1c7d0b9"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"},{"id":"EID6eeaca1c-0175-1000-f0fc-4f9a765406e8","parent":{"ref":"EID6eeac915-0175-1000-4605-682eb1c7d0b9"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1a128579-e9fd-4e73-b010-f709d998504d"},{"ref":"EID4a6ec102-7efe-48ca-a296-3c33a62443ab"},{"ref":"EID3076e6a4-d684-424c-b89e-d09f71274964"}]},"parent":{"ref":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:14:42Z","duration":85,"status":"PASSED"},{"id":"EID6eeaca28-0175-1000-27d1-7ae9be075765","attachments":{"attachment":{"ref":"EIDd4250ffa-172c-4f93-aa78-474f8d564925"}},"parent":{"ref":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:14:42Z","duration":2,"status":"PASSED"},{"id":"EID6eeaca35-0175-1000-20c2-28fd8d608581","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeacb90-0175-1000-e696-8983817fa1fd","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeaca35-0175-1000-20c2-28fd8d608581"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:14:42Z","duration":14,"status":"FAILED"},{"id":"EID6eeacb9e-0175-1000-8557-ae85486e08b6","parent":{"ref":"EID6eeaca35-0175-1000-20c2-28fd8d608581"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"PASSED"},{"id":"EID6eeacb9e-0175-1000-732a-808dfa257c2f","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6eeaca35-0175-1000-20c2-28fd8d608581"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:14:42Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3eb18a88-eae4-494a-bb45-f7c0f4b51a71"},{"ref":"EID86064597-b656-466f-8f25-4e43b5244134"},{"ref":"EIDafa49486-439b-4b7e-ae4e-cb4d43cca707"}]},"parent":{"ref":"EID6eeac7e5-0175-1000-dad9-05d5fcbbeaa3"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:14:42Z","duration":282,"status":"FAILED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:14:41Z","duration":963,"status":"FAILED"},{"id":"EID6eeacba8-0175-1000-b6b3-9e0bfba9d143","testStepResults":{"TestStepResult":[{"id":"EID6eeacba8-0175-1000-f8b3-721a20c155aa","attachments":{"attachment":[{"ref":"EID189871f8-93bf-4c5f-b91e-d07821dbc3fd"},{"ref":"EIDed9d825d-f01b-4125-9774-b0afa7bbbd2b"}]},"parent":{"ref":"EID6eeacba8-0175-1000-b6b3-9e0bfba9d143"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:14:42Z","duration":242,"status":"PASSED"},{"id":"EID6eeaccc9-0175-1000-51bb-9c48b2740032","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeace19-0175-1000-7e50-7231c85497e3","parent":{"ref":"EID6eeaccc9-0175-1000-51bb-9c48b2740032"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeace19-0175-1000-7c42-c4d742a4e75d","parent":{"ref":"EID6eeaccc9-0175-1000-51bb-9c48b2740032"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeace19-0175-1000-13a3-770c3c2cd439","parent":{"ref":"EID6eeaccc9-0175-1000-51bb-9c48b2740032"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeace19-0175-1000-2fd8-a7917fb85e31","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeaccc9-0175-1000-51bb-9c48b2740032"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID48e768e1-33ff-4b59-8320-cd44933e08d3"},{"ref":"EID7c33966d-a89f-4746-8556-391b0df5a41f"},{"ref":"EID25366afa-0bbf-4e36-b5d3-0be1cf466e0b"}]},"parent":{"ref":"EID6eeacba8-0175-1000-b6b3-9e0bfba9d143"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:14:43Z","duration":124,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:14:42Z","duration":626,"status":"PASSED_MANUAL"},{"id":"EID6eeace1a-0175-1000-a51c-887b87793059","testStepResults":{"TestStepResult":{"id":"EID6eeace1a-0175-1000-97fa-472262d31eb4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeacf53-0175-1000-0f83-f2a8c69fb4e3","parent":{"ref":"EID6eeace1a-0175-1000-97fa-472262d31eb4"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeacf53-0175-1000-0f3b-ecdb89526ec8","parent":{"ref":"EID6eeace1a-0175-1000-97fa-472262d31eb4"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeacf53-0175-1000-17e8-7002f646624d","parent":{"ref":"EID6eeace1a-0175-1000-97fa-472262d31eb4"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eeacf53-0175-1000-691b-e5c89fd699b0","parent":{"ref":"EID6eeace1a-0175-1000-97fa-472262d31eb4"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDee6dd359-48e7-4741-8514-482f729bba9d"},{"ref":"EID64f4626b-0989-45f3-b729-c50b4ec587fb"},{"ref":"EID6ecc650b-f93a-4501-acea-195a17f8c362"}]},"parent":{"ref":"EID6eeace1a-0175-1000-a51c-887b87793059"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:14:43Z","duration":114,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:14:43Z","duration":314,"status":"PASSED"},{"id":"EID6eeacf54-0175-1000-e5f1-7e73a4de3007","testStepResults":{"TestStepResult":{"id":"EID6eeacf54-0175-1000-d89b-7cfe9fbcfdd3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eead013-0175-1000-81e5-53d4e7bc59e0","parent":{"ref":"EID6eeacf54-0175-1000-d89b-7cfe9fbcfdd3"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eead013-0175-1000-17bc-c737a906b2c0","parent":{"ref":"EID6eeacf54-0175-1000-d89b-7cfe9fbcfdd3"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eead013-0175-1000-58b5-25a2ceb09fa7","parent":{"ref":"EID6eeacf54-0175-1000-d89b-7cfe9fbcfdd3"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"},{"id":"EID6eead013-0175-1000-7ed9-13a176f50b72","parent":{"ref":"EID6eeacf54-0175-1000-d89b-7cfe9fbcfdd3"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:14:43Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID41e7d40a-91e9-4e14-84dc-a2f71e144259"},{"ref":"EID47f5ab95-5691-4ce2-81a0-e22f637ffd11"},{"ref":"EID8c5fed3a-e25a-49b4-a3ac-7e0575d5eab0"}]},"parent":{"ref":"EID6eeacf54-0175-1000-e5f1-7e73a4de3007"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:14:43Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:14:43Z","duration":191,"status":"PASSED"},{"id":"EID6eead013-0175-1000-8e59-b7f1fecd5b15","testStepResults":{"TestStepResult":{"id":"EID6eead013-0175-1000-95ad-15f2327578d4","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID52792a17-e45f-4191-a90d-850fa1dd67f2"},{"ref":"EID22b05299-883f-417c-b4aa-bdbfa4cfd5ae"},{"ref":"EID57207dc0-a3a5-4e82-8006-d54ddc2b318d"},{"ref":"EIDdec08cbd-5d90-4a2a-a0ff-d532d4fe9b94"},{"ref":"EID3db0a144-e60b-4a08-b058-e64e635497ac"},{"ref":"EIDf427d816-5d80-4621-86d3-ce222db2174e"},{"ref":"EID037a1140-c661-4d8c-9b37-07fc2a9609d0"},{"ref":"EIDd7ab7c9c-88a2-4217-93a1-37a87f8aaa1a"},{"ref":"EID1ddbf62a-d964-476f-abe5-33ab64dd0273"}]},"parent":{"ref":"EID6eead013-0175-1000-8e59-b7f1fecd5b15"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:14:43Z","duration":671,"status":"SKIPPED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:14:43Z","duration":889,"status":"SKIPPED"},{"id":"EID6eead38c-0175-1000-ccf5-67a0f9008fea","testStepResults":{"TestStepResult":{"id":"EID6eead38c-0175-1000-c035-1dbdbf0a9087","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eead487-0175-1000-94d0-23ce196b5a55","parent":{"ref":"EID6eead38c-0175-1000-c035-1dbdbf0a9087"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:14:44Z","duration":0,"status":"PASSED"},{"id":"EID6eead487-0175-1000-0044-ef0a95783be1","parent":{"ref":"EID6eead38c-0175-1000-c035-1dbdbf0a9087"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:14:44Z","duration":0,"status":"PASSED"},{"id":"EID6eead487-0175-1000-d995-0a8c73575f98","parent":{"ref":"EID6eead38c-0175-1000-c035-1dbdbf0a9087"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:14:44Z","duration":0,"status":"PASSED"},{"id":"EID6eead487-0175-1000-2f6c-10251f555339","parent":{"ref":"EID6eead38c-0175-1000-c035-1dbdbf0a9087"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:14:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2103bf3d-9381-4819-ab83-6c08a4547641"},{"ref":"EID09ede726-8fe4-434c-8a33-ad0c6cd70001"},{"ref":"EIDda97b4f7-cf02-48d1-b367-fabe8adc2ecc"}]},"parent":{"ref":"EID6eead38c-0175-1000-ccf5-67a0f9008fea"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:14:44Z","duration":68,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:14:44Z","duration":251,"status":"PASSED"},{"id":"EID6eead487-0175-1000-eb80-9cd3198024eb","testStepResults":{"TestStepResult":{"id":"EID6eead48f-0175-1000-7c70-a0af20052961","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eead5dc-0175-1000-72a9-bdb70d6070a1","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead5dc-0175-1000-99b8-0df99ebfcb73","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead5dc-0175-1000-3e7e-f0dd48921989","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead5dc-0175-1000-b796-38989277f8d0","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead5dc-0175-1000-2f34-8c2a0b50e896","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead5dc-0175-1000-c3f0-df341fda1765","parent":{"ref":"EID6eead48f-0175-1000-7c70-a0af20052961"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfda50a9b-a4d9-44b2-bf5b-8b40d31e9e3a"},{"ref":"EID7ddcb4cf-f169-4017-81f8-d9e02e7e8e7a"},{"ref":"EID5eed026c-ff73-4200-bbea-48d31edbe180"}]},"parent":{"ref":"EID6eead487-0175-1000-eb80-9cd3198024eb"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:14:45Z","duration":38,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:14:44Z","duration":358,"status":"PASSED"},{"id":"EID6eead5ed-0175-1000-d177-d0bba91770c2","testStepResults":{"TestStepResult":{"id":"EID6eead5ed-0175-1000-312e-629beb8fa830","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eead6e7-0175-1000-e186-1f1d6a57012e","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-c644-371ffba70002","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-c106-bab526ba158d","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-522a-971e0ab74886","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-9df8-d080f872e8c3","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-0340-4adc72550d81","parent":{"ref":"EID6eead5ed-0175-1000-312e-629beb8fa830"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3ef91b42-a19c-45bb-9ac6-fb2be1f3c5ca"},{"ref":"EIDe6ec0042-bf38-4e80-ba8f-0a1fada2b254"},{"ref":"EID2cd5c2cf-ce12-456f-a98f-f1c250397e7c"}]},"parent":{"ref":"EID6eead5ed-0175-1000-d177-d0bba91770c2"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:14:45Z","duration":61,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:14:45Z","duration":250,"status":"PASSED"},{"id":"EID6eead6e7-0175-1000-2fee-b501bd0e0dc8","testStepResults":{"TestStepResult":{"id":"EID6eead6e7-0175-1000-2082-9997e0ebda5b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eead7eb-0175-1000-56ea-8d770d5b32d2","parent":{"ref":"EID6eead6e7-0175-1000-2082-9997e0ebda5b"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead7eb-0175-1000-d42a-b7dc9d55abdd","parent":{"ref":"EID6eead6e7-0175-1000-2082-9997e0ebda5b"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead7eb-0175-1000-cbbf-d84d5a7c72b3","parent":{"ref":"EID6eead6e7-0175-1000-2082-9997e0ebda5b"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"},{"id":"EID6eead7eb-0175-1000-0e83-4716e0d13a3b","parent":{"ref":"EID6eead6e7-0175-1000-2082-9997e0ebda5b"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:14:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc7bbe414-c002-4252-b852-3beb01b648a8"},{"ref":"EIDa755ef33-0344-4c6c-8ac3-d733bc8a87a8"},{"ref":"EID01edbd88-0aca-4391-8258-9103d352c44e"}]},"parent":{"ref":"EID6eead6e7-0175-1000-2fee-b501bd0e0dc8"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:14:45Z","duration":49,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:14:45Z","duration":260,"status":"PASSED"},{"id":"EID6eead7eb-0175-1000-6820-88d6044ed87f","testStepResults":{"TestStepResult":[{"id":"EID6eead7eb-0175-1000-89dd-ba69ca845f55","attachments":{"attachment":[{"ref":"EID7ea9722e-15b3-47f9-863e-25096c58a273"},{"ref":"EIDee00e56b-7bf2-404a-80ea-bb30cc30ce54"},{"ref":"EID1d687e7a-2b30-40f1-bdc7-545325312204"},{"ref":"EIDfc493ce9-d550-4e3b-9eb9-b73026a9cb3b"}]},"parent":{"ref":"EID6eead7eb-0175-1000-6820-88d6044ed87f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:14:45Z","duration":290,"status":"PASSED"},{"id":"EID6eead953-0175-1000-3bb3-aa397b64f971","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadaa5-0175-1000-feb8-b4be1ec81d39","parent":{"ref":"EID6eead953-0175-1000-3bb3-aa397b64f971"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadaa5-0175-1000-c6fe-bda8f0f6c90e","parent":{"ref":"EID6eead953-0175-1000-3bb3-aa397b64f971"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadaa5-0175-1000-4ea5-b41dac5008ec","parent":{"ref":"EID6eead953-0175-1000-3bb3-aa397b64f971"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadaa5-0175-1000-dbca-47d937b80b8b","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6eead953-0175-1000-3bb3-aa397b64f971"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID66c77cd4-1057-4066-a11e-c5cb793e3960"},{"ref":"EID2465ef15-2aea-4a59-a834-6bf268627bc7"},{"ref":"EIDcad350de-8e47-479f-8bb4-9b44830190be"}]},"parent":{"ref":"EID6eead7eb-0175-1000-6820-88d6044ed87f"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:14:46Z","duration":51,"status":"FAILED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:14:45Z","duration":699,"status":"FAILED"},{"id":"EID6eeadaa6-0175-1000-168d-9e421a171d6a","testStepResults":{"TestStepResult":{"id":"EID6eeadaa6-0175-1000-103d-41af6bb90a6b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadb8f-0175-1000-cad9-026997183aea","parent":{"ref":"EID6eeadaa6-0175-1000-103d-41af6bb90a6b"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadb8f-0175-1000-9d72-6036c38b6f6c","parent":{"ref":"EID6eeadaa6-0175-1000-103d-41af6bb90a6b"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadb8f-0175-1000-62fa-246c7878d665","parent":{"ref":"EID6eeadaa6-0175-1000-103d-41af6bb90a6b"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadb8f-0175-1000-5705-67d9bc1f69a3","parent":{"ref":"EID6eeadaa6-0175-1000-103d-41af6bb90a6b"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0c8247cd-60d2-426d-8edc-9e51c3e153b0"},{"ref":"EID5b5d36d8-80de-4c90-b6b8-e4944b17c967"},{"ref":"EID916cf227-9e96-4b60-8191-64855c3dfd69"}]},"parent":{"ref":"EID6eeadaa6-0175-1000-168d-9e421a171d6a"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:14:46Z","duration":91,"status":"PASSED"}},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:14:46Z","duration":233,"status":"PASSED"},{"id":"EID6eeadb8f-0175-1000-2b24-251018309d59","testStepResults":{"TestStepResult":[{"id":"EID6eeadb8f-0175-1000-0645-fecf316b80e5","parent":{"ref":"EID6eeadb8f-0175-1000-2b24-251018309d59"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:14:46Z","duration":0,"status":"PASSED"},{"id":"EID6eeadbac-0175-1000-a3db-db9b15a111c9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadc73-0175-1000-6ca0-b2d01a33bb69","parent":{"ref":"EID6eeadbac-0175-1000-a3db-db9b15a111c9"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadc73-0175-1000-4cc4-34a88f3c6289","parent":{"ref":"EID6eeadbac-0175-1000-a3db-db9b15a111c9"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadc73-0175-1000-0ca6-26109b6af9ab","parent":{"ref":"EID6eeadbac-0175-1000-a3db-db9b15a111c9"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadc73-0175-1000-cbd1-2a3ea88b03b7","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eeadbac-0175-1000-a3db-db9b15a111c9"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:14:47Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9807e35c-b252-4398-afb4-fbd9e47a6735"},{"ref":"EID405389de-a0aa-47c8-94ee-198067e9b9de"},{"ref":"EID8191445b-4973-440a-8258-53294f78b7a7"}]},"parent":{"ref":"EID6eeadb8f-0175-1000-2b24-251018309d59"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:14:46Z","duration":85,"status":"FAILED"}]},"parent":{"ref":"EID6eeabf69-0175-1000-5821-12a81b905498"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:14:46Z","duration":229,"status":"FAILED"}]},"parent":{"ref":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:14:39Z","duration":7435,"status":"FAILED"},{"id":"EID6eeadc74-0175-1000-5323-976d39f3ac92","testCaseResults":{"TestCaseResult":[{"id":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c","testStepResults":{"TestStepResult":[{"id":"EID6eeadc7a-0175-1000-013f-39e1b63349d4","parent":{"ref":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadc7a-0175-1000-e3b1-f75ee8a29754","parent":{"ref":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:14:47Z","duration":91,"status":"PASSED"},{"id":"EID6eeadc7a-0175-1000-b0be-0f3ed63e2299","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadd3c-0175-1000-4fbd-7034f5a5bcba","parent":{"ref":"EID6eeadc7a-0175-1000-b0be-0f3ed63e2299"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadd3c-0175-1000-cbc0-3a1b3797805e","parent":{"ref":"EID6eeadc7a-0175-1000-b0be-0f3ed63e2299"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadd3c-0175-1000-09ff-a9138d1acb49","parent":{"ref":"EID6eeadc7a-0175-1000-b0be-0f3ed63e2299"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf2d66dea-acf5-4717-aab4-81d26a79edc5"},{"ref":"EID6ccde222-ee2c-4134-bacc-b1523462eb14"},{"ref":"EID720df45e-0bdc-4000-bdea-9d53e5c6c996"}]},"parent":{"ref":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:14:47Z","duration":99,"status":"PASSED"},{"id":"EID6eeadd45-0175-1000-649b-fb097adc2c1c","attachments":{"attachment":{"ref":"EID191e5f12-04fb-49b9-b33c-b177682fae05"}},"parent":{"ref":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadd51-0175-1000-79c2-53fc0587622f","parent":{"ref":"EID6eeadc7a-0175-1000-6129-a92016d3cb8c"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:14:47Z","duration":83,"status":"PASSED"}]},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:14:47Z","duration":299,"status":"PASSED"},{"id":"EID6eeadda5-0175-1000-804e-cd09686bc3a9","testStepResults":{"TestStepResult":[{"id":"EID6eeadda5-0175-1000-37e6-730bb9031e43","parent":{"ref":"EID6eeadda5-0175-1000-804e-cd09686bc3a9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:14:47Z","duration":40,"status":"PASSED"},{"id":"EID6eeadda5-0175-1000-d17f-55405f87815d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaddfb-0175-1000-498c-b15afa23e448","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeadda5-0175-1000-d17f-55405f87815d"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:14:47Z","duration":12,"status":"FAILED"},{"id":"EID6eeade07-0175-1000-ba82-19eaafa359f7","parent":{"ref":"EID6eeadda5-0175-1000-d17f-55405f87815d"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeade07-0175-1000-4ea9-f50866ee0b73","parent":{"ref":"EID6eeadda5-0175-1000-d17f-55405f87815d"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeade07-0175-1000-0d7e-3490c01094c2","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6eeadda5-0175-1000-d17f-55405f87815d"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"},{"id":"EID6eeade07-0175-1000-238a-7e8f353e2c2a","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6eeadda5-0175-1000-d17f-55405f87815d"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5bc714bf-3575-4af9-858a-8f025e70415e"},{"ref":"EIDfc249b9f-f282-454e-a4bf-abda02f4dd4c"},{"ref":"EID5df16fb0-c424-431f-8a53-314a7dcf7621"}]},"parent":{"ref":"EID6eeadda5-0175-1000-804e-cd09686bc3a9"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:14:47Z","duration":27,"status":"FAILED"}]},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:14:47Z","duration":98,"status":"FAILED"},{"id":"EID6eeade08-0175-1000-39ee-7377e2f741f3","testStepResults":{"TestStepResult":{"id":"EID6eeade08-0175-1000-b197-295e2f3a970e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeade5c-0175-1000-e98e-9e58c0063355","parent":{"ref":"EID6eeade08-0175-1000-b197-295e2f3a970e"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeade5c-0175-1000-e4d5-a1a6e2b6b83b","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeade08-0175-1000-b197-295e2f3a970e"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:14:47Z","duration":13,"status":"FAILED"},{"id":"EID6eeade69-0175-1000-f38b-d255af975b27","parent":{"ref":"EID6eeade08-0175-1000-b197-295e2f3a970e"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID979ad17b-aeaa-4392-a893-7529ec1a4649"},{"ref":"EIDc13adb6e-dc9b-49bb-ad71-8d3843e751d3"},{"ref":"EID68a26ef8-7451-4c5b-ae8a-4b28b556c409"}]},"parent":{"ref":"EID6eeade08-0175-1000-39ee-7377e2f741f3"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:14:47Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:14:47Z","duration":97,"status":"FAILED"},{"id":"EID6eeade69-0175-1000-59d5-a3775452eace","testStepResults":{"TestStepResult":{"id":"EID6eeade69-0175-1000-aeca-292a9280b544","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadec8-0175-1000-184a-97076ac780a7","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeade69-0175-1000-aeca-292a9280b544"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"},{"id":"EID6eeadec8-0175-1000-2a81-1fa47ba81e84","parent":{"ref":"EID6eeade69-0175-1000-aeca-292a9280b544"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadec9-0175-1000-e2b2-1e525872026f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeade69-0175-1000-aeca-292a9280b544"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:14:47Z","duration":47,"status":"FAILED"},{"id":"EID6eeadef8-0175-1000-8293-6f4e50f2be62","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6eeade69-0175-1000-aeca-292a9280b544"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3a96fd87-b148-49e7-90a3-732158fff243"},{"ref":"EID6363acbe-7109-4c55-b613-88e47df5aa65"},{"ref":"EIDf4d821d6-cde7-4149-b38f-1fe7198fb2f5"}]},"parent":{"ref":"EID6eeade69-0175-1000-59d5-a3775452eace"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:14:47Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:14:47Z","duration":143,"status":"FAILED"},{"id":"EID6eeadef8-0175-1000-705d-67e6e527ebdc","testStepResults":{"TestStepResult":{"id":"EID6eeadef8-0175-1000-2a1e-4f70b78ee6de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadf55-0175-1000-863c-5aff80c26833","parent":{"ref":"EID6eeadef8-0175-1000-2a1e-4f70b78ee6de"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadf55-0175-1000-9e07-513ba6218ea4","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeadef8-0175-1000-2a1e-4f70b78ee6de"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:14:47Z","duration":11,"status":"FAILED"},{"id":"EID6eeadf60-0175-1000-e126-f0d21c0ad30e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6eeadef8-0175-1000-2a1e-4f70b78ee6de"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID8ec71407-7354-44dd-831c-0b2c07f9c313"},{"ref":"EID1ebc75e3-9076-4be4-b36b-d5e19679b8ae"},{"ref":"EIDd7936df7-6e63-4a66-8ccf-91ee7b225507"}]},"parent":{"ref":"EID6eeadef8-0175-1000-705d-67e6e527ebdc"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:14:47Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:14:47Z","duration":104,"status":"FAILED"},{"id":"EID6eeadf60-0175-1000-ea0f-4b41b44ec96e","testStepResults":{"TestStepResult":{"id":"EID6eeadf60-0175-1000-6352-4f2591e8015f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeadfc3-0175-1000-e864-082534a6e2a6","parent":{"ref":"EID6eeadf60-0175-1000-6352-4f2591e8015f"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"PASSED"},{"id":"EID6eeadfc3-0175-1000-eb64-7827da2896b4","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeadf60-0175-1000-6352-4f2591e8015f"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:14:47Z","duration":16,"status":"FAILED"},{"id":"EID6eeadfd3-0175-1000-3d11-ac8fba77fe4e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeadf60-0175-1000-6352-4f2591e8015f"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:14:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDd9397cce-6646-4206-8f4d-2ef904a093ab"},{"ref":"EID56dd5aed-e652-4ec7-9f26-6491efdda884"},{"ref":"EID842e3c1a-6893-43aa-8555-364964841c70"}]},"parent":{"ref":"EID6eeadf60-0175-1000-ea0f-4b41b44ec96e"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:14:47Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:14:47Z","duration":115,"status":"FAILED"},{"id":"EID6eeadfd3-0175-1000-af72-a37dc246eabc","testStepResults":{"TestStepResult":{"id":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae0aa-0175-1000-4663-949bb3474309","parent":{"ref":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae0aa-0175-1000-29b7-47474b6bd900","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:14:48Z","duration":19,"status":"FAILED"},{"id":"EID6eeae0bd-0175-1000-a7f0-825656996516","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"FAILED"},{"id":"EID6eeae0bd-0175-1000-eb2a-b4224660aa81","parent":{"ref":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae0bd-0175-1000-1c14-63b632f2c48c","parent":{"ref":"EID6eeadfd3-0175-1000-0f50-086a6a9e6424"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd7630bed-2baf-44fe-9a19-b5abb74288b2"},{"ref":"EID67b92911-09bf-462c-a47e-bdfdfd6b99d7"},{"ref":"EIDeb1db89e-512e-461c-8712-9f8b3664a9a2"}]},"parent":{"ref":"EID6eeadfd3-0175-1000-af72-a37dc246eabc"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:14:47Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:14:47Z","duration":234,"status":"FAILED"},{"id":"EID6eeae0bd-0175-1000-b3ff-84492cf750e8","testStepResults":{"TestStepResult":{"id":"EID6eeae0bd-0175-1000-2f62-b60e9da6d1c0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae137-0175-1000-d8d0-dd986a6dcb43","parent":{"ref":"EID6eeae0bd-0175-1000-2f62-b60e9da6d1c0"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae137-0175-1000-77bc-105161572c80","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae0bd-0175-1000-2f62-b60e9da6d1c0"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:14:48Z","duration":9,"status":"FAILED"},{"id":"EID6eeae140-0175-1000-add1-8be91d8619cd","parent":{"ref":"EID6eeae0bd-0175-1000-2f62-b60e9da6d1c0"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe2ef91d7-34f4-43e2-b34c-4eca20946cc1"},{"ref":"EID6170ba2c-f694-4295-a286-5175006aaef5"},{"ref":"EIDf6740ffc-ec95-43ec-b074-b54903beb6a0"}]},"parent":{"ref":"EID6eeae0bd-0175-1000-b3ff-84492cf750e8"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:14:48Z","duration":25,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:14:48Z","duration":131,"status":"FAILED"},{"id":"EID6eeae141-0175-1000-0568-179f082dbf0f","testStepResults":{"TestStepResult":{"id":"EID6eeae141-0175-1000-b57f-19c9c0e97a94","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae199-0175-1000-5d01-a91dda6f056d","parent":{"ref":"EID6eeae141-0175-1000-b57f-19c9c0e97a94"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae199-0175-1000-1ba1-4070d5704c5c","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae141-0175-1000-b57f-19c9c0e97a94"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:14:48Z","duration":10,"status":"FAILED"},{"id":"EID6eeae1a3-0175-1000-701b-4d0fea5304da","parent":{"ref":"EID6eeae141-0175-1000-b57f-19c9c0e97a94"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc1b76df8-4774-409a-a18e-6a1001c35c31"},{"ref":"EIDa23d864b-5e72-4918-b85f-0af529f243f4"},{"ref":"EIDe1a5cdae-1aab-499b-bdfb-f9e8af760600"}]},"parent":{"ref":"EID6eeae141-0175-1000-0568-179f082dbf0f"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:14:48Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:14:48Z","duration":99,"status":"FAILED"},{"id":"EID6eeae1a4-0175-1000-54bb-e2ebd94abbc3","testStepResults":{"TestStepResult":{"id":"EID6eeae1a4-0175-1000-3a4f-472047f7b79d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae260-0175-1000-59c9-089c48249ea5","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae1a4-0175-1000-3a4f-472047f7b79d"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:14:48Z","duration":11,"status":"FAILED"},{"id":"EID6eeae26b-0175-1000-ffcf-d7ff0c27f101","parent":{"ref":"EID6eeae1a4-0175-1000-3a4f-472047f7b79d"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae26b-0175-1000-9b73-8ae31d2121c1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeae1a4-0175-1000-3a4f-472047f7b79d"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:14:48Z","duration":1,"status":"FAILED"},{"id":"EID6eeae26c-0175-1000-0ec1-842eeaddfda0","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eeae1a4-0175-1000-3a4f-472047f7b79d"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDe2312b63-7eea-4344-8b8a-49c7e5acbd06"},{"ref":"EID6f81e8b3-1dd6-4019-a969-e8b6558d9ed3"},{"ref":"EID3add697a-d3cd-4a36-ab62-ff02ad0c398f"}]},"parent":{"ref":"EID6eeae1a4-0175-1000-54bb-e2ebd94abbc3"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:14:48Z","duration":106,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:14:48Z","duration":200,"status":"FAILED"},{"id":"EID6eeae26c-0175-1000-7662-6a1bee312c9c","testStepResults":{"TestStepResult":{"id":"EID6eeae26c-0175-1000-cef2-741c8f1983e3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae2c6-0175-1000-e6af-fdcaf3119fa5","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae26c-0175-1000-cef2-741c8f1983e3"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:14:48Z","duration":10,"status":"FAILED"},{"id":"EID6eeae2d0-0175-1000-a91f-4175051468c8","parent":{"ref":"EID6eeae26c-0175-1000-cef2-741c8f1983e3"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae2d1-0175-1000-22a7-74153f6cd099","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeae26c-0175-1000-cef2-741c8f1983e3"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"FAILED"},{"id":"EID6eeae2d1-0175-1000-4126-c5b0d65abce6","parent":{"ref":"EID6eeae26c-0175-1000-cef2-741c8f1983e3"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2c1c8d03-75e7-4026-91c1-d3096842e1b6"},{"ref":"EIDc77b08ff-814e-4d52-be4d-c623e8952207"},{"ref":"EID860dcca7-0adc-424b-9945-526f47e6d673"}]},"parent":{"ref":"EID6eeae26c-0175-1000-7662-6a1bee312c9c"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:14:48Z","duration":23,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:14:48Z","duration":101,"status":"FAILED"},{"id":"EID6eeae2d1-0175-1000-0796-5471e96ce928","testStepResults":{"TestStepResult":[{"id":"EID6eeae2d1-0175-1000-da93-bdf36105f5ae","parent":{"ref":"EID6eeae2d1-0175-1000-0796-5471e96ce928"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae2d1-0175-1000-3626-f9a06ac30bd9","parent":{"ref":"EID6eeae2d1-0175-1000-0796-5471e96ce928"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:14:48Z","duration":145,"status":"PASSED"},{"id":"EID6eeae2d1-0175-1000-cdfc-5815109bf6f2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae386-0175-1000-e994-36da0c01632a","parent":{"ref":"EID6eeae2d1-0175-1000-cdfc-5815109bf6f2"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae386-0175-1000-5524-fcfce816b0ab","parent":{"ref":"EID6eeae2d1-0175-1000-cdfc-5815109bf6f2"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae386-0175-1000-fd55-9c48c7647efa","parent":{"ref":"EID6eeae2d1-0175-1000-cdfc-5815109bf6f2"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae386-0175-1000-d4d4-ec34b9a154f6","parent":{"ref":"EID6eeae2d1-0175-1000-cdfc-5815109bf6f2"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6db87a3e-a7a2-4e9e-8f87-d1be29d8742c"},{"ref":"EIDcfc89644-0319-43b8-80a7-44dafa8f1b4f"},{"ref":"EID27cc742b-89d1-4846-8db3-ecc4dc70270c"}]},"parent":{"ref":"EID6eeae2d1-0175-1000-0796-5471e96ce928"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:14:48Z","duration":62,"status":"PASSED"},{"id":"EID6eeae386-0175-1000-eae7-0eba9b0aa42b","attachments":{"attachment":{"ref":"EID386c043b-174e-48ab-93e0-4b9f6a926b35"}},"parent":{"ref":"EID6eeae2d1-0175-1000-0796-5471e96ce928"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:14:48Z","duration":4,"status":"PASSED"},{"id":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae421-0175-1000-7445-a692715df283","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:14:48Z","duration":0,"status":"PASSED"},{"id":"EID6eeae421-0175-1000-d0d6-1712ea8a3e62","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:14:48Z","duration":25,"status":"FAILED"},{"id":"EID6eeae43a-0175-1000-0ae7-09fe736084d2","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae43a-0175-1000-d1f8-3ca55a397c2e","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae43a-0175-1000-1d8f-b66e01d7ef5a","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae43a-0175-1000-8500-304497dbebac","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae43a-0175-1000-54bf-ed429a47c06a","parent":{"ref":"EID6eeae3a1-0175-1000-3320-7cba35e46a5f"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID49c8e243-23fa-40f2-884a-cae7bca118c6"},{"ref":"EID4a1c5545-7179-4b4b-a390-ca6c10b44898"},{"ref":"EIDe88a29a9-56e6-4332-bde3-d5a720454e21"}]},"parent":{"ref":"EID6eeae2d1-0175-1000-0796-5471e96ce928"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:14:48Z","duration":33,"status":"FAILED"}]},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:14:48Z","duration":361,"status":"FAILED"},{"id":"EID6eeae43b-0175-1000-c04a-140e87e39cbe","testStepResults":{"TestStepResult":[{"id":"EID6eeae43b-0175-1000-5cb6-37c65980e74b","parent":{"ref":"EID6eeae43b-0175-1000-c04a-140e87e39cbe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae43b-0175-1000-e1c4-9074eca102cb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae628-0175-1000-5881-b65b89862560","parent":{"ref":"EID6eeae43b-0175-1000-e1c4-9074eca102cb"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae628-0175-1000-fc0b-589a42e0c47b","parent":{"ref":"EID6eeae43b-0175-1000-e1c4-9074eca102cb"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae628-0175-1000-1a8d-aef801e3ed88","parent":{"ref":"EID6eeae43b-0175-1000-e1c4-9074eca102cb"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae628-0175-1000-76b5-1fdfca3043bf","parent":{"ref":"EID6eeae43b-0175-1000-e1c4-9074eca102cb"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4ad8352f-ed32-4200-bef7-d76352ba04e6"},{"ref":"EID642d11eb-ba6c-4931-946b-416f6734a3c3"},{"ref":"EID7d4e73ee-d573-4c2a-a37c-8b934b557bcd"}]},"parent":{"ref":"EID6eeae43b-0175-1000-c04a-140e87e39cbe"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:14:49Z","duration":142,"status":"PASSED"},{"id":"EID6eeae628-0175-1000-17b3-0ed00a9c55c7","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eeae638-0175-1000-601e-51564015688c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae726-0175-1000-1c90-f599a24412a5","parent":{"ref":"EID6eeae638-0175-1000-601e-51564015688c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae726-0175-1000-a7f6-ffcb134479af","parent":{"ref":"EID6eeae638-0175-1000-601e-51564015688c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"},{"id":"EID6eeae726-0175-1000-a739-b7cb9d000cf8","parent":{"ref":"EID6eeae638-0175-1000-601e-51564015688c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0d4494d1-224d-40b7-aadd-7cf4f43ab1cc"},{"ref":"EID95315780-e267-4b20-8fcc-f55d6e0b334b"},{"ref":"EIDdbb84d61-f662-4d43-b5a6-0b19883217d8"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:49Z","duration":152,"status":"PASSED"},{"id":"EID6eeae728-0175-1000-e3ea-1be7d9701ee8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae8dd-0175-1000-1d7f-92f3951a7a1e","parent":{"ref":"EID6eeae728-0175-1000-e3ea-1be7d9701ee8"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeae8dd-0175-1000-29fb-ae196fea22e0","parent":{"ref":"EID6eeae728-0175-1000-e3ea-1be7d9701ee8"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeae8dd-0175-1000-1e66-4358e65874ee","parent":{"ref":"EID6eeae728-0175-1000-e3ea-1be7d9701ee8"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID90c2ee5f-0ccb-4a73-b784-07c996ac7a2d"},{"ref":"EIDe4a0615e-beb6-4df9-9dc2-da424523ea14"},{"ref":"EID5c01a0e3-32e9-4bd6-8b7c-0a1333bb341a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:49Z","duration":177,"status":"PASSED"},{"id":"EID6eeae8df-0175-1000-e522-959cdb3e244e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae93f-0175-1000-5315-8b02626c44cd","parent":{"ref":"EID6eeae8df-0175-1000-e522-959cdb3e244e"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeae93f-0175-1000-73fe-aed567227242","parent":{"ref":"EID6eeae8df-0175-1000-e522-959cdb3e244e"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeae93f-0175-1000-350b-64159a47eaee","parent":{"ref":"EID6eeae8df-0175-1000-e522-959cdb3e244e"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID46952b3a-2737-4958-9b6e-3292c973de3b"},{"ref":"EIDa1be3c1b-46d6-4059-8b87-d8ca29038945"},{"ref":"EIDc6b64c3c-dd0c-4af9-b7d3-cf22d3ad9874"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:50Z","duration":42,"status":"PASSED"}]},"parent":{"ref":"EID6eeae43b-0175-1000-c04a-140e87e39cbe"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:14:49Z","duration":792,"status":"PASSED"},{"id":"EID6eeae941-0175-1000-a312-d4bebc942213","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeae9a6-0175-1000-0173-d352c0adff24","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae941-0175-1000-a312-d4bebc942213"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:14:50Z","duration":11,"status":"FAILED"},{"id":"EID6eeae9b1-0175-1000-3c27-34d8146c4507","parent":{"ref":"EID6eeae941-0175-1000-a312-d4bebc942213"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeae9b1-0175-1000-85cf-8e58aa4717d4","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeae941-0175-1000-a312-d4bebc942213"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"FAILED"},{"id":"EID6eeae9b1-0175-1000-857b-0e4970f51efb","parent":{"ref":"EID6eeae941-0175-1000-a312-d4bebc942213"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1a7bfa25-2dc6-49e2-b99a-dcfff1af53d8"},{"ref":"EIDe3ff2130-d562-4307-9eaf-6dc0b62898f9"},{"ref":"EID17b15fd3-04b7-4938-affe-41b3727b844f"}]},"parent":{"ref":"EID6eeae43b-0175-1000-c04a-140e87e39cbe"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:14:50Z","duration":30,"status":"FAILED"}]},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:14:49Z","duration":1398,"status":"FAILED"},{"id":"EID6eeae9b2-0175-1000-ce5f-799b9623db97","testStepResults":{"TestStepResult":{"id":"EID6eeae9b2-0175-1000-61e3-c241da8e4029","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaea3b-0175-1000-a05b-cd660faa3661","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeae9b2-0175-1000-61e3-c241da8e4029"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:14:50Z","duration":10,"status":"FAILED"},{"id":"EID6eeaea45-0175-1000-be96-dcd7c3ea73e7","parent":{"ref":"EID6eeae9b2-0175-1000-61e3-c241da8e4029"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"},{"id":"EID6eeaea45-0175-1000-0b13-4e8a864a6d3d","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeae9b2-0175-1000-61e3-c241da8e4029"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"FAILED"},{"id":"EID6eeaea45-0175-1000-993e-d6189ccdee2d","parent":{"ref":"EID6eeae9b2-0175-1000-61e3-c241da8e4029"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcf7cc3ab-7f27-4f6d-b1c4-f8ddd0c6f540"},{"ref":"EIDd2f62c22-0572-46be-a4e4-611fc68489d5"},{"ref":"EID48ec6a84-049b-4d3c-8b21-cc361ea1b2e8"}]},"parent":{"ref":"EID6eeae9b2-0175-1000-ce5f-799b9623db97"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:14:50Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeadc74-0175-1000-5323-976d39f3ac92"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:14:50Z","duration":147,"status":"FAILED"}]},"parent":{"ref":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:14:47Z","duration":3538,"status":"FAILED"},{"id":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e","testCaseResults":{"TestCaseResult":[{"id":"EID6eeaea46-0175-1000-9672-506052434d55","testStepResults":{"TestStepResult":{"id":"EID6eeaea46-0175-1000-04fd-614f3a83c1d7","parent":{"ref":"EID6eeaea46-0175-1000-9672-506052434d55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeaea46-0175-1000-0230-67e8e7787422","testStepResults":{"TestStepResult":{"id":"EID6eeaea46-0175-1000-6324-0e4a901ffe9c","parent":{"ref":"EID6eeaea46-0175-1000-0230-67e8e7787422"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeaea46-0175-1000-7319-e7a6e6008004","testStepResults":{"TestStepResult":{"id":"EID6eeaea46-0175-1000-fb8d-7e05bfa29308","parent":{"ref":"EID6eeaea46-0175-1000-7319-e7a6e6008004"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeaea4f-0175-1000-7c48-77543c485f98","testStepResults":{"TestStepResult":{"id":"EID6eeaea4f-0175-1000-1484-4b03f9ad19b0","parent":{"ref":"EID6eeaea4f-0175-1000-7c48-77543c485f98"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:14:50Z","duration":1,"status":"SKIPPED"},{"id":"EID6eeaea50-0175-1000-8e22-16c981dfcd75","testStepResults":{"TestStepResult":{"id":"EID6eeaea50-0175-1000-500c-584662b65ed9","parent":{"ref":"EID6eeaea50-0175-1000-8e22-16c981dfcd75"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeaea50-0175-1000-9d98-7a90cb10b325","testStepResults":{"TestStepResult":{"id":"EID6eeaea50-0175-1000-85fd-9202b7802516","parent":{"ref":"EID6eeaea50-0175-1000-9d98-7a90cb10b325"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeaea50-0175-1000-7829-1db7c45b3871","testStepResults":{"TestStepResult":{"id":"EID6eeaea50-0175-1000-f83d-8596f5121035","parent":{"ref":"EID6eeaea50-0175-1000-7829-1db7c45b3871"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:14:50Z","duration":623,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaea46-0175-1000-2d79-4799ccc6f16e"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:14:50Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:14:50Z","duration":10,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EIDeb1db89e-512e-461c-8712-9f8b3664a9a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID774cc9ef-b8ce-4e38-bbce-81aa867d2530","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID774cc9ef-b8ce-4e38-bbce-81aa867d2530"}},{"type":"ServiceEndpoint","id":"EID49c8e243-23fa-40f2-884a-cae7bca118c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID28b9e8ad-cbef-4b22-a10e-e809ca8c9b7a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID8c5fed3a-e25a-49b4-a3ac-7e0575d5eab0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf4d821d6-cde7-4149-b38f-1fe7198fb2f5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID22e1453f-a17b-4356-8443-cf67f3dea384","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID22e1453f-a17b-4356-8443-cf67f3dea384"}},{"type":"ServiceResponse","id":"EID405389de-a0aa-47c8-94ee-198067e9b9de","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID405389de-a0aa-47c8-94ee-198067e9b9de"}},{"type":"Message","id":"EID8eedd8d4-888e-4d01-a9a4-23996d3b728b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID8eedd8d4-888e-4d01-a9a4-23996d3b728b"}},{"type":"Message","id":"EID236f738a-27c0-4fdd-b415-1810a50d1913","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID236f738a-27c0-4fdd-b415-1810a50d1913"}},{"type":"ServiceResponse","id":"EIDd2f62c22-0572-46be-a4e4-611fc68489d5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDd2f62c22-0572-46be-a4e4-611fc68489d5"}},{"type":"GetParameter","id":"EIDafa49486-439b-4b7e-ae4e-cb4d43cca707","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID5bc714bf-3575-4af9-858a-8f025e70415e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID642d11eb-ba6c-4931-946b-416f6734a3c3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID642d11eb-ba6c-4931-946b-416f6734a3c3"}},{"type":"ServiceEndpoint","id":"EID48e768e1-33ff-4b59-8320-cd44933e08d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDc9c2269d-7618-4b10-8d19-b6b7106f9b9f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDc9c2269d-7618-4b10-8d19-b6b7106f9b9f"}},{"type":"ServiceResponse","id":"EID5b5d36d8-80de-4c90-b6b8-e4944b17c967","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID5b5d36d8-80de-4c90-b6b8-e4944b17c967"}},{"type":"Error","id":"EIDa1da1671-05e0-4d3f-98e5-2c50dd393bc2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDa1da1671-05e0-4d3f-98e5-2c50dd393bc2"}},{"type":"GetParameter","id":"EID4e999d81-1110-4365-a1da-a1eb4cf0786d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID4f74b51c-b5c5-4d9c-b5b3-c3f0c7ee9aac","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID4f74b51c-b5c5-4d9c-b5b3-c3f0c7ee9aac"}},{"type":"Error","id":"EID8c74bace-cabc-4bc4-a1ef-0089a6f7c531","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID8c74bace-cabc-4bc4-a1ef-0089a6f7c531"}},{"type":"ServiceEndpoint","id":"EID4ad8352f-ed32-4200-bef7-d76352ba04e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID22b05299-883f-417c-b4aa-bdbfa4cfd5ae","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID22b05299-883f-417c-b4aa-bdbfa4cfd5ae"}},{"type":"ServiceEndpoint","id":"EIDd7630bed-2baf-44fe-9a19-b5abb74288b2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID3db0a144-e60b-4a08-b058-e64e635497ac","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID3db0a144-e60b-4a08-b058-e64e635497ac"}},{"type":"ServiceResponse","id":"EID4b1707ae-cf3a-4d46-9b0b-f6d245dd86e6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID4b1707ae-cf3a-4d46-9b0b-f6d245dd86e6"}},{"type":"Message","id":"EIDb1dfd83d-cccd-459c-83f6-d6d79bced30b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDb1dfd83d-cccd-459c-83f6-d6d79bced30b"}},{"type":"ServiceResponse","id":"EIDa23d864b-5e72-4918-b85f-0af529f243f4","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDa23d864b-5e72-4918-b85f-0af529f243f4"}},{"type":"GetParameter","id":"EID2cd5c2cf-ce12-456f-a98f-f1c250397e7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID7ea9722e-15b3-47f9-863e-25096c58a273","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID7ea9722e-15b3-47f9-863e-25096c58a273"}},{"type":"ServiceEndpoint","id":"EID567b9fe2-aff0-46bc-a455-8198f8b268cf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1da81532-c057-4a98-8eed-ba586f1f89b4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1dee11b9-7c68-442b-ac4b-91004fad2268","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID84bb4597-b2de-432b-ba55-de9bd0b913ea","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID84bb4597-b2de-432b-ba55-de9bd0b913ea"}},{"type":"GetParameter","id":"EID3add697a-d3cd-4a36-ab62-ff02ad0c398f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID90c2ee5f-0ccb-4a73-b784-07c996ac7a2d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID189871f8-93bf-4c5f-b91e-d07821dbc3fd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID189871f8-93bf-4c5f-b91e-d07821dbc3fd"}},{"type":"GetParameter","id":"EID7d4e73ee-d573-4c2a-a37c-8b934b557bcd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDd9397cce-6646-4206-8f4d-2ef904a093ab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID62d8933a-d51e-493d-9c9a-3128b6038c66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDcf7cc3ab-7f27-4f6d-b1c4-f8ddd0c6f540","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0c8247cd-60d2-426d-8edc-9e51c3e153b0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9ee73b21-01f5-43b7-8a37-87c788a41abf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID47f5ab95-5691-4ce2-81a0-e22f637ffd11","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID47f5ab95-5691-4ce2-81a0-e22f637ffd11"}},{"type":"ServiceEndpoint","id":"EID8ec71407-7354-44dd-831c-0b2c07f9c313","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID67b92911-09bf-462c-a47e-bdfdfd6b99d7","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID67b92911-09bf-462c-a47e-bdfdfd6b99d7"}},{"type":"Message","id":"EID386c043b-174e-48ab-93e0-4b9f6a926b35","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID386c043b-174e-48ab-93e0-4b9f6a926b35"}},{"type":"ServiceResponse","id":"EIDe4a0615e-beb6-4df9-9dc2-da424523ea14","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDe4a0615e-beb6-4df9-9dc2-da424523ea14"}},{"type":"GetParameter","id":"EID17b15fd3-04b7-4938-affe-41b3727b844f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDf427d816-5d80-4621-86d3-ce222db2174e","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDf427d816-5d80-4621-86d3-ce222db2174e"}},{"type":"ServiceEndpoint","id":"EID41e7d40a-91e9-4e14-84dc-a2f71e144259","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID6b1e7a39-eb73-446b-b622-8a954eef5291","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID6b1e7a39-eb73-446b-b622-8a954eef5291"}},{"type":"GetParameter","id":"EIDe1a5cdae-1aab-499b-bdfb-f9e8af760600","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID6db87a3e-a7a2-4e9e-8f87-d1be29d8742c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5c65806b-ea5f-4a48-bd70-08ff1c7b959b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd4250ffa-172c-4f93-aa78-474f8d564925","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDd4250ffa-172c-4f93-aa78-474f8d564925"}},{"type":"GetParameter","id":"EID6ecc650b-f93a-4501-acea-195a17f8c362","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe88a29a9-56e6-4332-bde3-d5a720454e21","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID6f81e8b3-1dd6-4019-a969-e8b6558d9ed3","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID6f81e8b3-1dd6-4019-a969-e8b6558d9ed3"}},{"type":"Error","id":"EID00b7c043-a56e-4afa-ad3d-169a18b1e262","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID00b7c043-a56e-4afa-ad3d-169a18b1e262"}},{"type":"ServiceEndpoint","id":"EID46952b3a-2737-4958-9b6e-3292c973de3b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID4a6ec102-7efe-48ca-a296-3c33a62443ab","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID4a6ec102-7efe-48ca-a296-3c33a62443ab"}},{"type":"ServiceEndpoint","id":"EIDc7bbe414-c002-4252-b852-3beb01b648a8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa755ef33-0344-4c6c-8ac3-d733bc8a87a8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDa755ef33-0344-4c6c-8ac3-d733bc8a87a8"}},{"type":"GetParameter","id":"EID916cf227-9e96-4b60-8191-64855c3dfd69","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID842e3c1a-6893-43aa-8555-364964841c70","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDf6ad014b-9c04-4981-bdfb-3b448ea0bd2e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDf6ad014b-9c04-4981-bdfb-3b448ea0bd2e"}},{"type":"Message","id":"EIDa015d101-9170-4d84-a2b4-b878a42093ed","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDa015d101-9170-4d84-a2b4-b878a42093ed"}},{"type":"ServiceResponse","id":"EID86064597-b656-466f-8f25-4e43b5244134","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID86064597-b656-466f-8f25-4e43b5244134"}},{"type":"ServiceResponse","id":"EID7c33966d-a89f-4746-8556-391b0df5a41f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID7c33966d-a89f-4746-8556-391b0df5a41f"}},{"type":"ServiceResponse","id":"EID2465ef15-2aea-4a59-a834-6bf268627bc7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID2465ef15-2aea-4a59-a834-6bf268627bc7"}},{"type":"ServiceResponse","id":"EIDc13adb6e-dc9b-49bb-ad71-8d3843e751d3","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDc13adb6e-dc9b-49bb-ad71-8d3843e751d3"}},{"type":"ServiceResponse","id":"EIDc77b08ff-814e-4d52-be4d-c623e8952207","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDc77b08ff-814e-4d52-be4d-c623e8952207"}},{"type":"Message","id":"EIDd7ab7c9c-88a2-4217-93a1-37a87f8aaa1a","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDd7ab7c9c-88a2-4217-93a1-37a87f8aaa1a"}},{"type":"ServiceEndpoint","id":"EID9807e35c-b252-4398-afb4-fbd9e47a6735","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID25366afa-0bbf-4e36-b5d3-0be1cf466e0b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID979ad17b-aeaa-4392-a893-7529ec1a4649","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID1ebc75e3-9076-4be4-b36b-d5e19679b8ae","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID1ebc75e3-9076-4be4-b36b-d5e19679b8ae"}},{"type":"Message","id":"EIDee00e56b-7bf2-404a-80ea-bb30cc30ce54","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDee00e56b-7bf2-404a-80ea-bb30cc30ce54"}},{"type":"Message","id":"EID191e5f12-04fb-49b9-b33c-b177682fae05","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID191e5f12-04fb-49b9-b33c-b177682fae05"}},{"type":"GetParameter","id":"EIDc6b64c3c-dd0c-4af9-b7d3-cf22d3ad9874","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EIDf2d66dea-acf5-4717-aab4-81d26a79edc5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID048cc44c-0d25-4148-8418-9d5c027008a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID048cc44c-0d25-4148-8418-9d5c027008a1"}},{"type":"GetParameter","id":"EID086ebde0-b72d-4db5-9aab-02b6060f1931","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID1ddbf62a-d964-476f-abe5-33ab64dd0273","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID1ddbf62a-d964-476f-abe5-33ab64dd0273"}},{"type":"Error","id":"EID7ddbf983-731c-45ad-bb94-c1db8a19ef05","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID7ddbf983-731c-45ad-bb94-c1db8a19ef05"}},{"type":"Message","id":"EID471b940d-0aa6-49a6-8c0e-f36755968302","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID471b940d-0aa6-49a6-8c0e-f36755968302"}},{"type":"GetParameter","id":"EIDdbb84d61-f662-4d43-b5a6-0b19883217d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID75f6b1a5-ec6b-4c86-9d45-69bf6b1ce3da","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID75f6b1a5-ec6b-4c86-9d45-69bf6b1ce3da"}},{"type":"Error","id":"EID51561359-0b7a-4dfe-8bc9-a4555342e66a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID51561359-0b7a-4dfe-8bc9-a4555342e66a"}},{"type":"ServiceResponse","id":"EIDe3ff2130-d562-4307-9eaf-6dc0b62898f9","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDe3ff2130-d562-4307-9eaf-6dc0b62898f9"}},{"type":"ServiceEndpoint","id":"EID2103bf3d-9381-4819-ab83-6c08a4547641","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe6ec0042-bf38-4e80-ba8f-0a1fada2b254","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDe6ec0042-bf38-4e80-ba8f-0a1fada2b254"}},{"type":"Error","id":"EIDb30c0f8a-474a-415a-86b2-ecc77684192c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDb30c0f8a-474a-415a-86b2-ecc77684192c"}},{"type":"ServiceResponse","id":"EIDcbf6b681-31ec-4fb1-8915-095db5f4f9dd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDcbf6b681-31ec-4fb1-8915-095db5f4f9dd"}},{"type":"ServiceResponse","id":"EID6170ba2c-f694-4295-a286-5175006aaef5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID6170ba2c-f694-4295-a286-5175006aaef5"}},{"type":"GetParameter","id":"EID3076e6a4-d684-424c-b89e-d09f71274964","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd7936df7-6e63-4a66-8ccf-91ee7b225507","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDcad350de-8e47-479f-8bb4-9b44830190be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID66c77cd4-1057-4066-a11e-c5cb793e3960","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDddf959a6-8338-433d-885c-73913505c2c6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDddf959a6-8338-433d-885c-73913505c2c6"}},{"type":"GetParameter","id":"EIDebee8840-6fcd-41d4-a1b8-52cfe89d8629","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID57207dc0-a3a5-4e82-8006-d54ddc2b318d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID57207dc0-a3a5-4e82-8006-d54ddc2b318d"}},{"type":"ServiceResponse","id":"EID4a1c5545-7179-4b4b-a390-ca6c10b44898","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID4a1c5545-7179-4b4b-a390-ca6c10b44898"}},{"type":"Error","id":"EID19e1e3eb-954b-4d75-a724-2bda9c97279d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID19e1e3eb-954b-4d75-a724-2bda9c97279d"}},{"type":"ServiceResponse","id":"EID95315780-e267-4b20-8fcc-f55d6e0b334b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID95315780-e267-4b20-8fcc-f55d6e0b334b"}},{"type":"GetParameter","id":"EIDb38699d3-f972-4878-9cf7-4fc66afe649a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3eb18a88-eae4-494a-bb45-f7c0f4b51a71","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID09ede726-8fe4-434c-8a33-ad0c6cd70001","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID09ede726-8fe4-434c-8a33-ad0c6cd70001"}},{"type":"Message","id":"EID1d687e7a-2b30-40f1-bdc7-545325312204","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID1d687e7a-2b30-40f1-bdc7-545325312204"}},{"type":"Message","id":"EID52792a17-e45f-4191-a90d-850fa1dd67f2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID52792a17-e45f-4191-a90d-850fa1dd67f2"}},{"type":"GetParameter","id":"EID01edbd88-0aca-4391-8258-9103d352c44e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID860dcca7-0adc-424b-9945-526f47e6d673","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDf8a49b49-6b4f-456b-9a83-9678ac0fc097","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDf8a49b49-6b4f-456b-9a83-9678ac0fc097"}},{"type":"ServiceEndpoint","id":"EID1a7bfa25-2dc6-49e2-b99a-dcfff1af53d8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDc1b76df8-4774-409a-a18e-6a1001c35c31","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID1a128579-e9fd-4e73-b010-f709d998504d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID27cc742b-89d1-4846-8db3-ecc4dc70270c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5c01a0e3-32e9-4bd6-8b7c-0a1333bb341a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID9346bb43-398f-4be9-8b86-e5e072e20b71","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6ccde222-ee2c-4134-bacc-b1523462eb14","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID6ccde222-ee2c-4134-bacc-b1523462eb14"}},{"type":"ServiceResponse","id":"EID56dd5aed-e652-4ec7-9f26-6491efdda884","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID56dd5aed-e652-4ec7-9f26-6491efdda884"}},{"type":"Error","id":"EIDd5891a9e-9abe-4f1d-beec-115fe413f80f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDd5891a9e-9abe-4f1d-beec-115fe413f80f"}},{"type":"GetParameter","id":"EID294cf2fa-5c7c-4b7e-99ec-8e5d7a71a9c6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDed9d825d-f01b-4125-9774-b0afa7bbbd2b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDed9d825d-f01b-4125-9774-b0afa7bbbd2b"}},{"type":"ServiceResponse","id":"EID7ddcb4cf-f169-4017-81f8-d9e02e7e8e7a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID7ddcb4cf-f169-4017-81f8-d9e02e7e8e7a"}},{"type":"ServiceResponse","id":"EIDcfc89644-0319-43b8-80a7-44dafa8f1b4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDcfc89644-0319-43b8-80a7-44dafa8f1b4f"}},{"type":"ServiceResponse","id":"EIDa1be3c1b-46d6-4059-8b87-d8ca29038945","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDa1be3c1b-46d6-4059-8b87-d8ca29038945"}},{"type":"ServiceEndpoint","id":"EIDe2312b63-7eea-4344-8b8a-49c7e5acbd06","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID48ec6a84-049b-4d3c-8b21-cc361ea1b2e8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDdec08cbd-5d90-4a2a-a0ff-d532d4fe9b94","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDdec08cbd-5d90-4a2a-a0ff-d532d4fe9b94"}},{"type":"GetParameter","id":"EID5df16fb0-c424-431f-8a53-314a7dcf7621","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf6740ffc-ec95-43ec-b074-b54903beb6a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8191445b-4973-440a-8258-53294f78b7a7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID68a26ef8-7451-4c5b-ae8a-4b28b556c409","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0d4494d1-224d-40b7-aadd-7cf4f43ab1cc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID64f4626b-0989-45f3-b729-c50b4ec587fb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID64f4626b-0989-45f3-b729-c50b4ec587fb"}},{"type":"ServiceEndpoint","id":"EIDee6dd359-48e7-4741-8514-482f729bba9d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID037a1140-c661-4d8c-9b37-07fc2a9609d0","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID037a1140-c661-4d8c-9b37-07fc2a9609d0"}},{"type":"Message","id":"EIDf6560ae5-d3c9-40d8-be79-841d0c04395c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDf6560ae5-d3c9-40d8-be79-841d0c04395c"}},{"type":"Message","id":"EID2556f834-c4a3-43fb-b8bf-11f2f241f7f6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID2556f834-c4a3-43fb-b8bf-11f2f241f7f6"}},{"type":"ServiceEndpoint","id":"EID7df0e65e-4906-421a-9e56-90585596c117","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID02fc067b-7b98-4906-a36b-148e88b859cd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID02fc067b-7b98-4906-a36b-148e88b859cd"}},{"type":"ServiceEndpoint","id":"EID3ef91b42-a19c-45bb-9ac6-fb2be1f3c5ca","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID720df45e-0bdc-4000-bdea-9d53e5c6c996","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDfda50a9b-a4d9-44b2-bf5b-8b40d31e9e3a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6363acbe-7109-4c55-b613-88e47df5aa65","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID6363acbe-7109-4c55-b613-88e47df5aa65"}},{"type":"ServiceEndpoint","id":"EID2c1c8d03-75e7-4026-91c1-d3096842e1b6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDb9e57fe3-5204-4d77-bd9c-462aa7be1444","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDb9e57fe3-5204-4d77-bd9c-462aa7be1444"}},{"type":"Error","id":"EID12180ee5-f5f2-48bd-b8b1-5359133b1fc2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID12180ee5-f5f2-48bd-b8b1-5359133b1fc2"}},{"type":"GetParameter","id":"EIDda97b4f7-cf02-48d1-b367-fabe8adc2ecc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDfc493ce9-d550-4e3b-9eb9-b73026a9cb3b","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDfc493ce9-d550-4e3b-9eb9-b73026a9cb3b"}},{"type":"ServiceResponse","id":"EIDef78c21c-5798-4e84-ba76-e4157746924d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDef78c21c-5798-4e84-ba76-e4157746924d"}},{"type":"ServiceEndpoint","id":"EID3a96fd87-b148-49e7-90a3-732158fff243","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID46e7c85b-223d-41b2-a6c1-dc73e45f9b14","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID46e7c85b-223d-41b2-a6c1-dc73e45f9b14"}},{"type":"LogFile","id":"EID7a059cda-2223-4044-8449-635c34866df4","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EID7a059cda-2223-4044-8449-635c34866df4"}},{"type":"GetParameter","id":"EIDb13d69ee-1ab9-45fe-87d2-983129a2e220","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDe2ef91d7-34f4-43e2-b34c-4eca20946cc1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID5eed026c-ff73-4200-bbea-48d31edbe180","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2622a71c-c7fd-4181-a6c7-136ae2900c38","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfc249b9f-f282-454e-a4bf-abda02f4dd4c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8e9cfa74-a1ea-4070-ad28-b4cbb7fa1237/Attachments/EIDfc249b9f-f282-454e-a4bf-abda02f4dd4c"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:14:39Z","duration":11427,"status":"FAILED"}}}}}
11:15:03.132 [print] EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f
11:15:03.132 [print] FAILED
11:15:03.133 [print] FAILED
11:15:03.133 [print] Conformance Class Download Service - Pre-defined Atom
11:15:03.133 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f.json
11:15:03.133 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f.json
11:15:03.133 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa0dd5ab7-2a03-4cdd-b5b7-877e15e1ac0f/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:03.139 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:15:03.139 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:08:48.360 [print] testing url:https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml
11:08:48.361 request: 1 > HEAD https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:48.825 response time in milliseconds: 464.01 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 6639 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:48 GMT 1 < Etag: "3504314243" 1 < Last-Modified: Tue, 27 Oct 2020 19:17:09 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:08:48.829 request: 1 > HEAD https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:49.218 response time in milliseconds: 388.90 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 6639 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:49 GMT 1 < Etag: "3504314243" 1 < Last-Modified: Tue, 27 Oct 2020 19:17:09 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:06:35.131 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml
11:06:35.134 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:35.613 response time in milliseconds: 478.23 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:35 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422344C5211CD9 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:06:35.627 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:36.029 response time in milliseconds: 401.33 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:35 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422344DDD5D19C 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:06:36.030 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:11:26.421 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml
11:11:26.422 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:28.313 response time in milliseconds: 1890.77 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:11:27 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 16422388B59FC9B9 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:11:28.318 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:29.112 response time in milliseconds: 793.66 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:11:28 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642238914FD5CC6 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:11:29.113 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:04:51.582 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/ps-cdda/wfs?request=GetCapabilities
11:04:51.583 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-cdda/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:51.983 response time in milliseconds: 398.96 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:51 GMT 1 < ETag: "1840e-5af58ad506ad0-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:04:51.994 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-cdda/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:04:52.411 response time in milliseconds: 416.98 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:04:52 GMT 1 < ETag: "1840e-5af58ad506ad0-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:04:52.414 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:55.028 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:16:55.029 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:17:01.930 response time in milliseconds: 6149.22
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:17:01 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:16:58 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/8cad374d-433d-40fa-ae43-d99543aa6b86.json","testRuns":{"TestRun":{"id":"EID8cad374d-433d-40fa-ae43-d99543aa6b86","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:58.308Z","testTasks":{"TestTask":{"id":"EID391cc7bb-7e65-4b22-9bd4-a143c780b9ef","parent":{"ref":"EID8cad374d-433d-40fa-ae43-d99543aa6b86"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID11a5285f-41a7-4bc2-8e04-2dd2e7a26e9d"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID11a5285f-41a7-4bc2-8e04-2dd2e7a26e9d","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:55.474Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:57.72Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:17:01.933 [print] EID8cad374d-433d-40fa-ae43-d99543aa6b86
11:17:01.933 [print] UNDEFINED
11:17:01.934 [print] Conformance Class Download Service - Pre-defined Atom
11:17:01.934 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/8cad374d-433d-40fa-ae43-d99543aa6b86.json
11:17:01.934 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/log
11:17:01.934 [print] statuspath TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86
11:17:01.934 [print] progresspath TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
11:17:01.934 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:02.485 response time in milliseconds: 550.41
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:17:02 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized"]}
11:17:02.485 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)",
"28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:16:58 - Preparing 1 Test Task:",
"28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)",
"28.10.2020 11:16:58 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:16:58 - with parameters: ",
"28.10.2020 11:16:58 - etf.testcases = *",
"28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:16:58 - Setting state to CREATED",
"28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z",
"28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:17:00 - Project Properties: ",
"28.10.2020 11:17:00 - etf.testcases - * ",
"28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:17:00 - username - ",
"28.10.2020 11:17:00 - authUser - ",
"28.10.2020 11:17:00 - authMethod - basic ",
"28.10.2020 11:17:00 - TestRunTask initialized"
]
}
11:17:02.486 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:02.996 response time in milliseconds: 510.09
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:17:02 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized"]}
11:17:03.006 retry condition not satisfied: response.val == response.max
11:17:03.006 sleeping before retry #1
11:17:08.007 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:08.537 response time in milliseconds: 527.07
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:17:08 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"68","max":"69","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:17:08.538 retry condition not satisfied: response.val == response.max
11:17:08.538 sleeping before retry #2
11:17:13.539 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:14.065 response time in milliseconds: 526.08
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:17:14 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"156","max":"157","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:14.066 retry condition not satisfied: response.val == response.max
11:17:14.072 sleeping before retry #3
11:17:19.073 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:19.586 response time in milliseconds: 513.35
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:17:19 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:19.587 retry condition not satisfied: response.val == response.max
11:17:19.587 sleeping before retry #4
11:17:24.588 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:25.102 response time in milliseconds: 514.20
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:17:25 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:25.103 retry condition not satisfied: response.val == response.max
11:17:25.103 sleeping before retry #5
11:17:30.104 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:30.623 response time in milliseconds: 518.12
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:17:30 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:30.633 retry condition not satisfied: response.val == response.max
11:17:30.633 sleeping before retry #6
11:17:35.633 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:36.150 response time in milliseconds: 516.65
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:17:36 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:36.151 retry condition not satisfied: response.val == response.max
11:17:36.151 sleeping before retry #7
11:17:41.151 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:41.675 response time in milliseconds: 523.08
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:17:41 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:17:41.680 retry condition not satisfied: response.val == response.max
11:17:41.681 sleeping before retry #8
11:17:46.681 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:47.204 response time in milliseconds: 522.29
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:17:47 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:45 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:17:47.210 retry condition not satisfied: response.val == response.max
11:17:47.210 sleeping before retry #9
11:17:52.211 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:52.726 response time in milliseconds: 514.68
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:17:52 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:45 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:17:47 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:17:52.726 retry condition not satisfied: response.val == response.max
11:17:52.726 sleeping before retry #10
11:17:57.727 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:58.237 response time in milliseconds: 509.56
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:17:58 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:45 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:17:47 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:17:58.238 retry condition not satisfied: response.val == response.max
11:17:58.238 sleeping before retry #11
11:18:03.239 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:18:03.821 response time in milliseconds: 581.98
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:18:03 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:45 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:17:47 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:18:03.822 retry condition not satisfied: response.val == response.max
11:18:03.822 sleeping before retry #12
11:18:08.822 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:18:09.377 response time in milliseconds: 554.08
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:18:09 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:16:58 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:58 UTC 2020)","28.10.2020 11:16:58 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:58 - Preparing 1 Test Task:","28.10.2020 11:16:58 - TestTask 1 (391cc7bb-7e65-4b22-9bd4-a143c780b9ef)","28.10.2020 11:16:58 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:58 - with parameters: ","28.10.2020 11:16:58 - etf.testcases = *","28.10.2020 11:16:58 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:58 - Setting state to CREATED","28.10.2020 11:16:58 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:58 - Starting TestRun.8cad374d-433d-40fa-ae43-d99543aa6b86 at 2020-10-28T11:17:00Z","28.10.2020 11:17:00 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:17:00 - Project Properties: ","28.10.2020 11:17:00 - etf.testcases - * ","28.10.2020 11:17:00 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:17:00 - username - ","28.10.2020 11:17:00 - authUser - ","28.10.2020 11:17:00 - authMethod - basic ","28.10.2020 11:17:00 - TestRunTask initialized","28.10.2020 11:17:07 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:17:11 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:45 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:17:47 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:18:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:18:09.378 retry condition not satisfied: response.val == response.max
11:18:09.378 sleeping before retry #13
11:18:14.379 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:18:16.394 response time in milliseconds: 2015.46
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:18:16 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:18:16.395 retry condition satisfied
11:18:16.395 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:18:16.396 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:18:19.913 response time in milliseconds: 2459.35
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Cache-Control: public, max-age=120
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:18:18 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Last-Modified: Wed, 28 Oct 2020 11:18:13 GMT
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/8cad374d-433d-40fa-ae43-d99543aa6b86.json","testRuns":{"TestRun":{"id":"EID8cad374d-433d-40fa-ae43-d99543aa6b86","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:58.308Z","testTasks":{"TestTask":{"id":"EID391cc7bb-7e65-4b22-9bd4-a143c780b9ef","parent":{"ref":"EID8cad374d-433d-40fa-ae43-d99543aa6b86"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID11a5285f-41a7-4bc2-8e04-2dd2e7a26e9d"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID11a5285f-41a7-4bc2-8e04-2dd2e7a26e9d","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:55.474Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:57.72Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897","testObject":{"ref":"EID11a5285f-41a7-4bc2-8e04-2dd2e7a26e9d"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eece5e1-0175-1000-da13-a0604720f795","testCaseResults":{"TestCaseResult":[{"id":"EID6eece5e1-0175-1000-da7f-ce3b299dbeb3","testStepResults":{"TestStepResult":[{"id":"EID6eece5e2-0175-1000-c509-a661a2ef5966","parent":{"ref":"EID6eece5e1-0175-1000-da7f-ce3b299dbeb3"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:17:00Z","duration":19,"status":"PASSED"},{"id":"EID6eece5f5-0175-1000-7262-aac9972497e0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece7fd-0175-1000-f706-f56021393a71","parent":{"ref":"EID6eece5f5-0175-1000-7262-aac9972497e0"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eece7fd-0175-1000-bbfe-07a795b63597","parent":{"ref":"EID6eece5f5-0175-1000-7262-aac9972497e0"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eece7fd-0175-1000-2678-68bba7122e3d","parent":{"ref":"EID6eece5f5-0175-1000-7262-aac9972497e0"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eece7fd-0175-1000-9bed-36226a7aec15","parent":{"ref":"EID6eece5f5-0175-1000-7262-aac9972497e0"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcd08f87b-064c-42d2-87f9-f734b9b772e7"},{"ref":"EID79a34bb9-54d4-4bdf-9c91-3dce14e14126"},{"ref":"EID866a119e-7a08-4029-af94-a859ece133ab"}]},"parent":{"ref":"EID6eece5e1-0175-1000-da7f-ce3b299dbeb3"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:17:00Z","duration":331,"status":"PASSED"}]},"parent":{"ref":"EID6eece5e1-0175-1000-da13-a0604720f795"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:17:00Z","duration":540,"status":"PASSED"},{"id":"EID6eece7fd-0175-1000-ed0e-f3485ea8b631","testStepResults":{"TestStepResult":{"id":"EID6eece7fd-0175-1000-d95b-7cab38494e43","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece99c-0175-1000-be92-5ef7f92d9936","parent":{"ref":"EID6eece7fd-0175-1000-d95b-7cab38494e43"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eece99c-0175-1000-0971-bfa73e7587f4","parent":{"ref":"EID6eece7fd-0175-1000-d95b-7cab38494e43"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eece99c-0175-1000-20f3-d3d934e6919a","parent":{"ref":"EID6eece7fd-0175-1000-d95b-7cab38494e43"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcf9fbd1e-7e1b-4df4-8616-2d5d6aabf9c1"},{"ref":"EID5caf2af9-8239-4668-9922-8292d970ebbd"},{"ref":"EIDdc3eb5fa-1ba7-4488-abe2-b85b580e08c4"}]},"parent":{"ref":"EID6eece7fd-0175-1000-ed0e-f3485ea8b631"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:17:01Z","duration":324,"status":"PASSED"}},"parent":{"ref":"EID6eece5e1-0175-1000-da13-a0604720f795"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:17:01Z","duration":415,"status":"PASSED"}]},"parent":{"ref":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:17:00Z","duration":955,"status":"PASSED"},{"id":"EID6eece99c-0175-1000-73b5-638716c5986b","testCaseResults":{"TestCaseResult":[{"id":"EID6eece99c-0175-1000-e38d-5a4192237537","testStepResults":{"TestStepResult":[{"id":"EID6eece99c-0175-1000-99aa-bc14df10311f","parent":{"ref":"EID6eece99c-0175-1000-e38d-5a4192237537"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:17:01Z","duration":324,"status":"PASSED"},{"id":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecea36-0175-1000-ae5e-9d1057243cc1","parent":{"ref":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eecea36-0175-1000-d3cb-ea765f2887ca","parent":{"ref":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eecea36-0175-1000-389f-dffad8f3527d","parent":{"ref":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eecea36-0175-1000-1296-87bd793394ea","parent":{"ref":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"},{"id":"EID6eecea36-0175-1000-bdea-f330ffd99980","parent":{"ref":"EID6eece99c-0175-1000-e89a-cc47f39b3bd4"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:17:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdfa67c6e-ecd7-4955-8558-3bafff14e090"},{"ref":"EID2f02c971-95d5-4d35-8994-668d17f3ac7a"},{"ref":"EID98c74e01-72a0-414a-82a5-538dd7b1a20e"}]},"parent":{"ref":"EID6eece99c-0175-1000-e38d-5a4192237537"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:17:01Z","duration":36,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:17:01Z","duration":154,"status":"PASSED"},{"id":"EID6eecea37-0175-1000-e1eb-00a91191b19e","testStepResults":{"TestStepResult":[{"id":"EID6eecea37-0175-1000-6996-c63ce881e0ba","attachments":{"attachment":[{"ref":"EIDb70d1cde-de41-42cb-a0f6-2686fc911ffa"},{"ref":"EIDea78415d-d834-44f7-aa08-8cd3e5c595cd"}]},"parent":{"ref":"EID6eecea37-0175-1000-e1eb-00a91191b19e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:17:01Z","duration":84,"status":"PASSED"},{"id":"EID6eecead3-0175-1000-505c-71d5fa80a64d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecebb6-0175-1000-7cf3-a768458ceee4","parent":{"ref":"EID6eecead3-0175-1000-505c-71d5fa80a64d"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecebb6-0175-1000-96f1-61a0dbe6af04","parent":{"ref":"EID6eecead3-0175-1000-505c-71d5fa80a64d"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecebb6-0175-1000-1701-e692720f4ec4","parent":{"ref":"EID6eecead3-0175-1000-505c-71d5fa80a64d"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecebb6-0175-1000-44e8-d1211c65eb52","parent":{"ref":"EID6eecead3-0175-1000-505c-71d5fa80a64d"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6a9f9437-e6db-44c0-bae9-ec78deb6a95e"},{"ref":"EID6caebae8-4416-40f7-aeff-348f5132d2a1"},{"ref":"EID95c9f4f1-a719-426b-9c91-f61f2f9b4d53"}]},"parent":{"ref":"EID6eecea37-0175-1000-e1eb-00a91191b19e"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:17:01Z","duration":122,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:17:01Z","duration":383,"status":"PASSED"},{"id":"EID6eecebb6-0175-1000-c66f-514512691baf","testStepResults":{"TestStepResult":[{"id":"EID6eecebb6-0175-1000-9f0a-e857c95c6872","attachments":{"attachment":[{"ref":"EID795aa4ee-34ed-482b-97bc-798b34b781ef"},{"ref":"EID90fc0467-ecc8-4c61-b179-83d5ca57c7cc"}]},"parent":{"ref":"EID6eecebb6-0175-1000-c66f-514512691baf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:17:02Z","duration":563,"status":"PASSED"},{"id":"EID6eecee12-0175-1000-ebe7-dc075a2f924f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecefa6-0175-1000-a8db-b1a57cd829af","parent":{"ref":"EID6eecee12-0175-1000-ebe7-dc075a2f924f"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecefa6-0175-1000-56b7-0cef5b1869a6","parent":{"ref":"EID6eecee12-0175-1000-ebe7-dc075a2f924f"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecefa6-0175-1000-b879-987d1f18d304","parent":{"ref":"EID6eecee12-0175-1000-ebe7-dc075a2f924f"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:17:03Z","duration":1,"status":"PASSED"},{"id":"EID6eecefa7-0175-1000-af7c-fb79c1533852","parent":{"ref":"EID6eecee12-0175-1000-ebe7-dc075a2f924f"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecefa7-0175-1000-4c58-9f5a6eaeda02","parent":{"ref":"EID6eecee12-0175-1000-ebe7-dc075a2f924f"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc40611e1-122e-4508-bb15-1780ffbade7f"},{"ref":"EID98f585eb-0c4a-42e4-80bd-d1a82fe8d420"},{"ref":"EID03979b6e-6926-454b-badd-e460c34d6eb3"}]},"parent":{"ref":"EID6eecebb6-0175-1000-c66f-514512691baf"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:17:02Z","duration":276,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:17:02Z","duration":1009,"status":"PASSED"},{"id":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12","testStepResults":{"TestStepResult":[{"id":"EID6eecefa7-0175-1000-67a6-80f200e260f6","attachments":{"attachment":[{"ref":"EIDda9fb6a5-d73a-4b66-8e3e-4363d3a40204"},{"ref":"EID0d634d0b-4d90-40b0-a331-7e9a2232d0e2"}]},"parent":{"ref":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:17:03Z","duration":118,"status":"PASSED"},{"id":"EID6eecf047-0175-1000-b8e9-3a1e9a218988","parent":{"ref":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:17:03Z","duration":7,"status":"PASSED"},{"id":"EID6eecf04f-0175-1000-be33-30abda0a204a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf105-0175-1000-1ce8-08219f7ae240","parent":{"ref":"EID6eecf04f-0175-1000-be33-30abda0a204a"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf105-0175-1000-e67c-6e4f651d022b","parent":{"ref":"EID6eecf04f-0175-1000-be33-30abda0a204a"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf105-0175-1000-9674-63fece42bef1","parent":{"ref":"EID6eecf04f-0175-1000-be33-30abda0a204a"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf105-0175-1000-0732-60fbe94f546c","parent":{"ref":"EID6eecf04f-0175-1000-be33-30abda0a204a"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID453ea488-144a-4e32-80a3-a5653435e1ba"},{"ref":"EID567ed727-ab44-45c3-9784-b752788495b2"},{"ref":"EID968ef8e8-a137-4985-8eaf-eb998706ebcc"}]},"parent":{"ref":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:17:03Z","duration":94,"status":"PASSED"},{"id":"EID6eecf105-0175-1000-88e1-195b5d5cc801","attachments":{"attachment":{"ref":"EIDb380608b-d9fd-4fac-b698-c5f93d7e6c64"}},"parent":{"ref":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:17:03Z","duration":1,"status":"PASSED"},{"id":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf1c7-0175-1000-7092-a273a98c464e","parent":{"ref":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:17:03Z","duration":1,"status":"PASSED"},{"id":"EID6eecf1c8-0175-1000-3774-bb1f68fe1aaf","parent":{"ref":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf1c8-0175-1000-dfad-6cbdedb44e2b","parent":{"ref":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf1c8-0175-1000-900c-1d9ca1e5a51b","parent":{"ref":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf1c8-0175-1000-868b-52ae8fc116a8","parent":{"ref":"EID6eecf113-0175-1000-a076-6d5e3e36b4a9"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID45c41682-fd77-490b-b608-e8da68c56faa"},{"ref":"EID5f46832c-c749-4a83-9916-c6ba8f97167a"},{"ref":"EIDb78f1b99-924f-4d91-98a2-2e932c29da10"}]},"parent":{"ref":"EID6eecefa7-0175-1000-3d92-f99d85bd6a12"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:17:03Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:17:03Z","duration":556,"status":"PASSED"},{"id":"EID6eecf1d3-0175-1000-7b3f-53dc86e00c40","testStepResults":{"TestStepResult":[{"id":"EID6eecf1d3-0175-1000-d82e-5ed76f390116","attachments":{"attachment":[{"ref":"EID58ca5bfb-63fb-4deb-9901-dfae3ccd3902"},{"ref":"EIDa1eb3534-fdce-433e-ae34-df9663a49d89"}]},"parent":{"ref":"EID6eecf1d3-0175-1000-7b3f-53dc86e00c40"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:17:03Z","duration":544,"status":"PASSED"},{"id":"EID6eecf470-0175-1000-fd65-d3bea0d9df4d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf5a8-0175-1000-5fb4-2c31955814c9","parent":{"ref":"EID6eecf470-0175-1000-fd65-d3bea0d9df4d"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf5a8-0175-1000-0bc1-9472eb54efaf","parent":{"ref":"EID6eecf470-0175-1000-fd65-d3bea0d9df4d"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf5a8-0175-1000-d82e-77c17b80f31f","parent":{"ref":"EID6eecf470-0175-1000-fd65-d3bea0d9df4d"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf5a8-0175-1000-7182-8c2b73c48eb4","parent":{"ref":"EID6eecf470-0175-1000-fd65-d3bea0d9df4d"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID840c839b-eb55-4549-a180-4669dc1bb901"},{"ref":"EIDaf6a1970-e8e1-4849-b5f7-74adda5e9930"},{"ref":"EID8111cdf6-db9a-4956-b3ec-8fa221303ff2"}]},"parent":{"ref":"EID6eecf1d3-0175-1000-7b3f-53dc86e00c40"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:17:04Z","duration":216,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:17:03Z","duration":992,"status":"PASSED"},{"id":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1","testStepResults":{"TestStepResult":[{"id":"EID6eecf5b4-0175-1000-9797-d511fdbd8170","attachments":{"attachment":[{"ref":"EIDdefa1412-7def-411e-953c-4f231958c3b7"},{"ref":"EID186f56c0-a5b3-4403-abd7-942801e65b46"}]},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:17:04Z","duration":121,"status":"PASSED"},{"id":"EID6eecf658-0175-1000-dbfb-c9af92a1f928","parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf658-0175-1000-2c39-ad7a9cd6cee4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf6e0-0175-1000-07b6-13c757ac9d63","parent":{"ref":"EID6eecf658-0175-1000-2c39-ad7a9cd6cee4"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf6e0-0175-1000-ae16-c75c8346cc5b","parent":{"ref":"EID6eecf658-0175-1000-2c39-ad7a9cd6cee4"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf6e0-0175-1000-5a7f-9f675e0df716","parent":{"ref":"EID6eecf658-0175-1000-2c39-ad7a9cd6cee4"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"},{"id":"EID6eecf6e0-0175-1000-0ec2-9afe9f1a0c17","parent":{"ref":"EID6eecf658-0175-1000-2c39-ad7a9cd6cee4"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:17:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf5cb8533-b204-4070-a45c-cb11484a27e8"},{"ref":"EID6f937cab-eed2-4874-b227-110eb9b7de41"},{"ref":"EID9dbf1235-5db1-4183-a2f5-b4425d4876e5"}]},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:17:04Z","duration":45,"status":"PASSED"},{"id":"EID6eecf6e0-0175-1000-b1fb-0f02ddd1fec5","attachments":{"attachment":{"ref":"EID9db8be32-e05c-4ff9-9cac-3ac687ad9820"}},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:17:04Z","duration":1,"status":"PASSED"},{"id":"EID6eecf6ee-0175-1000-4fa9-b0eead98122d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf792-0175-1000-1a2d-7ac1b0fc3c52","parent":{"ref":"EID6eecf6ee-0175-1000-4fa9-b0eead98122d"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecf792-0175-1000-b7ac-1737f743f3ad","parent":{"ref":"EID6eecf6ee-0175-1000-4fa9-b0eead98122d"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecf792-0175-1000-55ec-8ade738074c4","parent":{"ref":"EID6eecf6ee-0175-1000-4fa9-b0eead98122d"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0a52738a-1779-49af-95fb-24f2520f3abe"},{"ref":"EID9b45cada-cb64-434d-9f91-e9fc0bbd33d4"},{"ref":"EID0c729bb7-a357-4c6f-8830-98f69fb1ea09"}]},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:17:04Z","duration":107,"status":"PASSED"},{"id":"EID6eecf792-0175-1000-04cd-75d31d254405","attachments":{"attachment":{"ref":"EID0f319149-b271-4f81-b2ae-5fa376e2ecbf"}},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecf7ec-0175-1000-5c63-632de4f1f049","attachments":{"attachment":{"ref":"EIDf87046dd-b080-482f-803b-38a99101e451"}},"parent":{"ref":"EID6eecf5b4-0175-1000-f17a-b7566ffa87c1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:17:04Z","duration":580,"status":"PASSED"},{"id":"EID6eecf7f8-0175-1000-806d-765d13e7f4a6","testStepResults":{"TestStepResult":[{"id":"EID6eecf7f8-0175-1000-4bc2-340054d29c7d","attachments":{"attachment":[{"ref":"EID140a3f4c-373a-4010-8386-4c62af1ba226"},{"ref":"EID70f27343-a031-470f-a8ac-8f815a65193d"}]},"parent":{"ref":"EID6eecf7f8-0175-1000-806d-765d13e7f4a6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:17:05Z","duration":400,"status":"PASSED"},{"id":"EID6eecf9ca-0175-1000-c472-730a51280ae7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecfa5e-0175-1000-1e15-842bb13b8eec","parent":{"ref":"EID6eecf9ca-0175-1000-c472-730a51280ae7"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecfa5e-0175-1000-27fb-a0d92528502a","parent":{"ref":"EID6eecf9ca-0175-1000-c472-730a51280ae7"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecfa5e-0175-1000-977f-8864d32cabd5","parent":{"ref":"EID6eecf9ca-0175-1000-c472-730a51280ae7"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED"},{"id":"EID6eecfa5e-0175-1000-81cf-29097d81603d","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eecf9ca-0175-1000-c472-730a51280ae7"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:17:05Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID4f33a761-bdd1-4771-aedc-3dd136708cd6"},{"ref":"EIDb91da086-981f-48c1-91c8-9ed05702b61f"},{"ref":"EID2828722c-3d8f-44b1-a61f-368acffb058b"}]},"parent":{"ref":"EID6eecf7f8-0175-1000-806d-765d13e7f4a6"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:17:05Z","duration":56,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:17:05Z","duration":614,"status":"PASSED_MANUAL"},{"id":"EID6eecfa5f-0175-1000-6ddf-1bd1e4697531","testStepResults":{"TestStepResult":{"id":"EID6eecfa5f-0175-1000-390b-e5c9be48ba01","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecfbbb-0175-1000-6695-2ddb84a545f3","parent":{"ref":"EID6eecfa5f-0175-1000-390b-e5c9be48ba01"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfbbb-0175-1000-70ed-b637c505b650","parent":{"ref":"EID6eecfa5f-0175-1000-390b-e5c9be48ba01"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfbbb-0175-1000-00d2-b94977217d90","parent":{"ref":"EID6eecfa5f-0175-1000-390b-e5c9be48ba01"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfbbc-0175-1000-a5ee-9d846dc4891c","parent":{"ref":"EID6eecfa5f-0175-1000-390b-e5c9be48ba01"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6578592f-5b1b-4562-b74f-96834dc09810"},{"ref":"EID3425a24f-3af5-48e7-9c08-dc47debc15a2"},{"ref":"EID36da8638-8d6a-4563-92ed-cb6693ce2162"}]},"parent":{"ref":"EID6eecfa5f-0175-1000-6ddf-1bd1e4697531"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:17:05Z","duration":227,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:17:05Z","duration":349,"status":"PASSED"},{"id":"EID6eecfbbc-0175-1000-76e6-9888b3045fc0","testStepResults":{"TestStepResult":{"id":"EID6eecfbbc-0175-1000-f07e-217464f5b0d3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecfe56-0175-1000-40a3-cb5047d7ac86","parent":{"ref":"EID6eecfbbc-0175-1000-f07e-217464f5b0d3"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfe56-0175-1000-a72b-9c0ca2ca780a","parent":{"ref":"EID6eecfbbc-0175-1000-f07e-217464f5b0d3"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfe56-0175-1000-716e-0163810a346e","parent":{"ref":"EID6eecfbbc-0175-1000-f07e-217464f5b0d3"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"},{"id":"EID6eecfe56-0175-1000-8eb7-748d74a56d59","parent":{"ref":"EID6eecfbbc-0175-1000-f07e-217464f5b0d3"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:17:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID24bc8ec4-0adb-4706-aac0-02fca0998f2b"},{"ref":"EIDdbd7f528-b2dd-4155-90b4-7469db0be945"},{"ref":"EIDaecfa59b-fd4c-4afb-8490-9546f6cc2f75"}]},"parent":{"ref":"EID6eecfbbc-0175-1000-76e6-9888b3045fc0"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:17:06Z","duration":475,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:17:06Z","duration":676,"status":"PASSED"},{"id":"EID6eecfe60-0175-1000-0703-7eb76f3fed15","testStepResults":{"TestStepResult":[{"id":"EID6eecfe60-0175-1000-a54a-739e713ff583","attachments":{"attachment":[{"ref":"EID012200c5-f89d-4db3-a69d-6dfc2732ded4"},{"ref":"EID6bd39e77-2a80-4d5d-af40-74775712ab06"},{"ref":"EID0a6aa751-80f0-48f3-89f4-7d850776ec61"},{"ref":"EID12b41b52-5e50-42a7-bb88-ef4ad42bd015"},{"ref":"EIDf57ae985-8a9b-40f6-b6b5-cdcbc4551d86"},{"ref":"EID7ca02dd7-df93-47fe-b458-3cce3b42fddd"},{"ref":"EIDef12b222-e642-4f61-8d6f-d889e1dcb403"},{"ref":"EIDf65fb1c3-0c76-4831-86d7-9a5b5652f5c2"},{"ref":"EID59a0100f-29db-42f3-aa37-7bddc9ffbed4"},{"ref":"EIDde59579e-0242-47ef-852b-d490fa3cc21d"},{"ref":"EID601d65c1-3f22-4434-bdfa-9e6524bd8aed"},{"ref":"EID7129a3ba-c543-4567-8b83-006274b452a7"}]},"parent":{"ref":"EID6eecfe60-0175-1000-0703-7eb76f3fed15"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:17:06Z","duration":547,"status":"PASSED"},{"id":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed029b-0175-1000-ce51-a6c97a945bda","parent":{"ref":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:17:07Z","duration":0,"status":"PASSED"},{"id":"EID6eed029b-0175-1000-1b4a-ece4858add42","parent":{"ref":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:17:07Z","duration":0,"status":"PASSED"},{"id":"EID6eed029b-0175-1000-d970-872807ae04e1","parent":{"ref":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:17:07Z","duration":0,"status":"PASSED"},{"id":"EID6eed029b-0175-1000-9ab5-80a423568578","messages":{"message":{"ref":"TR.incorrectFeedSelfReference","translationArguments":{"argument":[{"token":"actual","$":"http://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"},{"token":"element","$":"/atom:feed/atom:link with @rel='self'"},{"token":"expected","$":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href"}]}}},"parent":{"ref":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:17:07Z","duration":0,"status":"FAILED"},{"id":"EID6eed029b-0175-1000-27e2-575f3e77a732","parent":{"ref":"EID6eed0167-0175-1000-8ff8-acb7a0f049ee"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:17:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDefbaed55-1677-496f-8e27-5379a0f8894b"},{"ref":"EID43cbeb72-00fc-4bb1-879b-ac721fb00fe0"},{"ref":"EIDaf173e47-988a-463f-89d1-20278a323cff"}]},"parent":{"ref":"EID6eecfe60-0175-1000-0703-7eb76f3fed15"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:17:07Z","duration":130,"status":"FAILED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:17:06Z","duration":1094,"status":"FAILED"},{"id":"EID6eed02a6-0175-1000-50cc-9a5360bfaa96","testStepResults":{"TestStepResult":{"id":"EID6eed02a6-0175-1000-5bbe-eccbf4b9aea2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed03f3-0175-1000-678f-eb9cda0e5007","parent":{"ref":"EID6eed02a6-0175-1000-5bbe-eccbf4b9aea2"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed03f3-0175-1000-4326-57fcedf92da2","parent":{"ref":"EID6eed02a6-0175-1000-5bbe-eccbf4b9aea2"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed03f3-0175-1000-d567-450eccc4fe9e","parent":{"ref":"EID6eed02a6-0175-1000-5bbe-eccbf4b9aea2"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed03f3-0175-1000-899a-2061ac0a00e8","parent":{"ref":"EID6eed02a6-0175-1000-5bbe-eccbf4b9aea2"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7036f4a0-fdd2-448b-8b0b-dc9c2d4b1c0a"},{"ref":"EIDfbb91a02-3c67-47e7-b45f-1b34ab3b3681"},{"ref":"EIDe2a96202-a373-494f-8f98-e0b2c439ef3e"}]},"parent":{"ref":"EID6eed02a6-0175-1000-50cc-9a5360bfaa96"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:17:07Z","duration":246,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:17:07Z","duration":333,"status":"PASSED"},{"id":"EID6eed03f3-0175-1000-8a91-1aea0675cada","testStepResults":{"TestStepResult":{"id":"EID6eed03f4-0175-1000-8b02-0742e02d094d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed04cb-0175-1000-d934-033a7deafb6b","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed04cb-0175-1000-0945-85f314bd9ff9","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed04cb-0175-1000-d3c1-81268f5513f5","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed04cb-0175-1000-0e42-7b4601ffa8bc","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed04cb-0175-1000-3969-b18a07084813","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed04cb-0175-1000-337c-bc3f4dd1e6bf","parent":{"ref":"EID6eed03f4-0175-1000-8b02-0742e02d094d"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb8b4fe2b-9245-4776-a710-ae3a5236aa7a"},{"ref":"EID4daef962-bf86-41b5-b8cf-cafda41b4502"},{"ref":"EID5957fd82-0c38-4197-b47a-707150557533"}]},"parent":{"ref":"EID6eed03f3-0175-1000-8a91-1aea0675cada"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:17:08Z","duration":77,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:17:08Z","duration":224,"status":"PASSED"},{"id":"EID6eed04d3-0175-1000-8c44-acc2c66f9a9e","testStepResults":{"TestStepResult":{"id":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed0638-0175-1000-41cf-b1c8ec7c2d2e","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-56f4-bf383f1d9748","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-21a9-6e81da3b83e0","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-fd0e-4e16f11d15fa","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-e959-f95405a7c159","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-1cee-da84ffc11b47","parent":{"ref":"EID6eed04d3-0175-1000-1669-7c0e3c1e775b"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:17:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf3dd11a6-7ae0-4f81-ade9-f643892b9469"},{"ref":"EIDf6f043fe-5eec-4d7c-b36a-f129b735e65a"},{"ref":"EID8a1af29e-e23d-4060-8105-51f9ee734417"}]},"parent":{"ref":"EID6eed04d3-0175-1000-8c44-acc2c66f9a9e"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:17:08Z","duration":152,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:17:08Z","duration":357,"status":"PASSED"},{"id":"EID6eed0638-0175-1000-13a8-4ffb6c711f0b","testStepResults":{"TestStepResult":{"id":"EID6eed0638-0175-1000-8f9d-4cd408d9234c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed07bb-0175-1000-27c8-6f9c3eb025b6","parent":{"ref":"EID6eed0638-0175-1000-8f9d-4cd408d9234c"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:17:09Z","duration":0,"status":"PASSED"},{"id":"EID6eed07bb-0175-1000-5147-6bff952e5491","parent":{"ref":"EID6eed0638-0175-1000-8f9d-4cd408d9234c"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:17:09Z","duration":0,"status":"PASSED"},{"id":"EID6eed07bb-0175-1000-85ca-5a1a6a646a32","parent":{"ref":"EID6eed0638-0175-1000-8f9d-4cd408d9234c"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:17:09Z","duration":0,"status":"PASSED"},{"id":"EID6eed07bb-0175-1000-c080-5526dc5e946b","parent":{"ref":"EID6eed0638-0175-1000-8f9d-4cd408d9234c"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:17:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID06019364-968d-4c67-b22c-b32bd68a5c0a"},{"ref":"EID4ce4a6df-9410-41a4-a8cc-b89f6adcd57e"},{"ref":"EID21072406-b254-45ce-b672-52569fd8daf0"}]},"parent":{"ref":"EID6eed0638-0175-1000-13a8-4ffb6c711f0b"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:17:08Z","duration":214,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:17:08Z","duration":399,"status":"PASSED"},{"id":"EID6eed07c7-0175-1000-2363-9ca8749bd26b","testStepResults":{"TestStepResult":[{"id":"EID6eed07c7-0175-1000-73aa-76391029fda1","attachments":{"attachment":[{"ref":"EID350560ce-3af8-4b4b-96a4-0738288051e1"},{"ref":"EID4fcebc70-fbbf-4cad-b6f5-80b0876e6e62"},{"ref":"EID9aaf8e52-4bd4-4ef2-bdfa-5670c50ecb70"},{"ref":"EIDadf2be2b-b5df-425e-8e21-1fda2394614d"}]},"parent":{"ref":"EID6eed07c7-0175-1000-2363-9ca8749bd26b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:17:09Z","duration":862,"status":"PASSED"},{"id":"EID6eed0b9c-0175-1000-cbb2-2ba0305aa6ab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed0d06-0175-1000-7bf9-ffeabbce9d52","parent":{"ref":"EID6eed0b9c-0175-1000-cbb2-2ba0305aa6ab"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0d06-0175-1000-ff30-a791961cf31e","parent":{"ref":"EID6eed0b9c-0175-1000-cbb2-2ba0305aa6ab"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0d06-0175-1000-c2d8-02ef97689a16","parent":{"ref":"EID6eed0b9c-0175-1000-cbb2-2ba0305aa6ab"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0d06-0175-1000-a401-5f9e354dfd93","parent":{"ref":"EID6eed0b9c-0175-1000-cbb2-2ba0305aa6ab"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7713bfc5-cc70-4478-b9d3-7ce1d5528eab"},{"ref":"EID3f67fe2c-4dd5-493e-9ed2-d633ddfdf35b"},{"ref":"EIDab7209ee-96fc-43d5-81e1-4350b702e71a"}]},"parent":{"ref":"EID6eed07c7-0175-1000-2363-9ca8749bd26b"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:17:10Z","duration":119,"status":"PASSED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:17:09Z","duration":1351,"status":"PASSED"},{"id":"EID6eed0d0f-0175-1000-363d-ac6ab60b2962","testStepResults":{"TestStepResult":{"id":"EID6eed0d0f-0175-1000-0336-a5066b9ad380","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed0e35-0175-1000-e622-559d81a8f730","parent":{"ref":"EID6eed0d0f-0175-1000-0336-a5066b9ad380"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0e35-0175-1000-9b14-43fdf8d13448","parent":{"ref":"EID6eed0d0f-0175-1000-0336-a5066b9ad380"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0e35-0175-1000-2f8e-5ae6c028e3de","parent":{"ref":"EID6eed0d0f-0175-1000-0336-a5066b9ad380"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0e35-0175-1000-b1af-35c6694c5bbf","parent":{"ref":"EID6eed0d0f-0175-1000-0336-a5066b9ad380"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7e425ac7-2967-42fa-94ba-dbb1aeeecf63"},{"ref":"EIDd09f80de-e98f-4707-8acb-f200921fab4d"},{"ref":"EIDad156935-8395-4018-aefc-3ba7a514b486"}]},"parent":{"ref":"EID6eed0d0f-0175-1000-363d-ac6ab60b2962"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:17:10Z","duration":80,"status":"PASSED"}},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:17:10Z","duration":302,"status":"PASSED"},{"id":"EID6eed0e3d-0175-1000-f48f-eded3b6e3c56","testStepResults":{"TestStepResult":[{"id":"EID6eed0e3d-0175-1000-3c0d-dff9b10570ed","parent":{"ref":"EID6eed0e3d-0175-1000-f48f-eded3b6e3c56"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:17:10Z","duration":0,"status":"PASSED"},{"id":"EID6eed0e3d-0175-1000-7a6e-571658e9d06e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed0f05-0175-1000-1d3c-7527b6759d11","parent":{"ref":"EID6eed0e3d-0175-1000-7a6e-571658e9d06e"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0f05-0175-1000-5c4b-5a3c56bb8b92","parent":{"ref":"EID6eed0e3d-0175-1000-7a6e-571658e9d06e"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0f05-0175-1000-4bee-4aa342d40ee9","parent":{"ref":"EID6eed0e3d-0175-1000-7a6e-571658e9d06e"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0f06-0175-1000-8729-b29f4ac273a0","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eed0e3d-0175-1000-7a6e-571658e9d06e"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3d6a7a8d-8e81-4ea6-8483-6faceeb5bd3c"},{"ref":"EIDe979cc1c-e7da-4f86-8f57-1c437b3e5235"},{"ref":"EIDa7e2c2c2-46ea-4b5a-b4ae-932ae84f996b"}]},"parent":{"ref":"EID6eed0e3d-0175-1000-f48f-eded3b6e3c56"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:17:10Z","duration":39,"status":"FAILED"}]},"parent":{"ref":"EID6eece99c-0175-1000-73b5-638716c5986b"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:17:10Z","duration":209,"status":"FAILED"}]},"parent":{"ref":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:17:01Z","duration":9586,"status":"FAILED"},{"id":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30","testCaseResults":{"TestCaseResult":[{"id":"EID6eed0f0f-0175-1000-184a-da1bcd733213","testStepResults":{"TestStepResult":[{"id":"EID6eed0f0f-0175-1000-47ad-515b62de8368","parent":{"ref":"EID6eed0f0f-0175-1000-184a-da1bcd733213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0f0f-0175-1000-5745-8f9f3d2b8b62","parent":{"ref":"EID6eed0f0f-0175-1000-184a-da1bcd733213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":80,"status":"PASSED"},{"id":"EID6eed0f0f-0175-1000-90a0-990d2db817d9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed0fb9-0175-1000-b559-d0d5313b68aa","parent":{"ref":"EID6eed0f0f-0175-1000-90a0-990d2db817d9"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0fb9-0175-1000-c393-6e5b59d651d8","parent":{"ref":"EID6eed0f0f-0175-1000-90a0-990d2db817d9"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0fb9-0175-1000-829e-3b265c42578a","parent":{"ref":"EID6eed0f0f-0175-1000-90a0-990d2db817d9"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3374376c-6a54-457c-ac8c-484460bcf60b"},{"ref":"EID119bb62c-5cf8-40a9-8dca-d960d43883a7"},{"ref":"EID644c3224-4546-48db-9b46-8d65c0224395"}]},"parent":{"ref":"EID6eed0f0f-0175-1000-184a-da1bcd733213"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:17:11Z","duration":41,"status":"PASSED"},{"id":"EID6eed0fc7-0175-1000-d1bd-db9f22d8114c","attachments":{"attachment":{"ref":"EID825e64de-51dd-4d0f-87bb-4f9f1f7af156"}},"parent":{"ref":"EID6eed0f0f-0175-1000-184a-da1bcd733213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed0fd4-0175-1000-e2ee-07e23e0aa44e","parent":{"ref":"EID6eed0f0f-0175-1000-184a-da1bcd733213"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:17:11Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:17:11Z","duration":219,"status":"PASSED"},{"id":"EID6eed0feb-0175-1000-174b-0f2dcb2f106e","testStepResults":{"TestStepResult":[{"id":"EID6eed0feb-0175-1000-e73e-17b97bf9724e","parent":{"ref":"EID6eed0feb-0175-1000-174b-0f2dcb2f106e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":335,"status":"PASSED"},{"id":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1044-0175-1000-af72-c17006bd7698","parent":{"ref":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1044-0175-1000-f764-2b34095c7c9f","parent":{"ref":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1044-0175-1000-3437-57d1c25c38cc","parent":{"ref":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1044-0175-1000-251b-31bcac31942b","parent":{"ref":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1044-0175-1000-1af3-9ae2bd57fe47","parent":{"ref":"EID6eed0ff6-0175-1000-ed2d-95f0b88dcccf"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID29555e22-a1cb-4809-a34e-41ccf56ddf3d"},{"ref":"EID414030f7-5f62-4790-93c5-4aa59c77dc81"},{"ref":"EIDdc35dc17-7c73-49f9-a4ad-f0aa95cbe99b"}]},"parent":{"ref":"EID6eed0feb-0175-1000-174b-0f2dcb2f106e"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:17:11Z","duration":2,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:17:11Z","duration":89,"status":"PASSED"},{"id":"EID6eed1045-0175-1000-3a44-2a1ff70e9fa7","testStepResults":{"TestStepResult":[{"id":"EID6eed1045-0175-1000-7f0a-885b12a6c384","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed108f-0175-1000-89fd-ba50d0ea752d","parent":{"ref":"EID6eed1045-0175-1000-7f0a-885b12a6c384"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed108f-0175-1000-5e51-3f51ead4e7be","parent":{"ref":"EID6eed1045-0175-1000-7f0a-885b12a6c384"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed108f-0175-1000-0bbc-1a7b311e0305","parent":{"ref":"EID6eed1045-0175-1000-7f0a-885b12a6c384"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe35d5e4d-d80f-4a22-a23a-21999e977431"},{"ref":"EID969bc0f2-79cf-4413-b0d3-f753b0dfc9b2"},{"ref":"EIDaeb92673-020d-4fb7-942b-456b2efda68e"}]},"parent":{"ref":"EID6eed1045-0175-1000-3a44-2a1ff70e9fa7"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:17:11Z","duration":1,"status":"PASSED"},{"id":"EID6eed108f-0175-1000-ba63-eb3729346ed8","attachments":{"attachment":{"ref":"EIDc65933bb-2007-40a5-a3d4-7915f046e282"}},"parent":{"ref":"EID6eed1045-0175-1000-3a44-2a1ff70e9fa7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1183-0175-1000-2069-ea05c4a3fd81","parent":{"ref":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1183-0175-1000-3fbf-381e4119f4fd","parent":{"ref":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1183-0175-1000-3439-a1b99686f393","parent":{"ref":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1183-0175-1000-29ff-edeaa2f68a6c","parent":{"ref":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed1183-0175-1000-d5df-b8ff303a48bc","parent":{"ref":"EID6eed10c8-0175-1000-03ca-fb0f05d93e26"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID758d7cea-4ea3-4916-8f9d-d09849977a0e"},{"ref":"EID36d19e02-4518-4307-89c7-8c787a78a1cf"},{"ref":"EID24b91122-86bf-4914-9190-7f3697d3ba9b"}]},"parent":{"ref":"EID6eed1045-0175-1000-3a44-2a1ff70e9fa7"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:17:11Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:17:11Z","duration":328,"status":"PASSED"},{"id":"EID6eed118d-0175-1000-49f3-c2bbe4aadd15","testStepResults":{"TestStepResult":[{"id":"EID6eed118d-0175-1000-3894-a72a8de80f5f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed122d-0175-1000-d1d8-79efb9f5ded7","parent":{"ref":"EID6eed118d-0175-1000-3894-a72a8de80f5f"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed122d-0175-1000-b366-cf6eef55c1bc","parent":{"ref":"EID6eed118d-0175-1000-3894-a72a8de80f5f"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed122d-0175-1000-9d18-24560a3aa098","parent":{"ref":"EID6eed118d-0175-1000-3894-a72a8de80f5f"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed122d-0175-1000-958e-9b48ca67bd4d","parent":{"ref":"EID6eed118d-0175-1000-3894-a72a8de80f5f"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf50e06c0-0e39-4fd7-a94a-2476ab665441"},{"ref":"EID9bce396b-d7a6-45ba-8282-a5260d9c4360"},{"ref":"EID51f94298-ac56-4709-b4d0-ccc662f43539"}]},"parent":{"ref":"EID6eed118d-0175-1000-49f3-c2bbe4aadd15"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:17:11Z","duration":1,"status":"PASSED"},{"id":"EID6eed122d-0175-1000-0b50-81bb20bfd645","attachments":{"attachment":{"ref":"EID2003de40-344d-4211-8a22-429c31706c6e"}},"parent":{"ref":"EID6eed118d-0175-1000-49f3-c2bbe4aadd15"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:17:11Z","duration":1,"status":"PASSED"},{"id":"EID6eed1252-0175-1000-edc5-483c61d69073","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed12b5-0175-1000-da76-67c3ff951716","parent":{"ref":"EID6eed1252-0175-1000-edc5-483c61d69073"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"},{"id":"EID6eed12b5-0175-1000-044e-5cc2a338fe51","parent":{"ref":"EID6eed1252-0175-1000-edc5-483c61d69073"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:17:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8e5af624-994c-4079-aa4d-d1a7f587e6c7"},{"ref":"EID78c81b16-f9c9-4d0b-9550-6cc5c47cd2e3"}]},"parent":{"ref":"EID6eed118d-0175-1000-49f3-c2bbe4aadd15"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:17:11Z","duration":93,"status":"PASSED"},{"id":"EID6eed12b5-0175-1000-fec8-41fd9b555e16","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1319-0175-1000-7dee-f882444fdcf8","parent":{"ref":"EID6eed12b5-0175-1000-fec8-41fd9b555e16"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1319-0175-1000-46df-ff3373728ee2","parent":{"ref":"EID6eed12b5-0175-1000-fec8-41fd9b555e16"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1319-0175-1000-6a0d-73bec6af31c4","parent":{"ref":"EID6eed12b5-0175-1000-fec8-41fd9b555e16"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1319-0175-1000-be65-fffea32e02b0","parent":{"ref":"EID6eed12b5-0175-1000-fec8-41fd9b555e16"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfa5fb96b-1dc9-404e-9203-823b1df1679b"},{"ref":"EID64d0a802-a36e-414a-b548-aacce1d791fa"},{"ref":"EID92b4e76c-d950-4381-acb2-1eec0e658517"}]},"parent":{"ref":"EID6eed118d-0175-1000-49f3-c2bbe4aadd15"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:17:11Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:17:11Z","duration":396,"status":"PASSED"},{"id":"EID6eed131a-0175-1000-42e7-020ed4b23005","testStepResults":{"TestStepResult":{"id":"EID6eed131a-0175-1000-6feb-daa2571e6192","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1353-0175-1000-7b70-4c53f95dfde0","parent":{"ref":"EID6eed131a-0175-1000-6feb-daa2571e6192"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1353-0175-1000-a78f-08163a634bfc","parent":{"ref":"EID6eed131a-0175-1000-6feb-daa2571e6192"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1353-0175-1000-2651-35e5d0b16377","parent":{"ref":"EID6eed131a-0175-1000-6feb-daa2571e6192"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbc922cbb-57b3-487b-b64b-7ada01eec537"},{"ref":"EID4ec7e9a3-bbd1-4e15-ab0c-ac7783ef1b3f"},{"ref":"EID58830630-7e38-47c3-8f3b-cd622daffade"}]},"parent":{"ref":"EID6eed131a-0175-1000-42e7-020ed4b23005"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:17:12Z","duration":57,"status":"PASSED"},{"id":"EID6eed1353-0175-1000-c970-ce6461ab9883","testStepResults":{"TestStepResult":{"id":"EID6eed1353-0175-1000-8bbb-410ea51dc848","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed138f-0175-1000-6211-fc31f13b29e7","parent":{"ref":"EID6eed1353-0175-1000-8bbb-410ea51dc848"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed138f-0175-1000-dbdd-46bcd3c822d2","parent":{"ref":"EID6eed1353-0175-1000-8bbb-410ea51dc848"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed138f-0175-1000-5076-499ff269a153","parent":{"ref":"EID6eed1353-0175-1000-8bbb-410ea51dc848"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9c98e9db-8a56-4ec6-a481-b060724934ed"},{"ref":"EIDa3fc6d43-8a64-46d4-8198-c3cdfc01536b"},{"ref":"EID93c27415-b1f4-454a-af40-5614866aa0b0"}]},"parent":{"ref":"EID6eed1353-0175-1000-c970-ce6461ab9883"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:17:12Z","duration":68,"status":"PASSED"},{"id":"EID6eed1397-0175-1000-38ae-7571f9f6be7d","testStepResults":{"TestStepResult":{"id":"EID6eed1397-0175-1000-e3dc-7254c4e370e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed13f7-0175-1000-eef5-cb7db4fafbbb","parent":{"ref":"EID6eed1397-0175-1000-e3dc-7254c4e370e2"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed13f7-0175-1000-ee15-5cd4548b1265","parent":{"ref":"EID6eed1397-0175-1000-e3dc-7254c4e370e2"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed13f7-0175-1000-3312-806fe1346e69","parent":{"ref":"EID6eed1397-0175-1000-e3dc-7254c4e370e2"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed13f7-0175-1000-2155-e312c6706663","parent":{"ref":"EID6eed1397-0175-1000-e3dc-7254c4e370e2"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed13f7-0175-1000-155d-11c9a6bcfe7b","parent":{"ref":"EID6eed1397-0175-1000-e3dc-7254c4e370e2"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3aadfd54-ba60-4ae1-809b-c4bd2f053eae"},{"ref":"EID360524b9-07cc-4955-8bed-ca49d417193a"},{"ref":"EID4700e693-a95f-4494-892d-f27547158f9f"}]},"parent":{"ref":"EID6eed1397-0175-1000-38ae-7571f9f6be7d"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:17:12Z","duration":96,"status":"PASSED"},{"id":"EID6eed13f8-0175-1000-6a04-104df2307f60","testStepResults":{"TestStepResult":{"id":"EID6eed13f8-0175-1000-9b3f-e6f30923eed8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed143e-0175-1000-3bb9-e81789705d62","parent":{"ref":"EID6eed13f8-0175-1000-9b3f-e6f30923eed8"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed143e-0175-1000-28a1-c0710597ee83","parent":{"ref":"EID6eed13f8-0175-1000-9b3f-e6f30923eed8"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed143e-0175-1000-39c5-0ab1d9495db0","parent":{"ref":"EID6eed13f8-0175-1000-9b3f-e6f30923eed8"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8a8970a8-814c-4b0f-9619-a1927de636aa"},{"ref":"EID56a78e05-1dcc-42cc-a61b-e56cfb7b303a"},{"ref":"EIDf00e2e18-3b15-46f3-9fc6-61d22d3f3b7b"}]},"parent":{"ref":"EID6eed13f8-0175-1000-6a04-104df2307f60"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:17:12Z","duration":70,"status":"PASSED"},{"id":"EID6eed143e-0175-1000-482b-6656de3e97fa","testStepResults":{"TestStepResult":{"id":"EID6eed143e-0175-1000-100b-ca9f31a662dd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1485-0175-1000-bb95-49faf47a02e2","parent":{"ref":"EID6eed143e-0175-1000-100b-ca9f31a662dd"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1485-0175-1000-5eb5-877710fcf904","parent":{"ref":"EID6eed143e-0175-1000-100b-ca9f31a662dd"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1485-0175-1000-d6c1-0eec5cc34be3","parent":{"ref":"EID6eed143e-0175-1000-100b-ca9f31a662dd"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID79e154ea-072d-480b-8199-12b5ac67e533"},{"ref":"EID4004947c-d206-4d2b-a3dc-dcaa38ed8b50"},{"ref":"EID613a77d4-021a-4442-b810-535603e8e382"}]},"parent":{"ref":"EID6eed143e-0175-1000-482b-6656de3e97fa"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:17:12Z","duration":2,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:17:12Z","duration":71,"status":"PASSED"},{"id":"EID6eed1485-0175-1000-027d-61fa97bdfa54","testStepResults":{"TestStepResult":{"id":"EID6eed1485-0175-1000-fc2e-2f221fcb36d1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed14da-0175-1000-d273-9d68a28d77ce","parent":{"ref":"EID6eed1485-0175-1000-fc2e-2f221fcb36d1"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed14da-0175-1000-8e98-2e7744004f0c","parent":{"ref":"EID6eed1485-0175-1000-fc2e-2f221fcb36d1"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed14da-0175-1000-c363-42126509ea4d","parent":{"ref":"EID6eed1485-0175-1000-fc2e-2f221fcb36d1"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed14da-0175-1000-7580-115642ac2a28","parent":{"ref":"EID6eed1485-0175-1000-fc2e-2f221fcb36d1"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc67f805d-6905-46d6-8567-012864e5b5c5"},{"ref":"EIDaab90cee-5e87-4ff1-a789-fb2855aa44d4"},{"ref":"EIDb0336f09-88a7-49c0-b6b6-597099bdf276"}]},"parent":{"ref":"EID6eed1485-0175-1000-027d-61fa97bdfa54"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:17:12Z","duration":85,"status":"PASSED"},{"id":"EID6eed14db-0175-1000-b656-d528e4e6efc6","testStepResults":{"TestStepResult":{"id":"EID6eed14db-0175-1000-004a-0ab15acfb0cf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1567-0175-1000-9410-39dc36a018d1","parent":{"ref":"EID6eed14db-0175-1000-004a-0ab15acfb0cf"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1567-0175-1000-50b3-9538540091e6","parent":{"ref":"EID6eed14db-0175-1000-004a-0ab15acfb0cf"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1567-0175-1000-97f5-0fa78e4c8a68","parent":{"ref":"EID6eed14db-0175-1000-004a-0ab15acfb0cf"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1567-0175-1000-c0f5-6bc7230843ee","parent":{"ref":"EID6eed14db-0175-1000-004a-0ab15acfb0cf"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID958c4c0a-5f9d-4541-b2cb-c5dafb9a4e09"},{"ref":"EID23e8dcda-a8df-43ac-a619-738aebbfe3d4"},{"ref":"EIDb8715d63-cfa4-4b39-8cb2-fc5463fd2b18"}]},"parent":{"ref":"EID6eed14db-0175-1000-b656-d528e4e6efc6"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:17:12Z","duration":192,"status":"PASSED"},{"id":"EID6eed159b-0175-1000-4332-21e8d06477ed","testStepResults":{"TestStepResult":[{"id":"EID6eed159b-0175-1000-e728-151e932738ac","parent":{"ref":"EID6eed159b-0175-1000-4332-21e8d06477ed"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed159b-0175-1000-a1ed-bcb04bd5b971","parent":{"ref":"EID6eed159b-0175-1000-4332-21e8d06477ed"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:17:12Z","duration":359,"status":"PASSED"},{"id":"EID6eed159b-0175-1000-cdb8-f6d78fe5270c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1626-0175-1000-b189-fad828d50232","parent":{"ref":"EID6eed159b-0175-1000-cdb8-f6d78fe5270c"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1626-0175-1000-d329-239606818f42","parent":{"ref":"EID6eed159b-0175-1000-cdb8-f6d78fe5270c"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1626-0175-1000-7d75-615b22ad7b66","parent":{"ref":"EID6eed159b-0175-1000-cdb8-f6d78fe5270c"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1626-0175-1000-f12e-587a11a5dd32","parent":{"ref":"EID6eed159b-0175-1000-cdb8-f6d78fe5270c"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3119c6d4-cfc6-42ac-bd86-f66d4645ef7b"},{"ref":"EID865054f9-411d-4fee-af34-1cca61537a4d"},{"ref":"EIDc394297b-85d8-4a5f-a781-42ae9073a3cd"}]},"parent":{"ref":"EID6eed159b-0175-1000-4332-21e8d06477ed"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:17:12Z","duration":48,"status":"PASSED"},{"id":"EID6eed1627-0175-1000-3119-5be09ea8c736","attachments":{"attachment":{"ref":"EID2f5cd7a4-3ef0-497b-b560-2bba83ad9ea5"}},"parent":{"ref":"EID6eed159b-0175-1000-4332-21e8d06477ed"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"},{"id":"EID6eed1638-0175-1000-2fe1-dddb602ccd12","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1698-0175-1000-fe5b-6e98ab45b00c","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-fc30-3f358ee8f64c","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-7a1f-314bf9940811","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-6478-0e61a78ea0a8","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-7084-67af4af07cf1","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-c275-2606b28347aa","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-427d-caf7efc363e1","parent":{"ref":"EID6eed1638-0175-1000-2fe1-dddb602ccd12"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:17:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67db3b08-ed10-45af-aaa4-c70488ef0eac"},{"ref":"EID2ccd4907-389e-45af-a794-be207ee591fa"},{"ref":"EID9fa66b72-9fb9-45b0-9c50-f17d3d3f994f"}]},"parent":{"ref":"EID6eed159b-0175-1000-4332-21e8d06477ed"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:17:12Z","duration":2,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:17:12Z","duration":253,"status":"PASSED"},{"id":"EID6eed1698-0175-1000-a979-1f5178977038","testStepResults":{"TestStepResult":[{"id":"EID6eed1698-0175-1000-8312-58b2ec91c1e2","parent":{"ref":"EID6eed1698-0175-1000-a979-1f5178977038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1,"status":"PASSED"},{"id":"EID6eed1699-0175-1000-92c8-eedf4ad5b480","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1809-0175-1000-bd64-3ad4c9e01446","parent":{"ref":"EID6eed1699-0175-1000-92c8-eedf4ad5b480"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1809-0175-1000-7302-dd0123dc2a18","parent":{"ref":"EID6eed1699-0175-1000-92c8-eedf4ad5b480"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1809-0175-1000-5ab5-9d115d5a9d73","parent":{"ref":"EID6eed1699-0175-1000-92c8-eedf4ad5b480"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1809-0175-1000-51ef-4d2355e38666","parent":{"ref":"EID6eed1699-0175-1000-92c8-eedf4ad5b480"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa07619cb-6ace-45fe-aeb3-b9859d396f40"},{"ref":"EID7a270cd7-17c5-48fc-b321-7162a48a82eb"},{"ref":"EIDbd2821ee-871f-4c5b-bb5e-f6540d5ea68d"}]},"parent":{"ref":"EID6eed1698-0175-1000-a979-1f5178977038"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:17:12Z","duration":149,"status":"PASSED"},{"id":"EID6eed1809-0175-1000-6a55-036a67af39e6","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eed182a-0175-1000-6d95-2769a6a6b51d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1935-0175-1000-81d5-d9c501ae2df7","parent":{"ref":"EID6eed182a-0175-1000-6d95-2769a6a6b51d"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1935-0175-1000-1196-8dc68e4a7a62","parent":{"ref":"EID6eed182a-0175-1000-6d95-2769a6a6b51d"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1935-0175-1000-1afa-af49d77a433d","parent":{"ref":"EID6eed182a-0175-1000-6d95-2769a6a6b51d"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf45e0e80-6b0b-47c2-98cb-ffdcbcb190b2"},{"ref":"EID7e90d2f5-e498-42af-a5fe-840a27539f4f"},{"ref":"EIDd6a00ad7-b11c-4926-b0d8-f49c979cb09b"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:17:13Z","duration":151,"status":"PASSED"},{"id":"EID6eed1936-0175-1000-bbff-becdc7e6d147","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1a24-0175-1000-585e-4872364ab6db","parent":{"ref":"EID6eed1936-0175-1000-bbff-becdc7e6d147"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1a24-0175-1000-1cdf-47ac7821ab96","parent":{"ref":"EID6eed1936-0175-1000-bbff-becdc7e6d147"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1a24-0175-1000-c1f4-bb15cc62cc86","parent":{"ref":"EID6eed1936-0175-1000-bbff-becdc7e6d147"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDedf74373-50bc-4ce3-8e60-8f10530d4ab6"},{"ref":"EID383ace1b-a19a-4fd3-bd22-bf87f8cd3e6d"},{"ref":"EIDab677507-f958-41f5-b781-b9cade6a4bae"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:17:13Z","duration":178,"status":"PASSED"},{"id":"EID6eed1a25-0175-1000-e6bd-9405ac3fcb70","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1a7c-0175-1000-2800-1f038766b614","parent":{"ref":"EID6eed1a25-0175-1000-e6bd-9405ac3fcb70"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1a7c-0175-1000-cfd2-07a610bf99d6","parent":{"ref":"EID6eed1a25-0175-1000-e6bd-9405ac3fcb70"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"},{"id":"EID6eed1a7c-0175-1000-de54-025d399fcb6e","parent":{"ref":"EID6eed1a25-0175-1000-e6bd-9405ac3fcb70"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:17:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfebcb325-0ade-4251-b01d-bb1a5200381e"},{"ref":"EID44b8ebb3-0852-4b99-bbeb-f2e396901d91"},{"ref":"EID8055d2a6-9297-48f5-a51d-8168541da60d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:17:13Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6eed1698-0175-1000-a979-1f5178977038"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:17:13Z","duration":627,"status":"PASSED"},{"id":"EID6eed1a7d-0175-1000-0d52-08837ce9a541","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1ab8-0175-1000-49df-f6095ec1017b","parent":{"ref":"EID6eed1a7d-0175-1000-0d52-08837ce9a541"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1ab8-0175-1000-7679-0029bbab55d8","parent":{"ref":"EID6eed1a7d-0175-1000-0d52-08837ce9a541"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1ab8-0175-1000-a3e4-1650579e38ea","parent":{"ref":"EID6eed1a7d-0175-1000-0d52-08837ce9a541"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1ab8-0175-1000-04a0-ba18ae7391d2","parent":{"ref":"EID6eed1a7d-0175-1000-0d52-08837ce9a541"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID60c6a444-513d-40c4-af53-83b504f8233f"},{"ref":"EID7319d248-4677-4de3-994d-0e7aa5f32eca"},{"ref":"EID2a41aff8-d923-4cca-8b99-964d1581f772"}]},"parent":{"ref":"EID6eed1698-0175-1000-a979-1f5178977038"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:17:13Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:17:12Z","duration":1056,"status":"PASSED"},{"id":"EID6eed1ab8-0175-1000-0ad3-f12db3255794","testStepResults":{"TestStepResult":{"id":"EID6eed1ab8-0175-1000-e315-ddc0a68482b6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1aff-0175-1000-4fc6-22b3ebce2580","parent":{"ref":"EID6eed1ab8-0175-1000-e315-ddc0a68482b6"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1aff-0175-1000-647e-93b7fe40f98d","parent":{"ref":"EID6eed1ab8-0175-1000-e315-ddc0a68482b6"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1aff-0175-1000-1cca-9ee7e6d8359f","parent":{"ref":"EID6eed1ab8-0175-1000-e315-ddc0a68482b6"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1aff-0175-1000-042d-aca9df833cc6","parent":{"ref":"EID6eed1ab8-0175-1000-e315-ddc0a68482b6"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1c61d85d-69e3-47fa-9ec1-7115f46dfb9b"},{"ref":"EID28e35f45-f3b5-4f91-bb32-a2f078c76844"},{"ref":"EID941e1d00-00f2-46b8-b396-abbee8f2a7e2"}]},"parent":{"ref":"EID6eed1ab8-0175-1000-0ad3-f12db3255794"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:17:14Z","duration":1,"status":"PASSED"}},"parent":{"ref":"EID6eed0f0e-0175-1000-7d7e-3796251a6e30"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:17:14Z","duration":71,"status":"PASSED"}]},"parent":{"ref":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:17:11Z","duration":3057,"status":"PASSED"},{"id":"EID6eed1b00-0175-1000-eb0b-33d937704057","testCaseResults":{"TestCaseResult":[{"id":"EID6eed1b00-0175-1000-760c-c38d04f85058","testStepResults":{"TestStepResult":[{"id":"EID6eed1b00-0175-1000-12a9-98f35b72223e","parent":{"ref":"EID6eed1b00-0175-1000-760c-c38d04f85058"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:17:14Z","duration":265,"status":"PASSED"},{"id":"EID6eed1b00-0175-1000-a4c9-cf1793251c2d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1b77-0175-1000-ee9e-9f93a7858326","parent":{"ref":"EID6eed1b00-0175-1000-a4c9-cf1793251c2d"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1b77-0175-1000-67c7-d674802d14be","parent":{"ref":"EID6eed1b00-0175-1000-a4c9-cf1793251c2d"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1b77-0175-1000-3703-58de27af6959","parent":{"ref":"EID6eed1b00-0175-1000-a4c9-cf1793251c2d"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4b54361-b973-4ac4-8de7-413ee12c2a1b"},{"ref":"EID62143091-6a7c-4090-bebf-a3a4f0feb801"},{"ref":"EID500c3cc9-54fa-4da2-b5c2-3ebc6bcf8088"}]},"parent":{"ref":"EID6eed1b00-0175-1000-760c-c38d04f85058"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:17:14Z","duration":39,"status":"PASSED"},{"id":"EID6eed1b80-0175-1000-a619-bd3468c849fa","attachments":{"attachment":{"ref":"EIDb7290e9b-ff51-41be-87f3-32eda5e99fec"}},"parent":{"ref":"EID6eed1b00-0175-1000-760c-c38d04f85058"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:17:14Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:17:14Z","duration":140,"status":"PASSED"},{"id":"EID6eed1b8c-0175-1000-3166-44ce7a533d25","testStepResults":{"TestStepResult":[{"id":"EID6eed1b8c-0175-1000-34c9-5a828f51006c","parent":{"ref":"EID6eed1b8c-0175-1000-3166-44ce7a533d25"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:17:14Z","duration":265,"status":"PASSED"},{"id":"EID6eed1b8c-0175-1000-e65b-de8cb242009a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1c76-0175-1000-241c-4f9be5af389b","parent":{"ref":"EID6eed1b8c-0175-1000-e65b-de8cb242009a"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-7e9b-1a05b11ebf91","parent":{"ref":"EID6eed1b8c-0175-1000-e65b-de8cb242009a"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-34ab-517dde6ac8b4","parent":{"ref":"EID6eed1b8c-0175-1000-e65b-de8cb242009a"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-65eb-a6b78a4b7bf0","parent":{"ref":"EID6eed1b8c-0175-1000-e65b-de8cb242009a"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID992f8e5a-87f4-4473-a328-4c504a35df98"},{"ref":"EID6066b446-404e-4cba-af43-b1d94fcdd1d1"},{"ref":"EID8dc4b373-8919-4305-9c00-4595f1c57d26"}]},"parent":{"ref":"EID6eed1b8c-0175-1000-3166-44ce7a533d25"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:17:14Z","duration":135,"status":"PASSED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:17:14Z","duration":234,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-9937-d9deaa92ec66","testStepResults":{"TestStepResult":[{"id":"EID6eed1c76-0175-1000-1035-0bcc38021a2d","parent":{"ref":"EID6eed1c76-0175-1000-9937-d9deaa92ec66"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:17:14Z","duration":265,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-f877-735ffbb46f0d","parent":{"ref":"EID6eed1c76-0175-1000-9937-d9deaa92ec66"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1c76-0175-1000-ca5a-f169e4711210","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed1d36-0175-1000-41cb-15023905d412","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-fe84-2b46e7ebe7bc","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-7c4c-40d7d7832190","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-b72f-58824fbbb0ef","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-5800-d9fd9429313b","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-ff51-2cafb71c2a88","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"},{"id":"EID6eed1d37-0175-1000-40a1-e5c9381aab7d","parent":{"ref":"EID6eed1c76-0175-1000-ca5a-f169e4711210"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:17:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID70fa5ec0-d531-4f1e-b436-4299daba59c9"},{"ref":"EID0ab5d121-009a-488e-802e-84e3906e8cc1"},{"ref":"EID3698e39c-771f-4a52-b419-46625decb7bc"}]},"parent":{"ref":"EID6eed1c76-0175-1000-9937-d9deaa92ec66"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:17:14Z","duration":89,"status":"PASSED"},{"id":"EID6eed1d3f-0175-1000-5ce5-b634a9b62249","invokedTests":{"":null,"TestStepResult":{"id":"EID6eed1d61-0175-1000-823f-5ce8a5a37919","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed9423-0175-1000-f08e-ef00f76dafc7","parent":{"ref":"EID6eed1d61-0175-1000-823f-5ce8a5a37919"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:17:45Z","duration":0,"status":"PASSED"},{"id":"EID6eed9423-0175-1000-007f-1d4071ce3a23","parent":{"ref":"EID6eed1d61-0175-1000-823f-5ce8a5a37919"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:17:45Z","duration":0,"status":"PASSED"},{"id":"EID6eed9423-0175-1000-027b-994b5d97573c","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"parent":{"ref":"EID6eed1d61-0175-1000-823f-5ce8a5a37919"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:17:45Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9637b9cf-dc4f-4a6a-96d9-4276b668163d"},{"ref":"EID62b73d4c-219b-4793-be83-8370a5c69b2f"},{"ref":"EID1794fe0a-663a-4f06-b6c0-a89484db222b"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:17:14Z","duration":22542,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EIDff764767-ffc5-4dd9-b05a-857d5dec74ae"},{"ref":"EID16973d9c-f303-409e-8e08-e1ee8f7240a6"}]},"parent":{"ref":"EID6eed1c76-0175-1000-9937-d9deaa92ec66"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:17:14Z","duration":32524,"status":"FAILED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:17:14Z","duration":32752,"status":"FAILED"},{"id":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1","testStepResults":{"TestStepResult":[{"id":"EID6eed9c67-0175-1000-001f-35d4e4b038de","parent":{"ref":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:17:47Z","duration":265,"status":"PASSED"},{"id":"EID6eed9c67-0175-1000-9158-ebc8bd4e75b4","parent":{"ref":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9c67-0175-1000-20f2-5b8a157b401e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eed9d4b-0175-1000-5f56-1425cca2d3e9","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9d4b-0175-1000-4068-fc972c0fb990","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9d4b-0175-1000-1bfc-bca2ea12173d","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9d4b-0175-1000-c821-96dbbda6392f","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9d4b-0175-1000-b968-c98783d2479b","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"},{"id":"EID6eed9d4b-0175-1000-91f3-356c154cb071","parent":{"ref":"EID6eed9c67-0175-1000-20f2-5b8a157b401e"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:17:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb373085b-17c8-46a1-ae1e-f9843f5fd462"},{"ref":"EID4a5875ec-8e22-4b1e-8e45-c53457e489f6"},{"ref":"EID4b1540d4-16f8-4e9e-b6fe-4cf8c7d13832"}]},"parent":{"ref":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:17:47Z","duration":126,"status":"PASSED"},{"id":"EID6eed9d55-0175-1000-f9e3-f4d48c5b75c0","parent":{"ref":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:17:47Z","duration":34,"status":"PASSED"},{"id":"EID6eed9d77-0175-1000-d112-8a5c7556e585","parent":{"ref":"EID6eed9c67-0175-1000-bf70-ac3f3e7710e1"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:17:47Z","duration":1,"status":"UNDEFINED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:17:47Z","duration":273,"status":"UNDEFINED"},{"id":"EID6eed9d78-0175-1000-429f-ae2e3fb14e22","testStepResults":{"TestStepResult":[{"id":"EID6eed9d78-0175-1000-4e8e-51dd47c89adc","parent":{"ref":"EID6eed9d78-0175-1000-429f-ae2e3fb14e22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:17:47Z","duration":265,"status":"PASSED"},{"id":"EID6eed9d78-0175-1000-7e18-8611c5f8760e","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"attachments":{"attachment":[{"ref":"EIDd4a76ac1-1900-4095-b4d7-12189ffd5929"},{"ref":"EID76b1566c-53c2-49d1-bda8-c64ce868e54f"},{"ref":"EID416f09bf-049e-45b3-bd85-7d8aebad55e2"},{"ref":"EID3d1e8c39-3460-48b2-a060-b55b5f78a784"},{"ref":"EID308b7433-67f2-45de-b66b-3cf802491fa1"},{"ref":"EID739013f5-36b6-4f75-b5ef-c48beb375a97"},{"ref":"EIDa0648bec-3ea7-4eec-93bf-bc28357fb2ce"},{"ref":"EIDbf580d50-063e-4a97-bfb3-b4368024e397"},{"ref":"EID76356c6c-d611-4b2b-bbe5-7fd304c862c1"},{"ref":"EID488e7fd4-99a3-47d2-9e3f-3db9bb224824"},{"ref":"EIDc0bb313b-150a-4150-a99c-2265b14a13f8"},{"ref":"EID513a1626-bfa6-4ad5-8bbc-3eef05aff352"},{"ref":"EID0df52c6a-441a-4212-880c-c29446583595"},{"ref":"EIDb0cf8ae3-e87f-49be-b4bd-7f0248f05306"},{"ref":"EID6425eb2c-e075-4d3e-ba88-fb38fbc0a80c"},{"ref":"EIDca59f1db-0091-450b-9cfd-d8a8579b078d"},{"ref":"EIDdd8c0953-594f-4249-aeb8-5c8d1cee34ff"},{"ref":"EIDedeb70c4-e998-45e0-a117-dface4bf9811"},{"ref":"EIDdc399bbf-0515-4c4b-ae76-e2164f9f5ba0"}]},"parent":{"ref":"EID6eed9d78-0175-1000-429f-ae2e3fb14e22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:17:47Z","duration":21396,"status":"SKIPPED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:17:47Z","duration":21813,"status":"SKIPPED"},{"id":"EID6eedf2af-0175-1000-e9c6-528ce0bc2aeb","testStepResults":{"TestStepResult":[{"id":"EID6eedf2be-0175-1000-a268-98532b22170f","parent":{"ref":"EID6eedf2af-0175-1000-e9c6-528ce0bc2aeb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:18:09Z","duration":265,"status":"PASSED"},{"id":"EID6eedf2be-0175-1000-63e1-8f095cb09c2e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eedf3bb-0175-1000-6a31-a9c1eb3a3c96","parent":{"ref":"EID6eedf2be-0175-1000-63e1-8f095cb09c2e"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf3bb-0175-1000-107d-7cc5a9d6716f","parent":{"ref":"EID6eedf2be-0175-1000-63e1-8f095cb09c2e"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf3bb-0175-1000-441e-ed28ac8be7d7","parent":{"ref":"EID6eedf2be-0175-1000-63e1-8f095cb09c2e"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf3bb-0175-1000-8f19-54210f22ba47","parent":{"ref":"EID6eedf2be-0175-1000-63e1-8f095cb09c2e"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID92b5926f-cc17-4337-ba4f-81c2c0f55b58"},{"ref":"EID0bdfe68f-39fb-4729-beb4-b6a768160581"},{"ref":"EIDeb9e2ee7-68bc-459d-9f9b-6ed8ba8971a0"}]},"parent":{"ref":"EID6eedf2af-0175-1000-e9c6-528ce0bc2aeb"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:18:09Z","duration":175,"status":"PASSED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:18:09Z","duration":268,"status":"PASSED"},{"id":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0","testStepResults":{"TestStepResult":[{"id":"EID6eedf3bb-0175-1000-fd5d-cdb46a6427e5","parent":{"ref":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:18:09Z","duration":266,"status":"PASSED"},{"id":"EID6eedf3bc-0175-1000-95cb-0b54450a7450","parent":{"ref":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf3bc-0175-1000-8392-e0e9d00e2a0e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eedf467-0175-1000-4d79-5393d2ab5f56","parent":{"ref":"EID6eedf3bc-0175-1000-8392-e0e9d00e2a0e"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf467-0175-1000-e79a-57d5602a5864","parent":{"ref":"EID6eedf3bc-0175-1000-8392-e0e9d00e2a0e"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf467-0175-1000-e674-856d07ffc738","parent":{"ref":"EID6eedf3bc-0175-1000-8392-e0e9d00e2a0e"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf467-0175-1000-40df-4c3db420abea","parent":{"ref":"EID6eedf3bc-0175-1000-8392-e0e9d00e2a0e"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID405b684d-d0dc-4c76-98d2-66b1bbe42feb"},{"ref":"EIDae060a5e-5126-446f-acd6-39d92e9a8cc2"},{"ref":"EID2728032c-0b69-4687-8715-ada7c109112e"}]},"parent":{"ref":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:18:09Z","duration":99,"status":"PASSED"},{"id":"EID6eedf467-0175-1000-6c83-998786286726","attachments":{"attachment":{"ref":"EIDc1620120-e6b1-409e-a28b-7d9ce13ca5e7"}},"parent":{"ref":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:18:09Z","duration":12,"status":"PASSED"},{"id":"EID6eedf480-0175-1000-9617-e1fcb50b4cc7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eedf485-0175-1000-1591-2c7fbecabaae","parent":{"ref":"EID6eedf480-0175-1000-9617-e1fcb50b4cc7"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf485-0175-1000-4db7-d28b6a52f849","parent":{"ref":"EID6eedf480-0175-1000-9617-e1fcb50b4cc7"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"},{"id":"EID6eedf485-0175-1000-419a-8690dfb2fd62","parent":{"ref":"EID6eedf480-0175-1000-9617-e1fcb50b4cc7"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID53d5b6b1-d21e-4a9b-9556-ef60ca16fae6"},{"ref":"EID9ad0814b-12b7-4143-8b77-d92157b90863"}]},"parent":{"ref":"EID6eedf3bb-0175-1000-a889-a37d6697fdf0"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:18:09Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eed1b00-0175-1000-eb0b-33d937704057"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:18:09Z","duration":202,"status":"PASSED"}]},"parent":{"ref":"EID98b9bc2e-08a7-49fb-9e46-21b3e464d897"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:17:14Z","duration":55685,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EID62b73d4c-219b-4793-be83-8370a5c69b2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID62b73d4c-219b-4793-be83-8370a5c69b2f"}},{"type":"ServiceResponse","id":"EID9bce396b-d7a6-45ba-8282-a5260d9c4360","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID9bce396b-d7a6-45ba-8282-a5260d9c4360"}},{"type":"ServiceEndpoint","id":"EID7036f4a0-fdd2-448b-8b0b-dc9c2d4b1c0a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDbd2821ee-871f-4c5b-bb5e-f6540d5ea68d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EIDd6a00ad7-b11c-4926-b0d8-f49c979cb09b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID4f33a761-bdd1-4771-aedc-3dd136708cd6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID865054f9-411d-4fee-af34-1cca61537a4d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID865054f9-411d-4fee-af34-1cca61537a4d"}},{"type":"ServiceResponse","id":"EID6f937cab-eed2-4874-b227-110eb9b7de41","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID6f937cab-eed2-4874-b227-110eb9b7de41"}},{"type":"Message","id":"EIDb7290e9b-ff51-41be-87f3-32eda5e99fec","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDb7290e9b-ff51-41be-87f3-32eda5e99fec"}},{"type":"ServiceEndpoint","id":"EIDefbaed55-1677-496f-8e27-5379a0f8894b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDb8b4fe2b-9245-4776-a710-ae3a5236aa7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID8a1af29e-e23d-4060-8105-51f9ee734417","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDf50e06c0-0e39-4fd7-a94a-2476ab665441","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID758d7cea-4ea3-4916-8f9d-d09849977a0e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EID12b41b52-5e50-42a7-bb88-ef4ad42bd015","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID12b41b52-5e50-42a7-bb88-ef4ad42bd015"}},{"type":"ServiceEndpoint","id":"EIDfebcb325-0ade-4251-b01d-bb1a5200381e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID825e64de-51dd-4d0f-87bb-4f9f1f7af156","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID825e64de-51dd-4d0f-87bb-4f9f1f7af156"}},{"type":"Message","id":"EID739013f5-36b6-4f75-b5ef-c48beb375a97","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID739013f5-36b6-4f75-b5ef-c48beb375a97"}},{"type":"GetParameter","id":"EID2728032c-0b69-4687-8715-ada7c109112e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID53d5b6b1-d21e-4a9b-9556-ef60ca16fae6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EIDb0336f09-88a7-49c0-b6b6-597099bdf276","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID4daef962-bf86-41b5-b8cf-cafda41b4502","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4daef962-bf86-41b5-b8cf-cafda41b4502"}},{"type":"ServiceResponse","id":"EID4ce4a6df-9410-41a4-a8cc-b89f6adcd57e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4ce4a6df-9410-41a4-a8cc-b89f6adcd57e"}},{"type":"Message","id":"EID2f5cd7a4-3ef0-497b-b560-2bba83ad9ea5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID2f5cd7a4-3ef0-497b-b560-2bba83ad9ea5"}},{"type":"Message","id":"EIDa1eb3534-fdce-433e-ae34-df9663a49d89","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDa1eb3534-fdce-433e-ae34-df9663a49d89"}},{"type":"GetParameter","id":"EIDb8715d63-cfa4-4b39-8cb2-fc5463fd2b18","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID5caf2af9-8239-4668-9922-8292d970ebbd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID5caf2af9-8239-4668-9922-8292d970ebbd"}},{"type":"Message","id":"EID0f319149-b271-4f81-b2ae-5fa376e2ecbf","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0f319149-b271-4f81-b2ae-5fa376e2ecbf"}},{"type":"ServiceResponse","id":"EID969bc0f2-79cf-4413-b0d3-f753b0dfc9b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID969bc0f2-79cf-4413-b0d3-f753b0dfc9b2"}},{"type":"GetParameter","id":"EID968ef8e8-a137-4985-8eaf-eb998706ebcc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID8e5af624-994c-4079-aa4d-d1a7f587e6c7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL2Rvd25sb2Fkcy9pbnNwaXJlLXB2LXBzLm5scHMtd2F2LnppcA=="},{"type":"ServiceEndpoint","id":"EID992f8e5a-87f4-4473-a328-4c504a35df98","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID9ad0814b-12b7-4143-8b77-d92157b90863","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID36d19e02-4518-4307-89c7-8c787a78a1cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID36d19e02-4518-4307-89c7-8c787a78a1cf"}},{"type":"GetParameter","id":"EID4700e693-a95f-4494-892d-f27547158f9f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EID0df52c6a-441a-4212-880c-c29446583595","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0df52c6a-441a-4212-880c-c29446583595"}},{"type":"GetParameter","id":"EID51f94298-ac56-4709-b4d0-ccc662f43539","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID45c41682-fd77-490b-b608-e8da68c56faa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID958c4c0a-5f9d-4541-b2cb-c5dafb9a4e09","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDcd08f87b-064c-42d2-87f9-f734b9b772e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID3119c6d4-cfc6-42ac-bd86-f66d4645ef7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID488e7fd4-99a3-47d2-9e3f-3db9bb224824","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID488e7fd4-99a3-47d2-9e3f-3db9bb224824"}},{"type":"GetParameter","id":"EIDab677507-f958-41f5-b781-b9cade6a4bae","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDb70d1cde-de41-42cb-a0f6-2686fc911ffa","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDb70d1cde-de41-42cb-a0f6-2686fc911ffa"}},{"type":"ServiceEndpoint","id":"EIDe35d5e4d-d80f-4a22-a23a-21999e977431","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID56a78e05-1dcc-42cc-a61b-e56cfb7b303a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID56a78e05-1dcc-42cc-a61b-e56cfb7b303a"}},{"type":"ServiceEndpoint","id":"EID9c98e9db-8a56-4ec6-a481-b060724934ed","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID3aadfd54-ba60-4ae1-809b-c4bd2f053eae","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID98f585eb-0c4a-42e4-80bd-d1a82fe8d420","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID98f585eb-0c4a-42e4-80bd-d1a82fe8d420"}},{"type":"ServiceEndpoint","id":"EIDf3dd11a6-7ae0-4f81-ade9-f643892b9469","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID3698e39c-771f-4a52-b419-46625decb7bc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDadf2be2b-b5df-425e-8e21-1fda2394614d","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDadf2be2b-b5df-425e-8e21-1fda2394614d"}},{"type":"Message","id":"EID012200c5-f89d-4db3-a69d-6dfc2732ded4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID012200c5-f89d-4db3-a69d-6dfc2732ded4"}},{"type":"ServiceEndpoint","id":"EID840c839b-eb55-4549-a180-4669dc1bb901","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDfbb91a02-3c67-47e7-b45f-1b34ab3b3681","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDfbb91a02-3c67-47e7-b45f-1b34ab3b3681"}},{"type":"Message","id":"EIDf65fb1c3-0c76-4831-86d7-9a5b5652f5c2","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDf65fb1c3-0c76-4831-86d7-9a5b5652f5c2"}},{"type":"GetParameter","id":"EIDb78f1b99-924f-4d91-98a2-2e932c29da10","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDef12b222-e642-4f61-8d6f-d889e1dcb403","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDef12b222-e642-4f61-8d6f-d889e1dcb403"}},{"type":"ServiceEndpoint","id":"EIDf45e0e80-6b0b-47c2-98cb-ffdcbcb190b2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID4a5875ec-8e22-4b1e-8e45-c53457e489f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4a5875ec-8e22-4b1e-8e45-c53457e489f6"}},{"type":"GetParameter","id":"EIDaecfa59b-fd4c-4afb-8490-9546f6cc2f75","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID64d0a802-a36e-414a-b548-aacce1d791fa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID64d0a802-a36e-414a-b548-aacce1d791fa"}},{"type":"Message","id":"EIDb380608b-d9fd-4fac-b698-c5f93d7e6c64","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDb380608b-d9fd-4fac-b698-c5f93d7e6c64"}},{"type":"ServiceResponse","id":"EID2f02c971-95d5-4d35-8994-668d17f3ac7a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID2f02c971-95d5-4d35-8994-668d17f3ac7a"}},{"type":"ServiceResponse","id":"EID119bb62c-5cf8-40a9-8dca-d960d43883a7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID119bb62c-5cf8-40a9-8dca-d960d43883a7"}},{"type":"ServiceResponse","id":"EID414030f7-5f62-4790-93c5-4aa59c77dc81","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID414030f7-5f62-4790-93c5-4aa59c77dc81"}},{"type":"ServiceEndpoint","id":"EID06019364-968d-4c67-b22c-b32bd68a5c0a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID3374376c-6a54-457c-ac8c-484460bcf60b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDca59f1db-0091-450b-9cfd-d8a8579b078d","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDca59f1db-0091-450b-9cfd-d8a8579b078d"}},{"type":"ServiceEndpoint","id":"EID92b5926f-cc17-4337-ba4f-81c2c0f55b58","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID29555e22-a1cb-4809-a34e-41ccf56ddf3d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID2ccd4907-389e-45af-a794-be207ee591fa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID2ccd4907-389e-45af-a794-be207ee591fa"}},{"type":"GetParameter","id":"EID866a119e-7a08-4029-af94-a859ece133ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDe979cc1c-e7da-4f86-8f57-1c437b3e5235","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDe979cc1c-e7da-4f86-8f57-1c437b3e5235"}},{"type":"Message","id":"EIDdc399bbf-0515-4c4b-ae76-e2164f9f5ba0","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDdc399bbf-0515-4c4b-ae76-e2164f9f5ba0"}},{"type":"Message","id":"EID186f56c0-a5b3-4403-abd7-942801e65b46","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID186f56c0-a5b3-4403-abd7-942801e65b46"}},{"type":"Message","id":"EIDf57ae985-8a9b-40f6-b6b5-cdcbc4551d86","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDf57ae985-8a9b-40f6-b6b5-cdcbc4551d86"}},{"type":"ServiceResponse","id":"EID0ab5d121-009a-488e-802e-84e3906e8cc1","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0ab5d121-009a-488e-802e-84e3906e8cc1"}},{"type":"GetParameter","id":"EIDab7209ee-96fc-43d5-81e1-4350b702e71a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDedeb70c4-e998-45e0-a117-dface4bf9811","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDedeb70c4-e998-45e0-a117-dface4bf9811"}},{"type":"ServiceResponse","id":"EID79a34bb9-54d4-4bdf-9c91-3dce14e14126","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID79a34bb9-54d4-4bdf-9c91-3dce14e14126"}},{"type":"Message","id":"EID795aa4ee-34ed-482b-97bc-798b34b781ef","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID795aa4ee-34ed-482b-97bc-798b34b781ef"}},{"type":"ServiceResponse","id":"EID0bdfe68f-39fb-4729-beb4-b6a768160581","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0bdfe68f-39fb-4729-beb4-b6a768160581"}},{"type":"ServiceEndpoint","id":"EIDc67f805d-6905-46d6-8567-012864e5b5c5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"GetParameter","id":"EIDaf173e47-988a-463f-89d1-20278a323cff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDeb9e2ee7-68bc-459d-9f9b-6ed8ba8971a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID9dbf1235-5db1-4183-a2f5-b4425d4876e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDf87046dd-b080-482f-803b-38a99101e451","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDf87046dd-b080-482f-803b-38a99101e451"}},{"type":"GetParameter","id":"EID1794fe0a-663a-4f06-b6c0-a89484db222b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL2Rvd25sb2Fkcy9pbnNwaXJlLXB2LXBzLnppcA=="},{"type":"ServiceResponse","id":"EID383ace1b-a19a-4fd3-bd22-bf87f8cd3e6d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID383ace1b-a19a-4fd3-bd22-bf87f8cd3e6d"}},{"type":"Message","id":"EID9aaf8e52-4bd4-4ef2-bdfa-5670c50ecb70","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID9aaf8e52-4bd4-4ef2-bdfa-5670c50ecb70"}},{"type":"GetParameter","id":"EID8dc4b373-8919-4305-9c00-4595f1c57d26","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDaf6a1970-e8e1-4849-b5f7-74adda5e9930","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDaf6a1970-e8e1-4849-b5f7-74adda5e9930"}},{"type":"LogFile","id":"EID8f61d885-b9aa-44b0-a729-18e09da65515","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID8f61d885-b9aa-44b0-a729-18e09da65515"}},{"type":"ServiceEndpoint","id":"EIDcf9fbd1e-7e1b-4df4-8616-2d5d6aabf9c1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID7a270cd7-17c5-48fc-b321-7162a48a82eb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID7a270cd7-17c5-48fc-b321-7162a48a82eb"}},{"type":"Message","id":"EID4fcebc70-fbbf-4cad-b6f5-80b0876e6e62","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4fcebc70-fbbf-4cad-b6f5-80b0876e6e62"}},{"type":"GetParameter","id":"EID644c3224-4546-48db-9b46-8d65c0224395","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID44b8ebb3-0852-4b99-bbeb-f2e396901d91","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID44b8ebb3-0852-4b99-bbeb-f2e396901d91"}},{"type":"Message","id":"EIDdefa1412-7def-411e-953c-4f231958c3b7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDdefa1412-7def-411e-953c-4f231958c3b7"}},{"type":"Message","id":"EID58ca5bfb-63fb-4deb-9901-dfae3ccd3902","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID58ca5bfb-63fb-4deb-9901-dfae3ccd3902"}},{"type":"Message","id":"EIDbf580d50-063e-4a97-bfb3-b4368024e397","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDbf580d50-063e-4a97-bfb3-b4368024e397"}},{"type":"ServiceEndpoint","id":"EID7713bfc5-cc70-4478-b9d3-7ce1d5528eab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID7e425ac7-2967-42fa-94ba-dbb1aeeecf63","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDc65933bb-2007-40a5-a3d4-7915f046e282","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDc65933bb-2007-40a5-a3d4-7915f046e282"}},{"type":"ServiceResponse","id":"EIDa3fc6d43-8a64-46d4-8198-c3cdfc01536b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDa3fc6d43-8a64-46d4-8198-c3cdfc01536b"}},{"type":"Message","id":"EID76b1566c-53c2-49d1-bda8-c64ce868e54f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID76b1566c-53c2-49d1-bda8-c64ce868e54f"}},{"type":"GetParameter","id":"EIDdc35dc17-7c73-49f9-a4ad-f0aa95cbe99b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDa4b54361-b973-4ac4-8de7-413ee12c2a1b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID43cbeb72-00fc-4bb1-879b-ac721fb00fe0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID43cbeb72-00fc-4bb1-879b-ac721fb00fe0"}},{"type":"GetParameter","id":"EIDa7e2c2c2-46ea-4b5a-b4ae-932ae84f996b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID613a77d4-021a-4442-b810-535603e8e382","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID9637b9cf-dc4f-4a6a-96d9-4276b668163d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"Message","id":"EID0d634d0b-4d90-40b0-a331-7e9a2232d0e2","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0d634d0b-4d90-40b0-a331-7e9a2232d0e2"}},{"type":"ServiceResponse","id":"EID9b45cada-cb64-434d-9f91-e9fc0bbd33d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID9b45cada-cb64-434d-9f91-e9fc0bbd33d4"}},{"type":"ServiceEndpoint","id":"EID24bc8ec4-0adb-4706-aac0-02fca0998f2b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID513a1626-bfa6-4ad5-8bbc-3eef05aff352","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID513a1626-bfa6-4ad5-8bbc-3eef05aff352"}},{"type":"ServiceResponse","id":"EIDae060a5e-5126-446f-acd6-39d92e9a8cc2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDae060a5e-5126-446f-acd6-39d92e9a8cc2"}},{"type":"Message","id":"EID350560ce-3af8-4b4b-96a4-0738288051e1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID350560ce-3af8-4b4b-96a4-0738288051e1"}},{"type":"ServiceEndpoint","id":"EID6578592f-5b1b-4562-b74f-96834dc09810","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID601d65c1-3f22-4434-bdfa-9e6524bd8aed","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID601d65c1-3f22-4434-bdfa-9e6524bd8aed"}},{"type":"GetParameter","id":"EID8055d2a6-9297-48f5-a51d-8168541da60d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EIDa07619cb-6ace-45fe-aeb3-b9859d396f40","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EIDd4a76ac1-1900-4095-b4d7-12189ffd5929","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDd4a76ac1-1900-4095-b4d7-12189ffd5929"}},{"type":"ServiceResponse","id":"EID7319d248-4677-4de3-994d-0e7aa5f32eca","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID7319d248-4677-4de3-994d-0e7aa5f32eca"}},{"type":"GetParameter","id":"EID78c81b16-f9c9-4d0b-9550-6cc5c47cd2e3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL2Rvd25sb2Fkcy9pbnNwaXJlLXB2LXBzLm5scHMtd2F2LnppcA=="},{"type":"Message","id":"EIDdd8c0953-594f-4249-aeb8-5c8d1cee34ff","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDdd8c0953-594f-4249-aeb8-5c8d1cee34ff"}},{"type":"ServiceEndpoint","id":"EID453ea488-144a-4e32-80a3-a5653435e1ba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID3d6a7a8d-8e81-4ea6-8483-6faceeb5bd3c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDde59579e-0242-47ef-852b-d490fa3cc21d","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDde59579e-0242-47ef-852b-d490fa3cc21d"}},{"type":"GetParameter","id":"EID8111cdf6-db9a-4956-b3ec-8fa221303ff2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDa0648bec-3ea7-4eec-93bf-bc28357fb2ce","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDa0648bec-3ea7-4eec-93bf-bc28357fb2ce"}},{"type":"GetParameter","id":"EIDe2a96202-a373-494f-8f98-e0b2c439ef3e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EIDb0cf8ae3-e87f-49be-b4bd-7f0248f05306","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDb0cf8ae3-e87f-49be-b4bd-7f0248f05306"}},{"type":"Message","id":"EID6425eb2c-e075-4d3e-ba88-fb38fbc0a80c","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID6425eb2c-e075-4d3e-ba88-fb38fbc0a80c"}},{"type":"GetParameter","id":"EID21072406-b254-45ce-b672-52569fd8daf0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID60c6a444-513d-40c4-af53-83b504f8233f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID79e154ea-072d-480b-8199-12b5ac67e533","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID62143091-6a7c-4090-bebf-a3a4f0feb801","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID62143091-6a7c-4090-bebf-a3a4f0feb801"}},{"type":"ServiceEndpoint","id":"EIDc40611e1-122e-4508-bb15-1780ffbade7f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID416f09bf-049e-45b3-bd85-7d8aebad55e2","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID416f09bf-049e-45b3-bd85-7d8aebad55e2"}},{"type":"Message","id":"EID7ca02dd7-df93-47fe-b458-3cce3b42fddd","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID7ca02dd7-df93-47fe-b458-3cce3b42fddd"}},{"type":"Message","id":"EID76356c6c-d611-4b2b-bbe5-7fd304c862c1","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID76356c6c-d611-4b2b-bbe5-7fd304c862c1"}},{"type":"ServiceEndpoint","id":"EID405b684d-d0dc-4c76-98d2-66b1bbe42feb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID95c9f4f1-a719-426b-9c91-f61f2f9b4d53","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID360524b9-07cc-4955-8bed-ca49d417193a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID360524b9-07cc-4955-8bed-ca49d417193a"}},{"type":"Message","id":"EID6bd39e77-2a80-4d5d-af40-74775712ab06","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID6bd39e77-2a80-4d5d-af40-74775712ab06"}},{"type":"ServiceResponse","id":"EIDf6f043fe-5eec-4d7c-b36a-f129b735e65a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDf6f043fe-5eec-4d7c-b36a-f129b735e65a"}},{"type":"ServiceResponse","id":"EID3425a24f-3af5-48e7-9c08-dc47debc15a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID3425a24f-3af5-48e7-9c08-dc47debc15a2"}},{"type":"GetParameter","id":"EID2828722c-3d8f-44b1-a61f-368acffb058b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID941e1d00-00f2-46b8-b396-abbee8f2a7e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID4004947c-d206-4d2b-a3dc-dcaa38ed8b50","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4004947c-d206-4d2b-a3dc-dcaa38ed8b50"}},{"type":"GetParameter","id":"EID4b1540d4-16f8-4e9e-b6fe-4cf8c7d13832","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDdbd7f528-b2dd-4155-90b4-7469db0be945","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDdbd7f528-b2dd-4155-90b4-7469db0be945"}},{"type":"ServiceEndpoint","id":"EIDf5cb8533-b204-4070-a45c-cb11484a27e8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID92b4e76c-d950-4381-acb2-1eec0e658517","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"GetParameter","id":"EIDdc3eb5fa-1ba7-4488-abe2-b85b580e08c4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDbc922cbb-57b3-487b-b64b-7ada01eec537","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EIDc0bb313b-150a-4150-a99c-2265b14a13f8","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDc0bb313b-150a-4150-a99c-2265b14a13f8"}},{"type":"Message","id":"EID140a3f4c-373a-4010-8386-4c62af1ba226","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID140a3f4c-373a-4010-8386-4c62af1ba226"}},{"type":"Message","id":"EID3d1e8c39-3460-48b2-a060-b55b5f78a784","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID3d1e8c39-3460-48b2-a060-b55b5f78a784"}},{"type":"Message","id":"EIDda9fb6a5-d73a-4b66-8e3e-4363d3a40204","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDda9fb6a5-d73a-4b66-8e3e-4363d3a40204"}},{"type":"ServiceResponse","id":"EIDb91da086-981f-48c1-91c8-9ed05702b61f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDb91da086-981f-48c1-91c8-9ed05702b61f"}},{"type":"ServiceResponse","id":"EID23e8dcda-a8df-43ac-a619-738aebbfe3d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID23e8dcda-a8df-43ac-a619-738aebbfe3d4"}},{"type":"ServiceResponse","id":"EID3f67fe2c-4dd5-493e-9ed2-d633ddfdf35b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID3f67fe2c-4dd5-493e-9ed2-d633ddfdf35b"}},{"type":"Message","id":"EIDea78415d-d834-44f7-aa08-8cd3e5c595cd","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDea78415d-d834-44f7-aa08-8cd3e5c595cd"}},{"type":"Message","id":"EID0a6aa751-80f0-48f3-89f4-7d850776ec61","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID0a6aa751-80f0-48f3-89f4-7d850776ec61"}},{"type":"Message","id":"EID59a0100f-29db-42f3-aa37-7bddc9ffbed4","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID59a0100f-29db-42f3-aa37-7bddc9ffbed4"}},{"type":"GetParameter","id":"EID9fa66b72-9fb9-45b0-9c50-f17d3d3f994f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"GetParameter","id":"EID0c729bb7-a357-4c6f-8830-98f69fb1ea09","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb373085b-17c8-46a1-ae1e-f9843f5fd462","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDc1620120-e6b1-409e-a28b-7d9ce13ca5e7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDc1620120-e6b1-409e-a28b-7d9ce13ca5e7"}},{"type":"Message","id":"EID70f27343-a031-470f-a8ac-8f815a65193d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID70f27343-a031-470f-a8ac-8f815a65193d"}},{"type":"GetParameter","id":"EIDf00e2e18-3b15-46f3-9fc6-61d22d3f3b7b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EID2003de40-344d-4211-8a22-429c31706c6e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID2003de40-344d-4211-8a22-429c31706c6e"}},{"type":"ServiceEndpoint","id":"EID6a9f9437-e6db-44c0-bae9-ec78deb6a95e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID5957fd82-0c38-4197-b47a-707150557533","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDc394297b-85d8-4a5f-a781-42ae9073a3cd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID567ed727-ab44-45c3-9784-b752788495b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID567ed727-ab44-45c3-9784-b752788495b2"}},{"type":"Message","id":"EID16973d9c-f303-409e-8e08-e1ee8f7240a6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID16973d9c-f303-409e-8e08-e1ee8f7240a6"}},{"type":"ServiceResponse","id":"EID28e35f45-f3b5-4f91-bb32-a2f078c76844","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID28e35f45-f3b5-4f91-bb32-a2f078c76844"}},{"type":"Message","id":"EID90fc0467-ecc8-4c61-b179-83d5ca57c7cc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID90fc0467-ecc8-4c61-b179-83d5ca57c7cc"}},{"type":"ServiceEndpoint","id":"EIDedf74373-50bc-4ce3-8e60-8f10530d4ab6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID93c27415-b1f4-454a-af40-5614866aa0b0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EID0a52738a-1779-49af-95fb-24f2520f3abe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDdfa67c6e-ecd7-4955-8558-3bafff14e090","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID98c74e01-72a0-414a-82a5-538dd7b1a20e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID9db8be32-e05c-4ff9-9cac-3ac687ad9820","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID9db8be32-e05c-4ff9-9cac-3ac687ad9820"}},{"type":"ServiceResponse","id":"EIDd09f80de-e98f-4707-8acb-f200921fab4d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDd09f80de-e98f-4707-8acb-f200921fab4d"}},{"type":"GetParameter","id":"EID36da8638-8d6a-4563-92ed-cb6693ce2162","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID03979b6e-6926-454b-badd-e460c34d6eb3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID6066b446-404e-4cba-af43-b1d94fcdd1d1","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID6066b446-404e-4cba-af43-b1d94fcdd1d1"}},{"type":"GetParameter","id":"EIDad156935-8395-4018-aefc-3ba7a514b486","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID24b91122-86bf-4914-9190-7f3697d3ba9b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDfa5fb96b-1dc9-404e-9203-823b1df1679b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EID5f46832c-c749-4a83-9916-c6ba8f97167a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID5f46832c-c749-4a83-9916-c6ba8f97167a"}},{"type":"ServiceResponse","id":"EID4ec7e9a3-bbd1-4e15-ab0c-ac7783ef1b3f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID4ec7e9a3-bbd1-4e15-ab0c-ac7783ef1b3f"}},{"type":"GetParameter","id":"EID2a41aff8-d923-4cca-8b99-964d1581f772","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"GetParameter","id":"EID500c3cc9-54fa-4da2-b5c2-3ebc6bcf8088","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3Byb3ZpbmNpZXMvcHMvYXRvbS92MS9pbmRleC54bWw="},{"type":"Message","id":"EID308b7433-67f2-45de-b66b-3cf802491fa1","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID308b7433-67f2-45de-b66b-3cf802491fa1"}},{"type":"ServiceEndpoint","id":"EID8a8970a8-814c-4b0f-9619-a1927de636aa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"ServiceResponse","id":"EIDaab90cee-5e87-4ff1-a789-fb2855aa44d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDaab90cee-5e87-4ff1-a789-fb2855aa44d4"}},{"type":"ServiceEndpoint","id":"EID67db3b08-ed10-45af-aaa4-c70488ef0eac","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EID7129a3ba-c543-4567-8b83-006274b452a7","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID7129a3ba-c543-4567-8b83-006274b452a7"}},{"type":"ServiceEndpoint","id":"EID70fa5ec0-d531-4f1e-b436-4299daba59c9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85M2M4NzYyYy00Y2JiLTQyYjAtOWIwMi04OWVmOTAyZTg4ODAvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID6caebae8-4416-40f7-aeff-348f5132d2a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID6caebae8-4416-40f7-aeff-348f5132d2a1"}},{"type":"GetParameter","id":"EIDaeb92673-020d-4fb7-942b-456b2efda68e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"Message","id":"EIDff764767-ffc5-4dd9-b05a-857d5dec74ae","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EIDff764767-ffc5-4dd9-b05a-857d5dec74ae"}},{"type":"ServiceResponse","id":"EID7e90d2f5-e498-42af-a5fe-840a27539f4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID98b9bc2e-08a7-49fb-9e46-21b3e464d897/Attachments/EID7e90d2f5-e498-42af-a5fe-840a27539f4f"}},{"type":"ServiceEndpoint","id":"EID1c61d85d-69e3-47fa-9ec1-7115f46dfb9b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="},{"type":"GetParameter","id":"EID58830630-7e38-47c3-8f3b-cd622daffade","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvcHJvdmluY2llcy9wcy9hdG9tL3YxL3BzLW5scHMtd2F2LnhtbA=="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:17:00Z","duration":69327,"status":"FAILED"}}}}}
11:18:19.918 [print] EID8cad374d-433d-40fa-ae43-d99543aa6b86
11:18:19.918 [print] FAILED
11:18:19.918 [print] FAILED
11:18:19.918 [print] Conformance Class Download Service - Pre-defined Atom
11:18:19.918 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/8cad374d-433d-40fa-ae43-d99543aa6b86.json
11:18:19.918 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/8cad374d-433d-40fa-ae43-d99543aa6b86.json
11:18:19.918 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID8cad374d-433d-40fa-ae43-d99543aa6b86/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:18:19.924 [print] [ "TR.incorrectFeedSelfReference", "TR.missingLinkToMetadataRecordForDownloadService" ]
11:18:19.924 [print] [ "TR.incorrectFeedSelfReference", "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:46.489 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}}}
11:12:46.490 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 289
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}}}
11:13:14.101 response time in milliseconds: 26863.78
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:13 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:13:09 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/af8cc361-24da-4d8f-895b-272c97733cb6.json","testRuns":{"TestRun":{"id":"EIDaf8cc361-24da-4d8f-895b-272c97733cb6","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:13:06.116Z","testTasks":{"TestTask":{"id":"EID920e052e-308c-4b12-be05-bac51b505931","parent":{"ref":"EIDaf8cc361-24da-4d8f-895b-272c97733cb6"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID2452c4f2-50a0-4247-b7a1-b217efe45d5c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID2452c4f2-50a0-4247-b7a1-b217efe45d5c","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:12:46.93Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:12:51.593Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:13:14.104 [print] EIDaf8cc361-24da-4d8f-895b-272c97733cb6
11:13:14.104 [print] UNDEFINED
11:13:14.111 [print] Conformance Class Download Service - Pre-defined Atom
11:13:14.111 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/af8cc361-24da-4d8f-895b-272c97733cb6.json
11:13:14.111 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/log
11:13:14.112 [print] statuspath TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6
11:13:14.112 [print] progresspath TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
11:13:14.119 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:14.642 response time in milliseconds: 522.55
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:13:14 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"38","max":"39","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized"]}
11:13:14.642 [print] {
"val": "38",
"max": "39",
"log": [
"28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)",
"28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:13:06 - Preparing 1 Test Task:",
"28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)",
"28.10.2020 11:13:06 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:13:06 - with parameters: ",
"28.10.2020 11:13:06 - etf.testcases = *",
"28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:13:06 - Setting state to CREATED",
"28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z",
"28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:13:10 - Project Properties: ",
"28.10.2020 11:13:10 - etf.testcases - * ",
"28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ",
"28.10.2020 11:13:10 - username - ",
"28.10.2020 11:13:10 - authUser - ",
"28.10.2020 11:13:10 - authMethod - basic ",
"28.10.2020 11:13:10 - TestRunTask initialized"
]
}
11:13:14.643 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:15.150 response time in milliseconds: 506.72
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:13:15 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized"]}
11:13:15.151 retry condition not satisfied: response.val == response.max
11:13:15.151 sleeping before retry #1
11:13:20.151 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:20.668 response time in milliseconds: 515.61
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:13:20 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"93","max":"94","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:13:20.674 retry condition not satisfied: response.val == response.max
11:13:20.674 sleeping before retry #2
11:13:25.675 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:26.191 response time in milliseconds: 514.94
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:13:26 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"156","max":"157","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:13:26.191 retry condition not satisfied: response.val == response.max
11:13:26.191 sleeping before retry #3
11:13:31.192 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:31.708 response time in milliseconds: 514.83
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:13:31 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:13:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:13:30 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:13:31.708 retry condition not satisfied: response.val == response.max
11:13:31.708 sleeping before retry #4
11:13:36.709 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:37.230 response time in milliseconds: 520.66
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:13:37 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:13:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:13:30 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:13:37 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:13:37.230 retry condition not satisfied: response.val == response.max
11:13:37.230 sleeping before retry #5
11:13:42.231 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:42.751 response time in milliseconds: 519.23
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:13:42 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:13:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:13:30 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:13:37 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:13:42.761 retry condition not satisfied: response.val == response.max
11:13:42.761 sleeping before retry #6
11:13:47.762 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:48.272 response time in milliseconds: 510.08
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:13:48 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:13:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:13:30 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:13:37 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:13:48.273 retry condition not satisfied: response.val == response.max
11:13:48.273 sleeping before retry #7
11:13:53.274 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:53.814 response time in milliseconds: 539.40
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:13:53 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:13:06 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:06 UTC 2020)","28.10.2020 11:13:06 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:06 - Preparing 1 Test Task:","28.10.2020 11:13:06 - TestTask 1 (920e052e-308c-4b12-be05-bac51b505931)","28.10.2020 11:13:06 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:06 - with parameters: ","28.10.2020 11:13:06 - etf.testcases = *","28.10.2020 11:13:06 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:06 - Setting state to CREATED","28.10.2020 11:13:06 - Changed state from CREATED to INITIALIZING","28.10.2020 11:13:09 - Starting TestRun.af8cc361-24da-4d8f-895b-272c97733cb6 at 2020-10-28T11:13:10Z","28.10.2020 11:13:10 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:13:10 - Project Properties: ","28.10.2020 11:13:10 - etf.testcases - * ","28.10.2020 11:13:10 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:13:10 - username - ","28.10.2020 11:13:10 - authUser - ","28.10.2020 11:13:10 - authMethod - basic ","28.10.2020 11:13:10 - TestRunTask initialized","28.10.2020 11:13:19 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:13:29 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:13:30 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:13:37 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:13:53.814 retry condition not satisfied: response.val == response.max
11:13:53.814 sleeping before retry #8
11:13:58.815 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:00.821 response time in milliseconds: 2005.39
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:14:00 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:14:00.821 retry condition satisfied
11:14:00.821 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:14:00.822 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:05.141 response time in milliseconds: 3260.44
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Cache-Control: public, max-age=120
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:14:04 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Last-Modified: Wed, 28 Oct 2020 11:14:00 GMT
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/af8cc361-24da-4d8f-895b-272c97733cb6.json","testRuns":{"TestRun":{"id":"EIDaf8cc361-24da-4d8f-895b-272c97733cb6","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:13:06.116Z","testTasks":{"TestTask":{"id":"EID920e052e-308c-4b12-be05-bac51b505931","parent":{"ref":"EIDaf8cc361-24da-4d8f-895b-272c97733cb6"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID2452c4f2-50a0-4247-b7a1-b217efe45d5c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID2452c4f2-50a0-4247-b7a1-b217efe45d5c","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:12:46.93Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:12:51.593Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0","testObject":{"ref":"EID2452c4f2-50a0-4247-b7a1-b217efe45d5c"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee963cb-0175-1000-9626-9b776eb570c8","testCaseResults":{"TestCaseResult":[{"id":"EID6ee963cb-0175-1000-9656-2bb0f59be69a","testStepResults":{"TestStepResult":[{"id":"EID6ee963cc-0175-1000-3425-0b7ec9017e32","parent":{"ref":"EID6ee963cb-0175-1000-9656-2bb0f59be69a"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:13:10Z","duration":17,"status":"PASSED"},{"id":"EID6ee963dd-0175-1000-d74b-1e7eda8989d3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9650d-0175-1000-c30a-06b65438e9bc","parent":{"ref":"EID6ee963dd-0175-1000-d74b-1e7eda8989d3"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:13:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee9650d-0175-1000-1d6e-32c7b318ecf3","parent":{"ref":"EID6ee963dd-0175-1000-d74b-1e7eda8989d3"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:13:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee9650d-0175-1000-e7b7-86850f89ad19","parent":{"ref":"EID6ee963dd-0175-1000-d74b-1e7eda8989d3"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:13:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee9650d-0175-1000-55e8-48ebd1bbe7a5","parent":{"ref":"EID6ee963dd-0175-1000-d74b-1e7eda8989d3"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:13:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID988488d0-d320-41c7-a187-078a9bf65062"},{"ref":"EIDe4198276-405d-495a-8611-88bb492d6193"},{"ref":"EID11bd429b-027f-4e41-968b-d68a54dc279c"}]},"parent":{"ref":"EID6ee963cb-0175-1000-9656-2bb0f59be69a"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:13:10Z","duration":51,"status":"PASSED"}]},"parent":{"ref":"EID6ee963cb-0175-1000-9626-9b776eb570c8"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:13:10Z","duration":330,"status":"PASSED"},{"id":"EID6ee9651e-0175-1000-589c-cde628a3612d","testStepResults":{"TestStepResult":{"id":"EID6ee9651e-0175-1000-45ed-2f2fb41e93ae","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee96638-0175-1000-3ce7-a75d7647d6f0","parent":{"ref":"EID6ee9651e-0175-1000-45ed-2f2fb41e93ae"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee96638-0175-1000-4dd9-92d193eeea75","parent":{"ref":"EID6ee9651e-0175-1000-45ed-2f2fb41e93ae"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee96638-0175-1000-d6b7-0e2787d1da98","parent":{"ref":"EID6ee9651e-0175-1000-45ed-2f2fb41e93ae"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8387c9ac-53a8-4143-8639-907bdfb4ba16"},{"ref":"EID910e82ec-dcef-4a83-aa60-2e45b042bb6f"},{"ref":"EID48a5b751-ba72-4b58-9082-fe1075b81664"}]},"parent":{"ref":"EID6ee9651e-0175-1000-589c-cde628a3612d"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:13:10Z","duration":146,"status":"PASSED"}},"parent":{"ref":"EID6ee963cb-0175-1000-9626-9b776eb570c8"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:13:10Z","duration":282,"status":"PASSED"}]},"parent":{"ref":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:13:10Z","duration":621,"status":"PASSED"},{"id":"EID6ee96638-0175-1000-3616-6e5c864236c6","testCaseResults":{"TestCaseResult":[{"id":"EID6ee96638-0175-1000-de32-b6b4f5c284f7","testStepResults":{"TestStepResult":[{"id":"EID6ee96638-0175-1000-3294-893de0395ed2","parent":{"ref":"EID6ee96638-0175-1000-de32-b6b4f5c284f7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:13:11Z","duration":160,"status":"PASSED"},{"id":"EID6ee96646-0175-1000-a9ae-2a52a587bf21","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee966d2-0175-1000-abc7-dc9672114a7a","parent":{"ref":"EID6ee96646-0175-1000-a9ae-2a52a587bf21"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee966d2-0175-1000-4e35-6a2bd0b4dc51","parent":{"ref":"EID6ee96646-0175-1000-a9ae-2a52a587bf21"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee966d2-0175-1000-c233-f150b8dce9cc","parent":{"ref":"EID6ee96646-0175-1000-a9ae-2a52a587bf21"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee966d2-0175-1000-674c-4d72f0106e0c","parent":{"ref":"EID6ee96646-0175-1000-a9ae-2a52a587bf21"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee966d2-0175-1000-9917-8b75aefa9fcd","parent":{"ref":"EID6ee96646-0175-1000-a9ae-2a52a587bf21"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:13:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID52b4742d-b2fc-495e-859a-9f26b31d73ac"},{"ref":"EIDce7ea91c-c303-4f36-9a70-3c091c547e16"},{"ref":"EID59e20234-637a-48ea-8c03-0a54c1baf7f2"}]},"parent":{"ref":"EID6ee96638-0175-1000-de32-b6b4f5c284f7"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:13:11Z","duration":45,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:13:11Z","duration":154,"status":"PASSED"},{"id":"EID6ee966d2-0175-1000-bb89-0ed8ab68b687","testStepResults":{"TestStepResult":[{"id":"EID6ee966db-0175-1000-7ed7-36bfac2f1578","attachments":{"attachment":[{"ref":"EIDbd4e3c19-dbb3-4c3a-ae74-f41a994fb2f3"},{"ref":"EIDbfe68ade-1fe5-4ece-8a37-cd1d4da8a890"}]},"parent":{"ref":"EID6ee966d2-0175-1000-bb89-0ed8ab68b687"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:13:11Z","duration":442,"status":"PASSED"},{"id":"EID6ee96905-0175-1000-c145-bd43c2525d45","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee96a83-0175-1000-1bab-886e5c6bb907","parent":{"ref":"EID6ee96905-0175-1000-c145-bd43c2525d45"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96a83-0175-1000-522b-83c18e0b4a04","parent":{"ref":"EID6ee96905-0175-1000-c145-bd43c2525d45"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96a83-0175-1000-1211-2a5747e76d70","parent":{"ref":"EID6ee96905-0175-1000-c145-bd43c2525d45"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96a83-0175-1000-1115-fcbb6bf5c9d9","parent":{"ref":"EID6ee96905-0175-1000-c145-bd43c2525d45"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb640cedb-6e4a-4e5d-84fe-3d094d1c8e5e"},{"ref":"EIDfae84761-1a60-4a88-9486-30f6f2948e24"},{"ref":"EID5ae9cbb2-d104-4870-8e1f-9e532af87f0d"}]},"parent":{"ref":"EID6ee966d2-0175-1000-bb89-0ed8ab68b687"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:13:11Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:13:11Z","duration":945,"status":"PASSED"},{"id":"EID6ee96a8b-0175-1000-6dc6-033f8c942e32","testStepResults":{"TestStepResult":[{"id":"EID6ee96a8b-0175-1000-02fc-0465a0be6299","attachments":{"attachment":[{"ref":"EIDc203f2bf-b936-4b4f-bcdd-643f37c944b7"},{"ref":"EIDfecb158a-e41f-48b3-a1e3-ec613fc81990"}]},"parent":{"ref":"EID6ee96a8b-0175-1000-6dc6-033f8c942e32"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:13:12Z","duration":172,"status":"PASSED"},{"id":"EID6ee96b61-0175-1000-ef00-10711864ab50","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee96ce4-0175-1000-346e-be7e4880f87b","parent":{"ref":"EID6ee96b61-0175-1000-ef00-10711864ab50"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96ce4-0175-1000-953f-c4850981219d","parent":{"ref":"EID6ee96b61-0175-1000-ef00-10711864ab50"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96ce4-0175-1000-8116-c333c66829fb","parent":{"ref":"EID6ee96b61-0175-1000-ef00-10711864ab50"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96ce4-0175-1000-c0e8-ff8275baf33a","parent":{"ref":"EID6ee96b61-0175-1000-ef00-10711864ab50"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee96ce4-0175-1000-6ca2-a767188c0600","parent":{"ref":"EID6ee96b61-0175-1000-ef00-10711864ab50"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:13:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb6009123-2e2f-4c58-8a0c-717a6457b167"},{"ref":"EIDcbbf2844-4e18-4ad3-a10a-9b7d5e542d1e"},{"ref":"EIDeba7704b-4e78-47e1-a201-efada057e7cd"}]},"parent":{"ref":"EID6ee96a8b-0175-1000-6dc6-033f8c942e32"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:13:12Z","duration":265,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:13:12Z","duration":616,"status":"PASSED"},{"id":"EID6ee96cf3-0175-1000-21ea-f4292182c45d","testStepResults":{"TestStepResult":[{"id":"EID6ee96cf3-0175-1000-a419-541119838040","attachments":{"attachment":[{"ref":"EIDf329fbdc-47e6-4c0d-b466-53c03e8a5385"},{"ref":"EID0d5ad8c9-09ea-45c7-a8a0-8059d61373fa"}]},"parent":{"ref":"EID6ee96cf3-0175-1000-21ea-f4292182c45d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:13:12Z","duration":198,"status":"PASSED"},{"id":"EID6ee96dee-0175-1000-5570-8e8e089d2053","parent":{"ref":"EID6ee96cf3-0175-1000-21ea-f4292182c45d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96def-0175-1000-16b5-e104526e47e3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee96eab-0175-1000-4218-2fe9b40deac7","parent":{"ref":"EID6ee96def-0175-1000-16b5-e104526e47e3"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96eab-0175-1000-7599-e6d6b472e466","parent":{"ref":"EID6ee96def-0175-1000-16b5-e104526e47e3"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96eab-0175-1000-baca-d3af61732144","parent":{"ref":"EID6ee96def-0175-1000-16b5-e104526e47e3"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96eab-0175-1000-5cfe-7c19aa073cc2","parent":{"ref":"EID6ee96def-0175-1000-16b5-e104526e47e3"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID72bbe2b0-df6c-4c5e-b1c6-dd23069cb3b5"},{"ref":"EID74192ec8-3de4-44d4-9b25-2a676211a937"},{"ref":"EIDf3474882-fade-4377-a700-3bd337d9673e"}]},"parent":{"ref":"EID6ee96cf3-0175-1000-21ea-f4292182c45d"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:13:13Z","duration":91,"status":"PASSED"},{"id":"EID6ee96eab-0175-1000-d137-f1dbec8bb0f8","attachments":{"attachment":{"ref":"EID705c4041-8f8c-423e-b95a-eb66e50820e0"}},"parent":{"ref":"EID6ee96cf3-0175-1000-21ea-f4292182c45d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:13:13Z","duration":1,"status":"PASSED"},{"id":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee96f4e-0175-1000-3b7c-b292342f64ba","parent":{"ref":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96f4e-0175-1000-767e-a31da1850cdf","parent":{"ref":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96f4e-0175-1000-c9d2-46e694c92f4d","parent":{"ref":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96f4e-0175-1000-d707-ec3f21b14fb7","parent":{"ref":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee96f4e-0175-1000-ba88-7af9cbb555e6","parent":{"ref":"EID6ee96eb8-0175-1000-ef5b-51d01d17eccc"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID43b23d0d-1b19-4004-bfa6-5033e5f91085"},{"ref":"EIDdba24ea9-2545-4a6e-8dfb-3c9f6e38fec4"},{"ref":"EID4ee55359-eccb-44c6-a0c1-8539db0d5143"}]},"parent":{"ref":"EID6ee96cf3-0175-1000-21ea-f4292182c45d"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:13:13Z","duration":49,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:13:12Z","duration":611,"status":"PASSED"},{"id":"EID6ee96f56-0175-1000-a362-9cb98f4a9a9f","testStepResults":{"TestStepResult":[{"id":"EID6ee96f56-0175-1000-b14e-d546acf93eeb","attachments":{"attachment":[{"ref":"EID800321f2-a8a3-4699-870a-61d0d8d580a4"},{"ref":"EID490df209-7d03-416e-ba97-d70377fd7971"}]},"parent":{"ref":"EID6ee96f56-0175-1000-a362-9cb98f4a9a9f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:13:13Z","duration":88,"status":"PASSED"},{"id":"EID6ee97005-0175-1000-337d-38d6f3417bcf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9707b-0175-1000-b41f-d73c0fe2e8fd","parent":{"ref":"EID6ee97005-0175-1000-337d-38d6f3417bcf"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee9707b-0175-1000-d94c-9e4e2757230e","parent":{"ref":"EID6ee97005-0175-1000-337d-38d6f3417bcf"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee9707b-0175-1000-2947-330c037a4e38","parent":{"ref":"EID6ee97005-0175-1000-337d-38d6f3417bcf"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee9707b-0175-1000-8ef2-6041cfffc09f","parent":{"ref":"EID6ee97005-0175-1000-337d-38d6f3417bcf"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:13:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbb32d4e6-8fde-41a6-972e-92727bca9fc3"},{"ref":"EIDfc72bf0a-ae4b-4932-b110-cd715fe33cdb"},{"ref":"EIDfdecd16d-ee45-4017-874a-21ecacd2a706"}]},"parent":{"ref":"EID6ee96f56-0175-1000-a362-9cb98f4a9a9f"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:13:13Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:13:13Z","duration":302,"status":"PASSED"},{"id":"EID6ee97084-0175-1000-d035-0ac2098f37b9","testStepResults":{"TestStepResult":[{"id":"EID6ee97084-0175-1000-fd58-6e6d40d16e5a","attachments":{"attachment":[{"ref":"EIDcd1118b5-37fc-4a3b-a3ab-56211972e872"},{"ref":"EID2159bf2e-0882-4009-9ba3-118d7de73b56"}]},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:13:13Z","duration":115,"status":"PASSED"},{"id":"EID6ee97120-0175-1000-cf5d-8c97dad24560","parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee97120-0175-1000-9883-7b9a9e960718","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97232-0175-1000-8585-808928102dd6","parent":{"ref":"EID6ee97120-0175-1000-9883-7b9a9e960718"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee97232-0175-1000-9d00-d75c42989054","parent":{"ref":"EID6ee97120-0175-1000-9883-7b9a9e960718"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee97232-0175-1000-f9d1-9b2448927ad1","parent":{"ref":"EID6ee97120-0175-1000-9883-7b9a9e960718"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee97232-0175-1000-beeb-aef4712d1a0e","parent":{"ref":"EID6ee97120-0175-1000-9883-7b9a9e960718"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1d652d89-36fc-4979-b151-75b98205d3e6"},{"ref":"EID1b5faac4-fde4-43a8-bf24-e5494ac72ec9"},{"ref":"EIDad3a9c25-ab7c-4d72-a51e-815273774bea"}]},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:13:14Z","duration":168,"status":"PASSED"},{"id":"EID6ee97241-0175-1000-c4f7-a9a1ac194596","attachments":{"attachment":{"ref":"EID27680afb-0f98-4d09-b88d-817d6aea5f88"}},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:13:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee9724e-0175-1000-5250-e9965bfc38f2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee973a6-0175-1000-ac4d-eb39dc15b7bf","parent":{"ref":"EID6ee9724e-0175-1000-5250-e9965bfc38f2"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee973a6-0175-1000-0d78-13d105897eba","parent":{"ref":"EID6ee9724e-0175-1000-5250-e9965bfc38f2"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee973a6-0175-1000-0666-2bb38405543e","parent":{"ref":"EID6ee9724e-0175-1000-5250-e9965bfc38f2"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7eeef2d9-43a5-422a-9299-bdfceafa5dd2"},{"ref":"EID61065365-0cb0-4860-97ea-8111de8892b8"},{"ref":"EID1c346e24-61d2-4af4-a9a5-bfff4653e9d0"}]},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:13:14Z","duration":215,"status":"PASSED"},{"id":"EID6ee973a6-0175-1000-630b-0e4a70fe94cf","attachments":{"attachment":{"ref":"EID38f0ab56-0d4f-48fd-847f-0dfc5d46f1d1"}},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:13:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee973b5-0175-1000-55a7-733c484a4ca1","attachments":{"attachment":{"ref":"EID5813f820-6ead-44d5-95cf-fb66e602d9a0"}},"parent":{"ref":"EID6ee97084-0175-1000-d035-0ac2098f37b9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:13:14Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:13:13Z","duration":829,"status":"PASSED"},{"id":"EID6ee973c8-0175-1000-eb7d-73aafdbadd36","testStepResults":{"TestStepResult":[{"id":"EID6ee973c8-0175-1000-5932-5f7795dd6696","attachments":{"attachment":[{"ref":"EID927799f3-8331-41a1-82cf-82650547aa1b"},{"ref":"EID5cd2c0cd-3e24-47f8-a918-8e3e0d4b2881"}]},"parent":{"ref":"EID6ee973c8-0175-1000-eb7d-73aafdbadd36"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:13:14Z","duration":118,"status":"PASSED"},{"id":"EID6ee9746d-0175-1000-b5af-e9db6bc1bdaa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97516-0175-1000-8489-79dc3ffa35b2","parent":{"ref":"EID6ee9746d-0175-1000-b5af-e9db6bc1bdaa"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97516-0175-1000-5dda-d26ebb1ff904","parent":{"ref":"EID6ee9746d-0175-1000-b5af-e9db6bc1bdaa"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97516-0175-1000-4c38-1f3bebaead6d","parent":{"ref":"EID6ee9746d-0175-1000-b5af-e9db6bc1bdaa"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97516-0175-1000-ea8f-0e5f7702bae3","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee9746d-0175-1000-b5af-e9db6bc1bdaa"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID1115fb27-4e57-4a98-b8f2-36b92d952d5a"},{"ref":"EIDb06d05b5-154c-45a3-a8c1-d851fe49f1a7"},{"ref":"EID16cb4d4d-af17-453a-a783-a1101517a127"}]},"parent":{"ref":"EID6ee973c8-0175-1000-eb7d-73aafdbadd36"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:13:14Z","duration":54,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:13:14Z","duration":348,"status":"PASSED_MANUAL"},{"id":"EID6ee97524-0175-1000-c647-cca270434f71","testStepResults":{"TestStepResult":{"id":"EID6ee97525-0175-1000-1152-c8fc7bc13988","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97614-0175-1000-99fc-e56177017a13","parent":{"ref":"EID6ee97525-0175-1000-1152-c8fc7bc13988"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97614-0175-1000-424b-7e217fc41201","parent":{"ref":"EID6ee97525-0175-1000-1152-c8fc7bc13988"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97614-0175-1000-5051-466989319b21","parent":{"ref":"EID6ee97525-0175-1000-1152-c8fc7bc13988"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee97614-0175-1000-c3c5-afa89843c289","parent":{"ref":"EID6ee97525-0175-1000-1152-c8fc7bc13988"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5806b538-3994-48c0-82f9-ab7128d4b7c6"},{"ref":"EID6d65dae2-0a8d-4e75-befa-bac77a385869"},{"ref":"EID43219905-d953-4f5b-bc63-db7202646e2b"}]},"parent":{"ref":"EID6ee97524-0175-1000-c647-cca270434f71"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:13:15Z","duration":142,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:13:15Z","duration":249,"status":"PASSED"},{"id":"EID6ee9761d-0175-1000-8734-3add28834ade","testStepResults":{"TestStepResult":{"id":"EID6ee9761d-0175-1000-fe7d-fe203e89e72e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee976b9-0175-1000-e9fc-a5e290ad934a","parent":{"ref":"EID6ee9761d-0175-1000-fe7d-fe203e89e72e"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee976b9-0175-1000-9996-98bb86f71cb4","parent":{"ref":"EID6ee9761d-0175-1000-fe7d-fe203e89e72e"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee976b9-0175-1000-caf3-75b9e935e7a5","parent":{"ref":"EID6ee9761d-0175-1000-fe7d-fe203e89e72e"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee976b9-0175-1000-145f-388cf2c9adb9","parent":{"ref":"EID6ee9761d-0175-1000-fe7d-fe203e89e72e"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:13:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0d158982-3c8b-48a4-ac47-51cabdfd48e2"},{"ref":"EIDe0d9a1e4-64d8-4f73-af63-8a0c198c5a7f"},{"ref":"EIDf4c4561a-03c0-4d6f-afaa-c26a0c73b8c5"}]},"parent":{"ref":"EID6ee9761d-0175-1000-8734-3add28834ade"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:13:15Z","duration":54,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:13:15Z","duration":156,"status":"PASSED"},{"id":"EID6ee976ba-0175-1000-c9a9-b41150309036","testStepResults":{"TestStepResult":[{"id":"EID6ee976ba-0175-1000-8bc5-1af296bf6e19","attachments":{"attachment":[{"ref":"EIDcf040976-882a-4ecf-8356-e07698f97f31"},{"ref":"EID666b5b50-2cae-4f44-bc78-d028bc930bfb"},{"ref":"EID0bc15d36-4e4d-478c-bf43-56ab447c6fab"},{"ref":"EID165c7154-be1f-479d-bf6d-bd98db7f464d"},{"ref":"EID2c0251a3-d887-4d1a-8374-d88d805f2de5"},{"ref":"EID14d7e6e7-d3b3-4f4a-b3a6-5dda9531a6c8"},{"ref":"EID7520f071-31db-4960-a208-e7eb1fa464a9"},{"ref":"EID11176a7d-72dc-42c0-8f47-a4a655c350e4"},{"ref":"EID40a0768e-9225-4899-b5f7-8d476fae39bf"},{"ref":"EIDfe2ea799-6032-4be2-b334-09415abd1d1b"},{"ref":"EIDeedfc7d3-d9a9-4994-8bf1-3dd7544815b1"},{"ref":"EID30a801e6-0563-4701-b34a-f5ea917d939d"}]},"parent":{"ref":"EID6ee976ba-0175-1000-c9a9-b41150309036"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:13:15Z","duration":448,"status":"PASSED"},{"id":"EID6ee9799e-0175-1000-a92e-c7949ab58e48","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97b0b-0175-1000-5ca3-af50ed6f6893","parent":{"ref":"EID6ee9799e-0175-1000-a92e-c7949ab58e48"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97b0b-0175-1000-bd70-baca89f13c74","parent":{"ref":"EID6ee9799e-0175-1000-a92e-c7949ab58e48"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97b0b-0175-1000-6285-ebff2ade42ac","parent":{"ref":"EID6ee9799e-0175-1000-a92e-c7949ab58e48"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97b0b-0175-1000-a159-9c1fa4682f26","parent":{"ref":"EID6ee9799e-0175-1000-a92e-c7949ab58e48"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97b0b-0175-1000-e6f3-7e84019a7ad3","parent":{"ref":"EID6ee9799e-0175-1000-a92e-c7949ab58e48"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6a50c33a-f359-4a18-868e-7734fdc6a900"},{"ref":"EID7440299b-4e52-46cc-83dd-fd0c1f04e4a9"},{"ref":"EID850fa7d1-a619-40a2-8999-c586a19334e4"}]},"parent":{"ref":"EID6ee976ba-0175-1000-c9a9-b41150309036"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:13:16Z","duration":231,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:13:15Z","duration":1114,"status":"PASSED"},{"id":"EID6ee97b14-0175-1000-04da-4b3cc67a1959","testStepResults":{"TestStepResult":{"id":"EID6ee97b14-0175-1000-9f64-4b049edbe4c5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97bb8-0175-1000-b444-479fbba7b9a4","parent":{"ref":"EID6ee97b14-0175-1000-9f64-4b049edbe4c5"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97bb8-0175-1000-baa7-eef6f4f40832","parent":{"ref":"EID6ee97b14-0175-1000-9f64-4b049edbe4c5"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97bb8-0175-1000-b659-5467f7dc137a","parent":{"ref":"EID6ee97b14-0175-1000-9f64-4b049edbe4c5"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee97bb8-0175-1000-5136-3b1ae01345a0","parent":{"ref":"EID6ee97b14-0175-1000-9f64-4b049edbe4c5"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:13:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2754d1eb-b4db-446e-ac84-c5fd32dae33d"},{"ref":"EIDce25bc19-9fd7-4ff8-b7a3-4a498069f801"},{"ref":"EID4626dd16-9822-4f14-bbc2-75ded8c18580"}]},"parent":{"ref":"EID6ee97b14-0175-1000-04da-4b3cc67a1959"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:13:16Z","duration":57,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:13:16Z","duration":173,"status":"PASSED"},{"id":"EID6ee97bc2-0175-1000-cd91-056e853978ad","testStepResults":{"TestStepResult":{"id":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97d60-0175-1000-6881-899ce3ef2734","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97d60-0175-1000-0b6d-8dd138a275de","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97d60-0175-1000-4e5a-467b66a47f2d","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97d60-0175-1000-4e03-d5581b11196d","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97d60-0175-1000-1c34-190643531524","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97d60-0175-1000-218f-bda4bdc1ae03","parent":{"ref":"EID6ee97bc2-0175-1000-19b8-d8ac1340e590"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcd0115e7-4ab4-4825-b5ad-92935f049aab"},{"ref":"EID2f2dbe14-4575-4743-9ec4-f148f7a09434"},{"ref":"EID142b6e13-04b0-4301-ac8e-43b01afd5970"}]},"parent":{"ref":"EID6ee97bc2-0175-1000-cd91-056e853978ad"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:13:16Z","duration":243,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:13:16Z","duration":414,"status":"PASSED"},{"id":"EID6ee97d61-0175-1000-0fe4-4fc55e392495","testStepResults":{"TestStepResult":{"id":"EID6ee97d61-0175-1000-2457-42e7d3aeec70","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97e56-0175-1000-123c-b21cc72226af","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-d6de-988d51c2e6f6","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-7674-28e400db915a","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-7beb-15f7beaf89e4","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-4c18-dc32c388027b","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-697b-ba72303c0283","parent":{"ref":"EID6ee97d61-0175-1000-2457-42e7d3aeec70"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID85bdfcd8-114d-4180-badb-5ca050eb0a15"},{"ref":"EIDb4fa8678-6eaf-4bc0-88a7-b6d520d686af"},{"ref":"EID18884f9e-948d-4899-9947-321f91daa27e"}]},"parent":{"ref":"EID6ee97d61-0175-1000-0fe4-4fc55e392495"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:13:17Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:13:17Z","duration":245,"status":"PASSED"},{"id":"EID6ee97e56-0175-1000-55a5-da7ecce35b76","testStepResults":{"TestStepResult":{"id":"EID6ee97e56-0175-1000-bc31-7c5c81c73036","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee97f05-0175-1000-f4e3-9cea11ae90f4","parent":{"ref":"EID6ee97e56-0175-1000-bc31-7c5c81c73036"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97f06-0175-1000-bf90-d7ae891d83dc","parent":{"ref":"EID6ee97e56-0175-1000-bc31-7c5c81c73036"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97f06-0175-1000-78db-fcd6d9a232e6","parent":{"ref":"EID6ee97e56-0175-1000-bc31-7c5c81c73036"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee97f06-0175-1000-9629-4f9cd7c2f178","parent":{"ref":"EID6ee97e56-0175-1000-bc31-7c5c81c73036"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:13:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7a8a143d-8299-4ce0-80be-58a64546c22b"},{"ref":"EIDe9f3d152-bbc1-4c24-8f92-d0c52a38027c"},{"ref":"EID53fb178d-4816-400b-b759-52e6dac8bdd3"}]},"parent":{"ref":"EID6ee97e56-0175-1000-55a5-da7ecce35b76"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:13:17Z","duration":84,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:13:17Z","duration":176,"status":"PASSED"},{"id":"EID6ee97f06-0175-1000-d49f-6ebad7b2f0c8","testStepResults":{"TestStepResult":[{"id":"EID6ee97f06-0175-1000-0446-d795c5b7d814","attachments":{"attachment":[{"ref":"EID68830de5-4ced-498a-8602-fc8cf5bbe58f"},{"ref":"EIDc7231a94-4bb9-4e79-bc24-5589fc176cfb"},{"ref":"EIDdf7ec732-c096-4aaa-81cd-e14cc8f1ac87"},{"ref":"EID4b2d7bf3-89d9-4308-a265-e05026535dd7"}]},"parent":{"ref":"EID6ee97f06-0175-1000-d49f-6ebad7b2f0c8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:13:17Z","duration":615,"status":"PASSED"},{"id":"EID6ee981ed-0175-1000-9ba2-96398b639e2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9836a-0175-1000-319c-577211ca03e1","parent":{"ref":"EID6ee981ed-0175-1000-9ba2-96398b639e2a"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:13:18Z","duration":1,"status":"PASSED"},{"id":"EID6ee9836b-0175-1000-3d58-877249947b6b","parent":{"ref":"EID6ee981ed-0175-1000-9ba2-96398b639e2a"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:13:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee9836b-0175-1000-b195-beeab0f12ea3","parent":{"ref":"EID6ee981ed-0175-1000-9ba2-96398b639e2a"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:13:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee9836b-0175-1000-7f1f-49915bf7c6c8","parent":{"ref":"EID6ee981ed-0175-1000-9ba2-96398b639e2a"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:13:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd36f7708-ff68-4255-92f2-237f7713d84d"},{"ref":"EIDce260578-c88c-4c17-b389-73148d5b9ec2"},{"ref":"EIDf7d980a0-d8b8-454f-9b74-5d184385d310"}]},"parent":{"ref":"EID6ee97f06-0175-1000-d49f-6ebad7b2f0c8"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:13:18Z","duration":274,"status":"PASSED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:13:17Z","duration":1138,"status":"PASSED"},{"id":"EID6ee98379-0175-1000-c9f3-5c4b7448a24b","testStepResults":{"TestStepResult":{"id":"EID6ee98379-0175-1000-96d9-6ead224fd994","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98540-0175-1000-5b37-6a66e22de1e5","parent":{"ref":"EID6ee98379-0175-1000-96d9-6ead224fd994"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98540-0175-1000-92e8-d4d2f81b55c8","parent":{"ref":"EID6ee98379-0175-1000-96d9-6ead224fd994"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98540-0175-1000-c98a-09cb05267cb4","parent":{"ref":"EID6ee98379-0175-1000-96d9-6ead224fd994"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98540-0175-1000-caeb-e45f889827be","parent":{"ref":"EID6ee98379-0175-1000-96d9-6ead224fd994"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfd2dcf77-4711-49a4-9a78-2ec1bbba8a1e"},{"ref":"EIDd1b6f159-9742-4fc0-b344-8f5f912bf18f"},{"ref":"EID66857e15-2562-43a7-abb7-87fe16b4bbc6"}]},"parent":{"ref":"EID6ee98379-0175-1000-c9f3-5c4b7448a24b"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:13:18Z","duration":273,"status":"PASSED"}},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:13:18Z","duration":456,"status":"PASSED"},{"id":"EID6ee98541-0175-1000-0e47-193678ad6f9a","testStepResults":{"TestStepResult":[{"id":"EID6ee98541-0175-1000-58df-df8eea4e6039","parent":{"ref":"EID6ee98541-0175-1000-0e47-193678ad6f9a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98541-0175-1000-a5ac-a147b32ab8bd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98735-0175-1000-5960-17534ee02aa8","parent":{"ref":"EID6ee98541-0175-1000-a5ac-a147b32ab8bd"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98735-0175-1000-4057-c7796b5e0168","parent":{"ref":"EID6ee98541-0175-1000-a5ac-a147b32ab8bd"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98735-0175-1000-44e3-1966cbec63ab","parent":{"ref":"EID6ee98541-0175-1000-a5ac-a147b32ab8bd"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee98735-0175-1000-18a9-7c4d18af822e","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee98541-0175-1000-a5ac-a147b32ab8bd"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:13:19Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDd3c316e7-b906-4795-930c-8ad4f3af8ed6"},{"ref":"EID40cf9e6f-e0ab-47aa-b165-39bfc8752c3c"},{"ref":"EID374394b0-7bd9-4335-8c46-419f4ebebb8a"}]},"parent":{"ref":"EID6ee98541-0175-1000-0e47-193678ad6f9a"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:13:19Z","duration":413,"status":"FAILED"}]},"parent":{"ref":"EID6ee96638-0175-1000-3616-6e5c864236c6"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:13:19Z","duration":501,"status":"FAILED"}]},"parent":{"ref":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:13:11Z","duration":8446,"status":"FAILED"},{"id":"EID6ee98736-0175-1000-c854-2ba202a593d6","testCaseResults":{"TestCaseResult":[{"id":"EID6ee98736-0175-1000-180b-58c56f688554","testStepResults":{"TestStepResult":[{"id":"EID6ee9873e-0175-1000-5a78-a88f7d9752b4","parent":{"ref":"EID6ee98736-0175-1000-180b-58c56f688554"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:13:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee9873e-0175-1000-daa0-5f187e072b70","parent":{"ref":"EID6ee98736-0175-1000-180b-58c56f688554"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:13:19Z","duration":273,"status":"PASSED"},{"id":"EID6ee9873e-0175-1000-7a76-113d0b30560d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98aac-0175-1000-5074-92a2bdf7564d","parent":{"ref":"EID6ee9873e-0175-1000-7a76-113d0b30560d"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98aac-0175-1000-33c6-e8523847b16c","parent":{"ref":"EID6ee9873e-0175-1000-7a76-113d0b30560d"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98aac-0175-1000-a4f9-9b1d2a34de11","parent":{"ref":"EID6ee9873e-0175-1000-7a76-113d0b30560d"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc19706eb-c406-44fd-b80a-90ffccecc173"},{"ref":"EIDb3e7fa20-d7a7-4823-9cac-28d06bec1fb5"},{"ref":"EIDfc59b8ea-4d13-48e2-84ae-c5048e8716c2"}]},"parent":{"ref":"EID6ee98736-0175-1000-180b-58c56f688554"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:13:19Z","duration":726,"status":"PASSED"},{"id":"EID6ee98aad-0175-1000-b239-aa662c3809db","attachments":{"attachment":{"ref":"EID0e83ce8d-447d-4728-b0bb-674a02b44660"}},"parent":{"ref":"EID6ee98736-0175-1000-180b-58c56f688554"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98aba-0175-1000-17cd-e70dcff974a1","parent":{"ref":"EID6ee98736-0175-1000-180b-58c56f688554"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:13:20Z","duration":12,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:13:19Z","duration":913,"status":"PASSED"},{"id":"EID6ee98ac7-0175-1000-6e76-778d6093c1f0","testStepResults":{"TestStepResult":[{"id":"EID6ee98ac7-0175-1000-1faf-018082dadb44","parent":{"ref":"EID6ee98ac7-0175-1000-6e76-778d6093c1f0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:13:20Z","duration":146,"status":"PASSED"},{"id":"EID6ee98ac7-0175-1000-ae3d-42351d21620d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98b91-0175-1000-114f-0ef87ce44e86","parent":{"ref":"EID6ee98ac7-0175-1000-ae3d-42351d21620d"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98b91-0175-1000-b457-9731e5ffc0e2","parent":{"ref":"EID6ee98ac7-0175-1000-ae3d-42351d21620d"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98b91-0175-1000-52d0-a59ef6804c5e","parent":{"ref":"EID6ee98ac7-0175-1000-ae3d-42351d21620d"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98b91-0175-1000-5856-531689c5b036","parent":{"ref":"EID6ee98ac7-0175-1000-ae3d-42351d21620d"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee98b91-0175-1000-112b-74c4c7b61893","parent":{"ref":"EID6ee98ac7-0175-1000-ae3d-42351d21620d"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:13:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb4bcf95b-371b-40bd-8cce-4c7ca63f923b"},{"ref":"EIDa259d6a7-78d4-4ea2-ad04-021c2791c6ca"},{"ref":"EIDc15acc3f-5ccd-440e-9921-a693eb2618b7"}]},"parent":{"ref":"EID6ee98ac7-0175-1000-6e76-778d6093c1f0"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:13:20Z","duration":103,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:13:20Z","duration":202,"status":"PASSED"},{"id":"EID6ee98b98-0175-1000-b6e4-d8c6a06931e7","testStepResults":{"TestStepResult":[{"id":"EID6ee98b98-0175-1000-59ef-6f872e90a35a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98d00-0175-1000-f600-9d4abdf6792f","parent":{"ref":"EID6ee98b98-0175-1000-59ef-6f872e90a35a"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98d00-0175-1000-4103-6ecd0bbab644","parent":{"ref":"EID6ee98b98-0175-1000-59ef-6f872e90a35a"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98d00-0175-1000-7dfd-1ce48ddf3c28","parent":{"ref":"EID6ee98b98-0175-1000-59ef-6f872e90a35a"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0e6066c3-e77f-4b01-8ce8-302417498bac"},{"ref":"EIDfe9c0c41-ed70-4305-adef-1878bec0b75b"},{"ref":"EIDd3f48cca-3189-4610-afb6-8f8675c376c5"}]},"parent":{"ref":"EID6ee98b98-0175-1000-b6e4-d8c6a06931e7"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:13:20Z","duration":292,"status":"PASSED"},{"id":"EID6ee98d00-0175-1000-6257-7e7990b68b56","attachments":{"attachment":{"ref":"EIDbdb7327e-f54d-4605-8aef-1c20afce3433"}},"parent":{"ref":"EID6ee98b98-0175-1000-b6e4-d8c6a06931e7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98d3a-0175-1000-a629-8d64712f1991","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98ed1-0175-1000-1a52-49df28d53279","parent":{"ref":"EID6ee98d3a-0175-1000-a629-8d64712f1991"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98ed1-0175-1000-5b6e-e1b90b7a16d2","parent":{"ref":"EID6ee98d3a-0175-1000-a629-8d64712f1991"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98ed1-0175-1000-7044-5b6fa9746914","parent":{"ref":"EID6ee98d3a-0175-1000-a629-8d64712f1991"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98ed1-0175-1000-3d91-f2c9a4267a3d","parent":{"ref":"EID6ee98d3a-0175-1000-a629-8d64712f1991"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98ed1-0175-1000-0ba3-23b8c54fc7f7","parent":{"ref":"EID6ee98d3a-0175-1000-a629-8d64712f1991"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5ed0842b-2ea6-4911-aa7b-d8caf01ee7f5"},{"ref":"EID971d2bc1-76b9-4a9e-82d2-44182cecc51f"},{"ref":"EID3ff96cf5-b9b3-4c1f-963e-429369762709"}]},"parent":{"ref":"EID6ee98b98-0175-1000-b6e4-d8c6a06931e7"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:13:21Z","duration":284,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:13:20Z","duration":833,"status":"PASSED"},{"id":"EID6ee98ed9-0175-1000-ae2e-e18524038596","testStepResults":{"TestStepResult":[{"id":"EID6ee98ed9-0175-1000-0278-fb91b41c6b7a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee98fc0-0175-1000-4040-06384632d4d5","parent":{"ref":"EID6ee98ed9-0175-1000-0278-fb91b41c6b7a"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98fc0-0175-1000-ac96-9590b97479e5","parent":{"ref":"EID6ee98ed9-0175-1000-0278-fb91b41c6b7a"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98fc0-0175-1000-6154-011fd7826529","parent":{"ref":"EID6ee98ed9-0175-1000-0278-fb91b41c6b7a"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee98fc0-0175-1000-6ee5-92bf168a2c12","parent":{"ref":"EID6ee98ed9-0175-1000-0278-fb91b41c6b7a"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:13:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa259d82e-7118-42eb-a0c6-c3aa22535090"},{"ref":"EID012c0e02-eea2-4f84-aa71-a61e12ce5480"},{"ref":"EID9600893e-0e51-4d2f-9af8-a1bb49370688"}]},"parent":{"ref":"EID6ee98ed9-0175-1000-ae2e-e18524038596"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:13:21Z","duration":155,"status":"PASSED"},{"id":"EID6ee98fc0-0175-1000-4bbb-c03f64b18840","attachments":{"attachment":{"ref":"EID453c88b8-14a5-46a1-8152-b0db4448a44c"}},"parent":{"ref":"EID6ee98ed9-0175-1000-ae2e-e18524038596"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:13:21Z","duration":9,"status":"PASSED"},{"id":"EID6ee98fd5-0175-1000-1c03-2e8f3f703c51","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee990ad-0175-1000-bc32-8e71cefb47c5","parent":{"ref":"EID6ee98fd5-0175-1000-1c03-2e8f3f703c51"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee990ad-0175-1000-be45-360b513fdf8b","parent":{"ref":"EID6ee98fd5-0175-1000-1c03-2e8f3f703c51"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID393c257c-23f0-4a88-b71e-5e8813bf452c"},{"ref":"EID4010a32a-de32-4529-861f-72da4d5f2911"}]},"parent":{"ref":"EID6ee98ed9-0175-1000-ae2e-e18524038596"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:13:21Z","duration":212,"status":"PASSED"},{"id":"EID6ee990ad-0175-1000-430f-7fc1fae4fd2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee992f8-0175-1000-82ba-be4f9042aca9","parent":{"ref":"EID6ee990ad-0175-1000-430f-7fc1fae4fd2a"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee992f8-0175-1000-aa30-cefa47f821a6","parent":{"ref":"EID6ee990ad-0175-1000-430f-7fc1fae4fd2a"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee992f8-0175-1000-dfdd-4e3b96c91636","parent":{"ref":"EID6ee990ad-0175-1000-430f-7fc1fae4fd2a"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee992f8-0175-1000-f2c7-007814fa9a81","parent":{"ref":"EID6ee990ad-0175-1000-430f-7fc1fae4fd2a"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:13:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5826254b-171b-4b50-9804-e328090b8340"},{"ref":"EIDe7937a55-433e-41de-8d83-a7dfd69391e2"},{"ref":"EID0ba86731-74fe-4e43-a752-f3af9ca3b22d"}]},"parent":{"ref":"EID6ee98ed9-0175-1000-ae2e-e18524038596"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:13:22Z","duration":518,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:13:21Z","duration":1064,"status":"PASSED"},{"id":"EID6ee99301-0175-1000-bcbe-6f652cbc5a42","testStepResults":{"TestStepResult":{"id":"EID6ee99301-0175-1000-1a2e-de4823a9058f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99474-0175-1000-49c8-da4bf7850c8a","parent":{"ref":"EID6ee99301-0175-1000-1a2e-de4823a9058f"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee99474-0175-1000-b066-a16ddd2ac9f9","parent":{"ref":"EID6ee99301-0175-1000-1a2e-de4823a9058f"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee99474-0175-1000-d9eb-b1d22fcd9ed5","parent":{"ref":"EID6ee99301-0175-1000-1a2e-de4823a9058f"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4ef47b6d-ff92-414f-99d4-c4727db20d3b"},{"ref":"EIDf9b6506e-b7d2-4bce-a521-9712caffd526"},{"ref":"EID1b8879a6-dfa3-449a-a71d-07850fdeff90"}]},"parent":{"ref":"EID6ee99301-0175-1000-bcbe-6f652cbc5a42"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:13:22Z","duration":300,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:13:22Z","duration":371,"status":"PASSED"},{"id":"EID6ee99474-0175-1000-769b-dc81edaff142","testStepResults":{"TestStepResult":{"id":"EID6ee99474-0175-1000-7d79-81e9d13a8ba0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee994e6-0175-1000-ae14-fb8256250c89","parent":{"ref":"EID6ee99474-0175-1000-7d79-81e9d13a8ba0"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee994e6-0175-1000-7e6b-f58eada806fd","parent":{"ref":"EID6ee99474-0175-1000-7d79-81e9d13a8ba0"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee994e6-0175-1000-8092-6ce35ee9aa0b","parent":{"ref":"EID6ee99474-0175-1000-7d79-81e9d13a8ba0"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd905f860-2fa4-4cb6-ab5a-ba56116709f1"},{"ref":"EID759c4a28-fb85-48cd-819e-d709f9bab41d"},{"ref":"EID9e906da6-3a2d-4446-97d0-52f5af985b2a"}]},"parent":{"ref":"EID6ee99474-0175-1000-769b-dc81edaff142"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:13:23Z","duration":50,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:13:23Z","duration":124,"status":"PASSED"},{"id":"EID6ee994f0-0175-1000-7358-77f7fc1759b7","testStepResults":{"TestStepResult":{"id":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9963a-0175-1000-2a71-350a51744aba","parent":{"ref":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee9963a-0175-1000-0996-843858c5a936","parent":{"ref":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee9963a-0175-1000-a3b1-2d0e00fd3ab1","parent":{"ref":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee9963a-0175-1000-19cd-16a932f62e21","parent":{"ref":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee9963a-0175-1000-1809-4fa3219ed5f0","parent":{"ref":"EID6ee994f1-0175-1000-5870-c7e8fa3a1eec"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2a585700-bc7c-4f92-a226-a1ff56eeb594"},{"ref":"EIDfdfac563-52a8-4c18-b13b-df51abcde5ce"},{"ref":"EID67c48081-0fdc-4773-a376-3487acc2d980"}]},"parent":{"ref":"EID6ee994f0-0175-1000-7358-77f7fc1759b7"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:13:23Z","duration":193,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:13:23Z","duration":331,"status":"PASSED"},{"id":"EID6ee9963b-0175-1000-20ce-876095ff1894","testStepResults":{"TestStepResult":{"id":"EID6ee9963b-0175-1000-3e4f-d1f67f3e8095","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99782-0175-1000-4b4d-d51fa11d1bec","parent":{"ref":"EID6ee9963b-0175-1000-3e4f-d1f67f3e8095"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee99782-0175-1000-ad12-342e90fce0e9","parent":{"ref":"EID6ee9963b-0175-1000-3e4f-d1f67f3e8095"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee99782-0175-1000-49d1-b9d655c8defb","parent":{"ref":"EID6ee9963b-0175-1000-3e4f-d1f67f3e8095"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:13:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID57d990fc-a0f0-4721-899a-d182398982ff"},{"ref":"EID1d9b4c79-a9cd-41a1-a1c9-60ffb1ce789c"},{"ref":"EIDfdecd752-f84f-4ab5-91f6-fd67bfe1d09a"}]},"parent":{"ref":"EID6ee9963b-0175-1000-20ce-876095ff1894"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:13:23Z","duration":273,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:13:23Z","duration":327,"status":"PASSED"},{"id":"EID6ee99782-0175-1000-257d-aa2dca2c2c0b","testStepResults":{"TestStepResult":{"id":"EID6ee99782-0175-1000-f19e-a47b793ad352","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee998b9-0175-1000-7698-db75c94c18cf","parent":{"ref":"EID6ee99782-0175-1000-f19e-a47b793ad352"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee998b9-0175-1000-3c65-fc1f16bebcc3","parent":{"ref":"EID6ee99782-0175-1000-f19e-a47b793ad352"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee998b9-0175-1000-6c45-2e68b1179ce3","parent":{"ref":"EID6ee99782-0175-1000-f19e-a47b793ad352"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3d61cee7-a16e-4677-9fab-1bfa2d1358bd"},{"ref":"EIDa39c8124-236f-44d9-b633-4895977ac5f3"},{"ref":"EIDb6c7fb91-5358-4a91-ad03-f3992be4b43b"}]},"parent":{"ref":"EID6ee99782-0175-1000-257d-aa2dca2c2c0b"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:13:23Z","duration":242,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:13:23Z","duration":328,"status":"PASSED"},{"id":"EID6ee998ca-0175-1000-203e-003fcd39ad21","testStepResults":{"TestStepResult":{"id":"EID6ee998ca-0175-1000-422d-12b569ced833","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99a08-0175-1000-7dc6-da5b0f2d7849","parent":{"ref":"EID6ee998ca-0175-1000-422d-12b569ced833"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99a08-0175-1000-6b27-ff0e56a9d28e","parent":{"ref":"EID6ee998ca-0175-1000-422d-12b569ced833"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99a08-0175-1000-8396-b4c577b0e466","parent":{"ref":"EID6ee998ca-0175-1000-422d-12b569ced833"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99a08-0175-1000-30f4-161ccb06ef89","parent":{"ref":"EID6ee998ca-0175-1000-422d-12b569ced833"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa122b725-7b3c-4fad-a544-07eeed366a1d"},{"ref":"EID637e7d8b-7d12-4ad2-a52b-05c52b959893"},{"ref":"EID0d439692-5b11-45c5-ac82-702176dc0b98"}]},"parent":{"ref":"EID6ee998ca-0175-1000-203e-003fcd39ad21"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:13:24Z","duration":246,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:13:24Z","duration":318,"status":"PASSED"},{"id":"EID6ee99a08-0175-1000-dd4f-eaba70841a6f","testStepResults":{"TestStepResult":{"id":"EID6ee99a08-0175-1000-f9b0-a6b6f6b23ca3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99b78-0175-1000-9f61-a5b581dd1af4","parent":{"ref":"EID6ee99a08-0175-1000-f9b0-a6b6f6b23ca3"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99b78-0175-1000-8f83-fb5236d0fda9","parent":{"ref":"EID6ee99a08-0175-1000-f9b0-a6b6f6b23ca3"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99b78-0175-1000-7fa4-7c02ac003b1a","parent":{"ref":"EID6ee99a08-0175-1000-f9b0-a6b6f6b23ca3"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99b78-0175-1000-fe8a-2cb47bcf1b5c","parent":{"ref":"EID6ee99a08-0175-1000-f9b0-a6b6f6b23ca3"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7690fa0b-72e9-41a9-b1b4-c6e2f8181cb4"},{"ref":"EID264d8150-e0ee-499d-91b9-6984f2b5be34"},{"ref":"EID9d7ad45b-783a-4972-be5b-725c199e23cb"}]},"parent":{"ref":"EID6ee99a08-0175-1000-dd4f-eaba70841a6f"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:13:24Z","duration":210,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:13:24Z","duration":368,"status":"PASSED"},{"id":"EID6ee99b80-0175-1000-c409-e4934974ede4","testStepResults":{"TestStepResult":[{"id":"EID6ee99b80-0175-1000-d4d1-ebec6a625850","parent":{"ref":"EID6ee99b80-0175-1000-c409-e4934974ede4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:13:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee99b80-0175-1000-acae-940edee75db3","parent":{"ref":"EID6ee99b80-0175-1000-c409-e4934974ede4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:13:24Z","duration":191,"status":"PASSED"},{"id":"EID6ee99b80-0175-1000-5307-7785d0917016","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99c0b-0175-1000-9b0d-172f5fcb9a0f","parent":{"ref":"EID6ee99b80-0175-1000-5307-7785d0917016"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99c0b-0175-1000-69bd-2ff925eb849d","parent":{"ref":"EID6ee99b80-0175-1000-5307-7785d0917016"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99c0b-0175-1000-060f-3e4c44df5da7","parent":{"ref":"EID6ee99b80-0175-1000-5307-7785d0917016"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99c0b-0175-1000-ea44-7f63e9fe7dd5","parent":{"ref":"EID6ee99b80-0175-1000-5307-7785d0917016"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID044b3c16-172f-4440-aa24-fc0888adde1e"},{"ref":"EIDf59a514f-81e9-4f74-b415-17fffc53b3b7"},{"ref":"EIDf14916e1-fa93-47f6-bb85-9fd94a06802b"}]},"parent":{"ref":"EID6ee99b80-0175-1000-c409-e4934974ede4"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:13:24Z","duration":46,"status":"PASSED"},{"id":"EID6ee99c0b-0175-1000-6f92-2e3217f3b096","attachments":{"attachment":{"ref":"EID774e01a0-fbfa-476d-b0f8-46d1a85f8830"}},"parent":{"ref":"EID6ee99b80-0175-1000-c409-e4934974ede4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:13:25Z","duration":1,"status":"PASSED"},{"id":"EID6ee99c3a-0175-1000-c201-087883e13f94","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee99f0d-0175-1000-24da-2a3b0f37eae7","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-474b-50b8a390d9bd","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-05b0-6b97fdd3db5b","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-de97-59e1502e169e","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-deb6-99f148371669","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-90e6-dea3a71b0b9a","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-e820-b930fc5fb185","parent":{"ref":"EID6ee99c3a-0175-1000-c201-087883e13f94"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID86d995d7-3544-4c66-a51d-9d1b6761444c"},{"ref":"EIDc56942b8-278e-473d-9abc-30b8ab1caad8"},{"ref":"EIDdc397680-d4f8-4173-a0b7-a19273edb014"}]},"parent":{"ref":"EID6ee99b80-0175-1000-c409-e4934974ede4"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:13:25Z","duration":636,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:13:24Z","duration":909,"status":"PASSED"},{"id":"EID6ee99f0d-0175-1000-88d6-26989dce9007","testStepResults":{"TestStepResult":[{"id":"EID6ee99f0d-0175-1000-9bbf-a09a79baeea5","parent":{"ref":"EID6ee99f0d-0175-1000-88d6-26989dce9007"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:13:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee99f0e-0175-1000-fd0d-a575c52dbe59","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a002-0175-1000-9153-4f1ecd669c00","parent":{"ref":"EID6ee99f0e-0175-1000-fd0d-a575c52dbe59"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a002-0175-1000-74d1-d97e6799e37f","parent":{"ref":"EID6ee99f0e-0175-1000-fd0d-a575c52dbe59"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a002-0175-1000-37bd-b0f1a6c22c18","parent":{"ref":"EID6ee99f0e-0175-1000-fd0d-a575c52dbe59"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a002-0175-1000-e10e-1d3854e3808d","parent":{"ref":"EID6ee99f0e-0175-1000-fd0d-a575c52dbe59"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID657035de-5ffe-4fde-823c-380ee05521e8"},{"ref":"EID31fa60c7-1320-482a-ab28-3c22c5c9a996"},{"ref":"EID63e67b47-6fa6-4728-8d18-5882245f7d94"}]},"parent":{"ref":"EID6ee99f0d-0175-1000-88d6-26989dce9007"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:13:25Z","duration":141,"status":"PASSED"},{"id":"EID6ee9a002-0175-1000-ba23-aa5a69aac9fa","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee9a014-0175-1000-f059-69083d2ab3ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a0fc-0175-1000-7f29-e0a56b5ebd4e","parent":{"ref":"EID6ee9a014-0175-1000-f059-69083d2ab3ca"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a0fc-0175-1000-9739-a2821919c6dc","parent":{"ref":"EID6ee9a014-0175-1000-f059-69083d2ab3ca"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a0fc-0175-1000-a8a3-99be1cdc1422","parent":{"ref":"EID6ee9a014-0175-1000-f059-69083d2ab3ca"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8e23b77d-7ce5-49d9-8dc9-56b6c860eea7"},{"ref":"EID67eb4489-d314-4296-9df7-2942898bce58"},{"ref":"EIDfb975317-e1fa-4b0b-8091-08e939d8719a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:13:26Z","duration":147,"status":"PASSED"},{"id":"EID6ee9a0fe-0175-1000-7585-6cf19bcbfc2c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a1ec-0175-1000-850b-6c725d67457a","parent":{"ref":"EID6ee9a0fe-0175-1000-7585-6cf19bcbfc2c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a1ec-0175-1000-f4f4-d41562be33b3","parent":{"ref":"EID6ee9a0fe-0175-1000-7585-6cf19bcbfc2c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a1ec-0175-1000-daca-18d86e393b97","parent":{"ref":"EID6ee9a0fe-0175-1000-7585-6cf19bcbfc2c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID494b84ef-6a74-4fe7-8773-54873daa2c8b"},{"ref":"EID8e52218c-5f6b-417d-9f14-ee26a6e538ac"},{"ref":"EID4d336411-29ac-4845-afbf-096280d5d9af"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:13:26Z","duration":151,"status":"PASSED"},{"id":"EID6ee9a1ed-0175-1000-ca5f-ba21327257d8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a283-0175-1000-7957-e5b091f0e276","parent":{"ref":"EID6ee9a1ed-0175-1000-ca5f-ba21327257d8"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a283-0175-1000-a03c-5f4852499678","parent":{"ref":"EID6ee9a1ed-0175-1000-ca5f-ba21327257d8"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a283-0175-1000-b1c4-e78889c27be8","parent":{"ref":"EID6ee9a1ed-0175-1000-ca5f-ba21327257d8"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:13:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2535a47c-ff28-4d96-a4c9-be53ef40691c"},{"ref":"EIDca869ad1-f275-4283-8f76-08dcc537475d"},{"ref":"EID8dea2bc1-fb88-47a5-931f-1020f267eecf"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:13:26Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6ee99f0d-0175-1000-88d6-26989dce9007"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:13:26Z","duration":642,"status":"PASSED"},{"id":"EID6ee9a284-0175-1000-00ce-60611f39429a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a58f-0175-1000-e293-7bc9c7adedc4","parent":{"ref":"EID6ee9a284-0175-1000-00ce-60611f39429a"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a58f-0175-1000-6ee6-fc226c3414eb","parent":{"ref":"EID6ee9a284-0175-1000-00ce-60611f39429a"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a58f-0175-1000-65a4-d32e94323568","parent":{"ref":"EID6ee9a284-0175-1000-00ce-60611f39429a"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a58f-0175-1000-76c9-1684ab8fb150","parent":{"ref":"EID6ee9a284-0175-1000-00ce-60611f39429a"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID445b5b77-432c-4ee7-bcec-2d1d25b46d28"},{"ref":"EIDada439ab-c26b-4e8b-85be-93451fa2d617"},{"ref":"EID1c18c029-0722-43c2-ac63-346c84ac677e"}]},"parent":{"ref":"EID6ee99f0d-0175-1000-88d6-26989dce9007"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:13:26Z","duration":719,"status":"PASSED"}]},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:13:25Z","duration":1666,"status":"PASSED"},{"id":"EID6ee9a58f-0175-1000-54f8-1e89614e85ae","testStepResults":{"TestStepResult":{"id":"EID6ee9a58f-0175-1000-0b75-4925043152ce","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a729-0175-1000-f6bf-f3bd4803b77f","parent":{"ref":"EID6ee9a58f-0175-1000-0b75-4925043152ce"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a729-0175-1000-8c65-7f257e146e7d","parent":{"ref":"EID6ee9a58f-0175-1000-0b75-4925043152ce"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a729-0175-1000-77d8-a1a7ff0d555f","parent":{"ref":"EID6ee9a58f-0175-1000-0b75-4925043152ce"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a729-0175-1000-3462-3e6266cf96b3","parent":{"ref":"EID6ee9a58f-0175-1000-0b75-4925043152ce"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:13:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5013a1af-50c0-45d4-b354-08900d6dc3ea"},{"ref":"EID1cb53f73-2c15-4168-b7ec-cbbb9b63938d"},{"ref":"EID9fe41c7e-9431-436a-a696-9f47ed441fb0"}]},"parent":{"ref":"EID6ee9a58f-0175-1000-54f8-1e89614e85ae"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:13:27Z","duration":350,"status":"PASSED"}},"parent":{"ref":"EID6ee98736-0175-1000-c854-2ba202a593d6"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:13:27Z","duration":410,"status":"PASSED"}]},"parent":{"ref":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:13:19Z","duration":8180,"status":"PASSED"},{"id":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b","testCaseResults":{"TestCaseResult":[{"id":"EID6ee9a72a-0175-1000-5cc6-cfec14e1ec62","testStepResults":{"TestStepResult":[{"id":"EID6ee9a72a-0175-1000-4dfa-c73550c5ba64","parent":{"ref":"EID6ee9a72a-0175-1000-5cc6-cfec14e1ec62"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:13:27Z","duration":500,"status":"PASSED"},{"id":"EID6ee9a72a-0175-1000-1ffa-fbb0961bc2be","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a8b0-0175-1000-d01f-24a52ad7abdb","parent":{"ref":"EID6ee9a72a-0175-1000-1ffa-fbb0961bc2be"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a8b0-0175-1000-3f20-4b7b757b5922","parent":{"ref":"EID6ee9a72a-0175-1000-1ffa-fbb0961bc2be"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a8b0-0175-1000-88bb-29516d1f0ace","parent":{"ref":"EID6ee9a72a-0175-1000-1ffa-fbb0961bc2be"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8acc3917-0fcc-4342-aafd-d8087df33762"},{"ref":"EIDf2fc1f46-f83d-457e-b242-418c96adabf8"},{"ref":"EID4ad176bf-ec3d-4792-ac68-bcfea579691d"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-5cc6-cfec14e1ec62"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:13:27Z","duration":255,"status":"PASSED"},{"id":"EID6ee9a8b0-0175-1000-9c5c-091ab700cf34","attachments":{"attachment":{"ref":"EID918228bc-e82a-46e7-97e7-69393ffad00b"}},"parent":{"ref":"EID6ee9a72a-0175-1000-5cc6-cfec14e1ec62"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:13:28Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:13:27Z","duration":403,"status":"PASSED"},{"id":"EID6ee9a8bd-0175-1000-5dbf-dce23822c562","testStepResults":{"TestStepResult":[{"id":"EID6ee9a8bd-0175-1000-ac06-6be5ea8ab746","parent":{"ref":"EID6ee9a8bd-0175-1000-5dbf-dce23822c562"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:13:28Z","duration":500,"status":"PASSED"},{"id":"EID6ee9a8bd-0175-1000-b200-a8b24179a1b3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9a961-0175-1000-369a-a95febfeeaff","parent":{"ref":"EID6ee9a8bd-0175-1000-b200-a8b24179a1b3"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a961-0175-1000-24d1-399f4a57dd18","parent":{"ref":"EID6ee9a8bd-0175-1000-b200-a8b24179a1b3"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a961-0175-1000-daca-dd369519863a","parent":{"ref":"EID6ee9a8bd-0175-1000-b200-a8b24179a1b3"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a961-0175-1000-3ebf-2b2188c0fbab","parent":{"ref":"EID6ee9a8bd-0175-1000-b200-a8b24179a1b3"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda16e6be-0e58-41cb-a412-5950ea06a6e6"},{"ref":"EID9c512d4f-6196-4c88-8959-6d6afeaa2510"},{"ref":"EIDeb4d838e-d660-4873-ae55-00052c745d63"}]},"parent":{"ref":"EID6ee9a8bd-0175-1000-5dbf-dce23822c562"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:13:28Z","duration":85,"status":"PASSED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:13:28Z","duration":164,"status":"PASSED"},{"id":"EID6ee9a96a-0175-1000-5dd5-fc7276762c2d","testStepResults":{"TestStepResult":[{"id":"EID6ee9a96a-0175-1000-83d2-cf9f26888c08","parent":{"ref":"EID6ee9a96a-0175-1000-5dd5-fc7276762c2d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:13:28Z","duration":500,"status":"PASSED"},{"id":"EID6ee9a96a-0175-1000-df6d-47ea3005face","parent":{"ref":"EID6ee9a96a-0175-1000-5dd5-fc7276762c2d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9aa38-0175-1000-0959-f1f86766d071","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-e742-6c7929831580","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-d8ea-eb6ebab6c7b5","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-16c3-90b7457badce","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-643e-0bcba2c90da1","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-5152-dd1a44fbeb93","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-2ef7-08ab9e4f7609","parent":{"ref":"EID6ee9a96a-0175-1000-2ea3-a9fcbab4e353"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:13:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5f8d3d29-7837-4fc3-923e-f0cc6eac867d"},{"ref":"EIDc72fc7a7-0a8c-4817-a128-b3e784c865e5"},{"ref":"EID6566d411-c62e-4f39-838f-0438d7eb3e41"}]},"parent":{"ref":"EID6ee9a96a-0175-1000-5dd5-fc7276762c2d"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:13:28Z","duration":87,"status":"PASSED"},{"id":"EID6ee9aa38-0175-1000-9669-6b540b8f873f","invokedTests":{"":null,"TestStepResult":{"id":"EID6ee9aa5d-0175-1000-634a-2082b12a7728","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9aeb4-0175-1000-fd0a-9c5d54b7935d","parent":{"ref":"EID6ee9aa5d-0175-1000-634a-2082b12a7728"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:13:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aeb4-0175-1000-5a3f-2ba77b6f6cbb","parent":{"ref":"EID6ee9aa5d-0175-1000-634a-2082b12a7728"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:13:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aeb4-0175-1000-ee8e-2d654352ab10","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"parent":{"ref":"EID6ee9aa5d-0175-1000-634a-2082b12a7728"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:13:29Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa9279ca3-5a5f-436f-9177-960c1e1fbf35"},{"ref":"EID65cd17c5-7c4a-474d-8798-4fd628c9cf77"},{"ref":"EID0b1b3fd4-002f-489a-bbbf-0e2210d90816"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:13:28Z","duration":798,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EID0a70e03d-d916-441d-98f9-c5ebd7db6ada"},{"ref":"EID2e7629fe-4002-4407-a48d-74a022aaa3f5"}]},"parent":{"ref":"EID6ee9a96a-0175-1000-5dd5-fc7276762c2d"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:13:28Z","duration":1219,"status":"FAILED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:13:28Z","duration":1495,"status":"FAILED"},{"id":"EID6ee9af41-0175-1000-2429-f07e7ade7236","testStepResults":{"TestStepResult":[{"id":"EID6ee9af41-0175-1000-8e45-044011b3439a","parent":{"ref":"EID6ee9af41-0175-1000-2429-f07e7ade7236"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:13:29Z","duration":500,"status":"PASSED"},{"id":"EID6ee9af41-0175-1000-f566-1c7846e74dc5","parent":{"ref":"EID6ee9af41-0175-1000-2429-f07e7ade7236"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:13:29Z","duration":0,"status":"PASSED"},{"id":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9aff6-0175-1000-7c29-cdcdb31ed5cf","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-095d-40ff7408baaf","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-4ad5-ea211884ce4a","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-e424-1633760785ae","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-0fbc-8b354ca2d9ae","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-fbaf-253fccaf0a30","parent":{"ref":"EID6ee9af42-0175-1000-3e58-e4ed9058cf50"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc35ddf0f-e3df-43cb-a5bd-f9ec8a3340a0"},{"ref":"EID6f826440-4b3a-411f-abe4-59a674b061f0"},{"ref":"EIDa534be63-fd79-4a81-9504-b51d99b08282"}]},"parent":{"ref":"EID6ee9af41-0175-1000-2429-f07e7ade7236"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:13:29Z","duration":86,"status":"PASSED"},{"id":"EID6ee9aff6-0175-1000-ef5c-55e71ddfb6db","parent":{"ref":"EID6ee9af41-0175-1000-2429-f07e7ade7236"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:13:30Z","duration":30,"status":"PASSED"},{"id":"EID6ee9b014-0175-1000-346c-23e4ef7dc68a","parent":{"ref":"EID6ee9af41-0175-1000-2429-f07e7ade7236"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:13:30Z","duration":0,"status":"UNDEFINED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:13:29Z","duration":211,"status":"UNDEFINED"},{"id":"EID6ee9b015-0175-1000-e585-cc5d182df939","testStepResults":{"TestStepResult":[{"id":"EID6ee9b015-0175-1000-db39-7c3d7371cc42","parent":{"ref":"EID6ee9b015-0175-1000-e585-cc5d182df939"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:13:30Z","duration":500,"status":"PASSED"},{"id":"EID6ee9b015-0175-1000-5f47-0f7dcd2b9f20","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"attachments":{"attachment":[{"ref":"EIDeb675fde-a3e1-4b57-8c88-5eaff9678bbb"},{"ref":"EID3243da27-3865-4681-b049-295fe61e942c"},{"ref":"EID9af8cdcd-f718-48b8-a46e-7b9df28c6bf0"},{"ref":"EIDfc5c83b2-8504-4ed9-bb94-93ef3f924b6e"},{"ref":"EID6fad85e4-176c-463c-8d0d-ad110f0dcc4e"},{"ref":"EIDa4e55b0d-e066-4c92-aa5a-a864b1a71edb"},{"ref":"EIDc56b05f7-396c-4d50-92ba-f5c80b38676b"},{"ref":"EIDaadc54af-a6c3-4571-b860-e53e0c82d1dd"},{"ref":"EID88a90059-3d3a-4b4f-8aeb-d7b1a2935e59"},{"ref":"EID08e0a2ff-aacd-44aa-a78b-e8ec82b85394"},{"ref":"EID5209c98f-27a7-44b0-8df7-55187b62faf9"},{"ref":"EID53545cf4-3e16-437d-8926-a259d27e26b1"},{"ref":"EID69655b58-fcb1-4d74-ac99-6aa753bbbe8f"},{"ref":"EID725bb9e6-3f83-4869-9826-c140da9e2082"},{"ref":"EIDf29128cf-bc58-42c8-8da8-0315543030e8"},{"ref":"EID166df74b-7fc0-4e05-987a-9f602935c881"},{"ref":"EIDd0f8a310-a502-44f0-a0d6-4ec05b79f337"},{"ref":"EIDfa65d32e-7b9a-4cdf-a70b-e7b18f2ba9d4"},{"ref":"EID1ca6f1db-e5ac-4bc0-b300-c649b93ba08b"}]},"parent":{"ref":"EID6ee9b015-0175-1000-e585-cc5d182df939"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:13:30Z","duration":6719,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:13:30Z","duration":7022,"status":"SKIPPED"},{"id":"EID6ee9cb84-0175-1000-1827-2d57915d5719","testStepResults":{"TestStepResult":[{"id":"EID6ee9cb8b-0175-1000-1c4d-c3a4ac3a2a7a","parent":{"ref":"EID6ee9cb84-0175-1000-1827-2d57915d5719"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:13:37Z","duration":501,"status":"PASSED"},{"id":"EID6ee9cb8c-0175-1000-860c-a107463f504c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9cc30-0175-1000-7536-0c8fc56d1fa7","parent":{"ref":"EID6ee9cb8c-0175-1000-860c-a107463f504c"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cc30-0175-1000-2a45-8af77d8a4215","parent":{"ref":"EID6ee9cb8c-0175-1000-860c-a107463f504c"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cc30-0175-1000-1038-d49e07a70ea0","parent":{"ref":"EID6ee9cb8c-0175-1000-860c-a107463f504c"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cc30-0175-1000-a275-25006ae87f77","parent":{"ref":"EID6ee9cb8c-0175-1000-860c-a107463f504c"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0a5d56b6-1604-4095-b08e-2346a6068a4c"},{"ref":"EID496dcc2f-f2b7-4b0a-b4cc-62e25aab9bab"},{"ref":"EIDa1a09a23-ed94-4cf2-9a52-e1964c5724a7"}]},"parent":{"ref":"EID6ee9cb84-0175-1000-1827-2d57915d5719"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:13:37Z","duration":85,"status":"PASSED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:13:37Z","duration":172,"status":"PASSED"},{"id":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e","testStepResults":{"TestStepResult":[{"id":"EID6ee9cc31-0175-1000-0c50-5cbf3cb4843b","parent":{"ref":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:13:37Z","duration":500,"status":"PASSED"},{"id":"EID6ee9cc31-0175-1000-b161-068fdbeeb27c","parent":{"ref":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cc31-0175-1000-1264-c660fe48d135","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9ccd0-0175-1000-70e6-94893111331b","parent":{"ref":"EID6ee9cc31-0175-1000-1264-c660fe48d135"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9ccd0-0175-1000-e1db-68c0b9bac8cb","parent":{"ref":"EID6ee9cc31-0175-1000-1264-c660fe48d135"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9ccd0-0175-1000-083b-46f63401df05","parent":{"ref":"EID6ee9cc31-0175-1000-1264-c660fe48d135"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9ccd0-0175-1000-2593-b6b54fc84fb7","parent":{"ref":"EID6ee9cc31-0175-1000-1264-c660fe48d135"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8ecfae78-e8d3-4838-8f15-6e65bec2762c"},{"ref":"EIDfc4489ba-25b8-4c9f-a1c5-ffe4b6a14eaf"},{"ref":"EIDbc12e88f-41e5-4867-8946-e01457b1a3e2"}]},"parent":{"ref":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:13:37Z","duration":89,"status":"PASSED"},{"id":"EID6ee9ccd1-0175-1000-8af1-1706610c4814","attachments":{"attachment":{"ref":"EID5c9380a7-9ad6-4818-8cff-594d50ac47a5"}},"parent":{"ref":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cce0-0175-1000-9be4-49a4baf8360b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee9cce5-0175-1000-4772-7bfcef2df9d4","parent":{"ref":"EID6ee9cce0-0175-1000-9be4-49a4baf8360b"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cce5-0175-1000-6b14-315c7469ac75","parent":{"ref":"EID6ee9cce0-0175-1000-9be4-49a4baf8360b"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee9cce5-0175-1000-2962-71270d423a67","parent":{"ref":"EID6ee9cce0-0175-1000-9be4-49a4baf8360b"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2eb01b6f-4b38-4a50-8f44-d366b833aa4c"},{"ref":"EIDda3da36a-90c7-48f5-a86a-901e250cf204"}]},"parent":{"ref":"EID6ee9cc30-0175-1000-f61a-d339751b8a5e"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:13:37Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee9a72a-0175-1000-b99f-3e76c3c22d3b"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:13:37Z","duration":181,"status":"PASSED"}]},"parent":{"ref":"EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:13:27Z","duration":9659,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID774e01a0-fbfa-476d-b0f8-46d1a85f8830","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID774e01a0-fbfa-476d-b0f8-46d1a85f8830"}},{"type":"GetParameter","id":"EID6566d411-c62e-4f39-838f-0438d7eb3e41","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDb06d05b5-154c-45a3-a8c1-d851fe49f1a7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDb06d05b5-154c-45a3-a8c1-d851fe49f1a7"}},{"type":"ServiceEndpoint","id":"EID6a50c33a-f359-4a18-868e-7734fdc6a900","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf2fc1f46-f83d-457e-b242-418c96adabf8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDf2fc1f46-f83d-457e-b242-418c96adabf8"}},{"type":"ServiceResponse","id":"EIDe4198276-405d-495a-8611-88bb492d6193","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDe4198276-405d-495a-8611-88bb492d6193"}},{"type":"GetParameter","id":"EIDeba7704b-4e78-47e1-a201-efada057e7cd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID637e7d8b-7d12-4ad2-a52b-05c52b959893","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID637e7d8b-7d12-4ad2-a52b-05c52b959893"}},{"type":"Message","id":"EID5c9380a7-9ad6-4818-8cff-594d50ac47a5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID5c9380a7-9ad6-4818-8cff-594d50ac47a5"}},{"type":"ServiceEndpoint","id":"EID7690fa0b-72e9-41a9-b1b4-c6e2f8181cb4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID9af8cdcd-f718-48b8-a46e-7b9df28c6bf0","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID9af8cdcd-f718-48b8-a46e-7b9df28c6bf0"}},{"type":"Message","id":"EIDaadc54af-a6c3-4571-b860-e53e0c82d1dd","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDaadc54af-a6c3-4571-b860-e53e0c82d1dd"}},{"type":"ServiceEndpoint","id":"EID657035de-5ffe-4fde-823c-380ee05521e8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID08e0a2ff-aacd-44aa-a78b-e8ec82b85394","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID08e0a2ff-aacd-44aa-a78b-e8ec82b85394"}},{"type":"GetParameter","id":"EID4ad176bf-ec3d-4792-ac68-bcfea579691d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID88a90059-3d3a-4b4f-8aeb-d7b1a2935e59","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID88a90059-3d3a-4b4f-8aeb-d7b1a2935e59"}},{"type":"Message","id":"EIDa4e55b0d-e066-4c92-aa5a-a864b1a71edb","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDa4e55b0d-e066-4c92-aa5a-a864b1a71edb"}},{"type":"Message","id":"EID1ca6f1db-e5ac-4bc0-b300-c649b93ba08b","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID1ca6f1db-e5ac-4bc0-b300-c649b93ba08b"}},{"type":"ServiceResponse","id":"EID6d65dae2-0a8d-4e75-befa-bac77a385869","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID6d65dae2-0a8d-4e75-befa-bac77a385869"}},{"type":"GetParameter","id":"EID48a5b751-ba72-4b58-9082-fe1075b81664","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID012c0e02-eea2-4f84-aa71-a61e12ce5480","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID012c0e02-eea2-4f84-aa71-a61e12ce5480"}},{"type":"ServiceResponse","id":"EID65cd17c5-7c4a-474d-8798-4fd628c9cf77","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID65cd17c5-7c4a-474d-8798-4fd628c9cf77"}},{"type":"GetParameter","id":"EIDeb4d838e-d660-4873-ae55-00052c745d63","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID66857e15-2562-43a7-abb7-87fe16b4bbc6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDfecb158a-e41f-48b3-a1e3-ec613fc81990","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfecb158a-e41f-48b3-a1e3-ec613fc81990"}},{"type":"Message","id":"EID68830de5-4ced-498a-8602-fc8cf5bbe58f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID68830de5-4ced-498a-8602-fc8cf5bbe58f"}},{"type":"Message","id":"EIDbd4e3c19-dbb3-4c3a-ae74-f41a994fb2f3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDbd4e3c19-dbb3-4c3a-ae74-f41a994fb2f3"}},{"type":"GetParameter","id":"EIDc15acc3f-5ccd-440e-9921-a693eb2618b7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID86d995d7-3544-4c66-a51d-9d1b6761444c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EIDd3f48cca-3189-4610-afb6-8f8675c376c5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EIDf4c4561a-03c0-4d6f-afaa-c26a0c73b8c5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDfa65d32e-7b9a-4cdf-a70b-e7b18f2ba9d4","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfa65d32e-7b9a-4cdf-a70b-e7b18f2ba9d4"}},{"type":"ServiceResponse","id":"EID40cf9e6f-e0ab-47aa-b165-39bfc8752c3c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID40cf9e6f-e0ab-47aa-b165-39bfc8752c3c"}},{"type":"GetParameter","id":"EID3ff96cf5-b9b3-4c1f-963e-429369762709","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EIDa534be63-fd79-4a81-9504-b51d99b08282","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID53545cf4-3e16-437d-8926-a259d27e26b1","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID53545cf4-3e16-437d-8926-a259d27e26b1"}},{"type":"ServiceResponse","id":"EIDe9f3d152-bbc1-4c24-8f92-d0c52a38027c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDe9f3d152-bbc1-4c24-8f92-d0c52a38027c"}},{"type":"ServiceEndpoint","id":"EID0e6066c3-e77f-4b01-8ce8-302417498bac","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EIDfd2dcf77-4711-49a4-9a78-2ec1bbba8a1e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0b1b3fd4-002f-489a-bbbf-0e2210d90816","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"ServiceEndpoint","id":"EID4ef47b6d-ff92-414f-99d4-c4727db20d3b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EID1cb53f73-2c15-4168-b7ec-cbbb9b63938d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID1cb53f73-2c15-4168-b7ec-cbbb9b63938d"}},{"type":"LogFile","id":"EID7c8f8af0-b790-42f3-8a80-2fed78ce5147","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID7c8f8af0-b790-42f3-8a80-2fed78ce5147"}},{"type":"ServiceResponse","id":"EIDfc72bf0a-ae4b-4932-b110-cd715fe33cdb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfc72bf0a-ae4b-4932-b110-cd715fe33cdb"}},{"type":"ServiceEndpoint","id":"EID988488d0-d320-41c7-a187-078a9bf65062","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDce7ea91c-c303-4f36-9a70-3c091c547e16","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDce7ea91c-c303-4f36-9a70-3c091c547e16"}},{"type":"Message","id":"EID11176a7d-72dc-42c0-8f47-a4a655c350e4","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID11176a7d-72dc-42c0-8f47-a4a655c350e4"}},{"type":"ServiceEndpoint","id":"EIDc19706eb-c406-44fd-b80a-90ffccecc173","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc56942b8-278e-473d-9abc-30b8ab1caad8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDc56942b8-278e-473d-9abc-30b8ab1caad8"}},{"type":"Message","id":"EIDf329fbdc-47e6-4c0d-b466-53c03e8a5385","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDf329fbdc-47e6-4c0d-b466-53c03e8a5385"}},{"type":"ServiceResponse","id":"EID2f2dbe14-4575-4743-9ec4-f148f7a09434","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID2f2dbe14-4575-4743-9ec4-f148f7a09434"}},{"type":"Message","id":"EIDeedfc7d3-d9a9-4994-8bf1-3dd7544815b1","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDeedfc7d3-d9a9-4994-8bf1-3dd7544815b1"}},{"type":"Message","id":"EID5813f820-6ead-44d5-95cf-fb66e602d9a0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID5813f820-6ead-44d5-95cf-fb66e602d9a0"}},{"type":"Message","id":"EID0d5ad8c9-09ea-45c7-a8a0-8059d61373fa","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID0d5ad8c9-09ea-45c7-a8a0-8059d61373fa"}},{"type":"Message","id":"EIDc56b05f7-396c-4d50-92ba-f5c80b38676b","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDc56b05f7-396c-4d50-92ba-f5c80b38676b"}},{"type":"Message","id":"EIDcd1118b5-37fc-4a3b-a3ab-56211972e872","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDcd1118b5-37fc-4a3b-a3ab-56211972e872"}},{"type":"GetParameter","id":"EID850fa7d1-a619-40a2-8999-c586a19334e4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID496dcc2f-f2b7-4b0a-b4cc-62e25aab9bab","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID496dcc2f-f2b7-4b0a-b4cc-62e25aab9bab"}},{"type":"GetParameter","id":"EID9600893e-0e51-4d2f-9af8-a1bb49370688","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDc7231a94-4bb9-4e79-bc24-5589fc176cfb","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDc7231a94-4bb9-4e79-bc24-5589fc176cfb"}},{"type":"ServiceResponse","id":"EIDada439ab-c26b-4e8b-85be-93451fa2d617","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDada439ab-c26b-4e8b-85be-93451fa2d617"}},{"type":"Message","id":"EID0bc15d36-4e4d-478c-bf43-56ab447c6fab","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID0bc15d36-4e4d-478c-bf43-56ab447c6fab"}},{"type":"ServiceEndpoint","id":"EID2535a47c-ff28-4d96-a4c9-be53ef40691c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID3243da27-3865-4681-b049-295fe61e942c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID3243da27-3865-4681-b049-295fe61e942c"}},{"type":"ServiceEndpoint","id":"EIDa9279ca3-5a5f-436f-9177-960c1e1fbf35","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"GetParameter","id":"EID53fb178d-4816-400b-b759-52e6dac8bdd3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf7d980a0-d8b8-454f-9b74-5d184385d310","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID8e23b77d-7ce5-49d9-8dc9-56b6c860eea7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID445b5b77-432c-4ee7-bcec-2d1d25b46d28","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDe0d9a1e4-64d8-4f73-af63-8a0c198c5a7f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDe0d9a1e4-64d8-4f73-af63-8a0c198c5a7f"}},{"type":"Message","id":"EID725bb9e6-3f83-4869-9826-c140da9e2082","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID725bb9e6-3f83-4869-9826-c140da9e2082"}},{"type":"Message","id":"EID5209c98f-27a7-44b0-8df7-55187b62faf9","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID5209c98f-27a7-44b0-8df7-55187b62faf9"}},{"type":"Message","id":"EID800321f2-a8a3-4699-870a-61d0d8d580a4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID800321f2-a8a3-4699-870a-61d0d8d580a4"}},{"type":"GetParameter","id":"EID0d439692-5b11-45c5-ac82-702176dc0b98","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EIDdc397680-d4f8-4173-a0b7-a19273edb014","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDf29128cf-bc58-42c8-8da8-0315543030e8","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDf29128cf-bc58-42c8-8da8-0315543030e8"}},{"type":"GetParameter","id":"EIDfdecd16d-ee45-4017-874a-21ecacd2a706","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1b5faac4-fde4-43a8-bf24-e5494ac72ec9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID1b5faac4-fde4-43a8-bf24-e5494ac72ec9"}},{"type":"Message","id":"EID6fad85e4-176c-463c-8d0d-ad110f0dcc4e","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID6fad85e4-176c-463c-8d0d-ad110f0dcc4e"}},{"type":"GetParameter","id":"EID67c48081-0fdc-4773-a376-3487acc2d980","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID8387c9ac-53a8-4143-8639-907bdfb4ba16","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfae84761-1a60-4a88-9486-30f6f2948e24","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfae84761-1a60-4a88-9486-30f6f2948e24"}},{"type":"Message","id":"EID14d7e6e7-d3b3-4f4a-b3a6-5dda9531a6c8","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID14d7e6e7-d3b3-4f4a-b3a6-5dda9531a6c8"}},{"type":"Message","id":"EID40a0768e-9225-4899-b5f7-8d476fae39bf","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID40a0768e-9225-4899-b5f7-8d476fae39bf"}},{"type":"ServiceResponse","id":"EID910e82ec-dcef-4a83-aa60-2e45b042bb6f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID910e82ec-dcef-4a83-aa60-2e45b042bb6f"}},{"type":"Message","id":"EID927799f3-8331-41a1-82cf-82650547aa1b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID927799f3-8331-41a1-82cf-82650547aa1b"}},{"type":"ServiceEndpoint","id":"EID0a5d56b6-1604-4095-b08e-2346a6068a4c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDb4fa8678-6eaf-4bc0-88a7-b6d520d686af","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDb4fa8678-6eaf-4bc0-88a7-b6d520d686af"}},{"type":"GetParameter","id":"EID9e906da6-3a2d-4446-97d0-52f5af985b2a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID63e67b47-6fa6-4728-8d18-5882245f7d94","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EID43b23d0d-1b19-4004-bfa6-5033e5f91085","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb640cedb-6e4a-4e5d-84fe-3d094d1c8e5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2a585700-bc7c-4f92-a226-a1ff56eeb594","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID0a70e03d-d916-441d-98f9-c5ebd7db6ada","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID0a70e03d-d916-441d-98f9-c5ebd7db6ada"}},{"type":"Message","id":"EID166df74b-7fc0-4e05-987a-9f602935c881","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID166df74b-7fc0-4e05-987a-9f602935c881"}},{"type":"ServiceEndpoint","id":"EID72bbe2b0-df6c-4c5e-b1c6-dd23069cb3b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID7eeef2d9-43a5-422a-9299-bdfceafa5dd2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID453c88b8-14a5-46a1-8152-b0db4448a44c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID453c88b8-14a5-46a1-8152-b0db4448a44c"}},{"type":"ServiceResponse","id":"EID61065365-0cb0-4860-97ea-8111de8892b8","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID61065365-0cb0-4860-97ea-8111de8892b8"}},{"type":"ServiceResponse","id":"EID8e52218c-5f6b-417d-9f14-ee26a6e538ac","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID8e52218c-5f6b-417d-9f14-ee26a6e538ac"}},{"type":"ServiceResponse","id":"EID1d9b4c79-a9cd-41a1-a1c9-60ffb1ce789c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID1d9b4c79-a9cd-41a1-a1c9-60ffb1ce789c"}},{"type":"Message","id":"EIDcf040976-882a-4ecf-8356-e07698f97f31","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDcf040976-882a-4ecf-8356-e07698f97f31"}},{"type":"Message","id":"EIDdf7ec732-c096-4aaa-81cd-e14cc8f1ac87","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDdf7ec732-c096-4aaa-81cd-e14cc8f1ac87"}},{"type":"ServiceEndpoint","id":"EIDa122b725-7b3c-4fad-a544-07eeed366a1d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EID67eb4489-d314-4296-9df7-2942898bce58","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID67eb4489-d314-4296-9df7-2942898bce58"}},{"type":"ServiceEndpoint","id":"EID5ed0842b-2ea6-4911-aa7b-d8caf01ee7f5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDfc5c83b2-8504-4ed9-bb94-93ef3f924b6e","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfc5c83b2-8504-4ed9-bb94-93ef3f924b6e"}},{"type":"Message","id":"EID7520f071-31db-4960-a208-e7eb1fa464a9","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID7520f071-31db-4960-a208-e7eb1fa464a9"}},{"type":"ServiceEndpoint","id":"EID7a8a143d-8299-4ce0-80be-58a64546c22b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID18884f9e-948d-4899-9947-321f91daa27e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfe9c0c41-ed70-4305-adef-1878bec0b75b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfe9c0c41-ed70-4305-adef-1878bec0b75b"}},{"type":"ServiceEndpoint","id":"EIDd3c316e7-b906-4795-930c-8ad4f3af8ed6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDeb675fde-a3e1-4b57-8c88-5eaff9678bbb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDeb675fde-a3e1-4b57-8c88-5eaff9678bbb"}},{"type":"ServiceEndpoint","id":"EID2eb01b6f-4b38-4a50-8f44-d366b833aa4c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDce260578-c88c-4c17-b389-73148d5b9ec2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDce260578-c88c-4c17-b389-73148d5b9ec2"}},{"type":"ServiceResponse","id":"EIDf59a514f-81e9-4f74-b415-17fffc53b3b7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDf59a514f-81e9-4f74-b415-17fffc53b3b7"}},{"type":"Message","id":"EID2e7629fe-4002-4407-a48d-74a022aaa3f5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID2e7629fe-4002-4407-a48d-74a022aaa3f5"}},{"type":"ServiceResponse","id":"EIDfdfac563-52a8-4c18-b13b-df51abcde5ce","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfdfac563-52a8-4c18-b13b-df51abcde5ce"}},{"type":"ServiceResponse","id":"EIDcbbf2844-4e18-4ad3-a10a-9b7d5e542d1e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDcbbf2844-4e18-4ad3-a10a-9b7d5e542d1e"}},{"type":"ServiceEndpoint","id":"EID8acc3917-0fcc-4342-aafd-d8087df33762","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc72fc7a7-0a8c-4817-a128-b3e784c865e5","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDc72fc7a7-0a8c-4817-a128-b3e784c865e5"}},{"type":"GetParameter","id":"EIDb6c7fb91-5358-4a91-ad03-f3992be4b43b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDd0f8a310-a502-44f0-a0d6-4ec05b79f337","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDd0f8a310-a502-44f0-a0d6-4ec05b79f337"}},{"type":"Message","id":"EID918228bc-e82a-46e7-97e7-69393ffad00b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID918228bc-e82a-46e7-97e7-69393ffad00b"}},{"type":"ServiceResponse","id":"EID74192ec8-3de4-44d4-9b25-2a676211a937","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID74192ec8-3de4-44d4-9b25-2a676211a937"}},{"type":"GetParameter","id":"EID59e20234-637a-48ea-8c03-0a54c1baf7f2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfdecd752-f84f-4ab5-91f6-fd67bfe1d09a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDa259d6a7-78d4-4ea2-ad04-021c2791c6ca","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDa259d6a7-78d4-4ea2-ad04-021c2791c6ca"}},{"type":"Message","id":"EID490df209-7d03-416e-ba97-d70377fd7971","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID490df209-7d03-416e-ba97-d70377fd7971"}},{"type":"ServiceResponse","id":"EID7440299b-4e52-46cc-83dd-fd0c1f04e4a9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID7440299b-4e52-46cc-83dd-fd0c1f04e4a9"}},{"type":"GetParameter","id":"EID4626dd16-9822-4f14-bbc2-75ded8c18580","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd36f7708-ff68-4255-92f2-237f7713d84d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb4bcf95b-371b-40bd-8cce-4c7ca63f923b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID9fe41c7e-9431-436a-a696-9f47ed441fb0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID4b2d7bf3-89d9-4308-a265-e05026535dd7","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID4b2d7bf3-89d9-4308-a265-e05026535dd7"}},{"type":"ServiceEndpoint","id":"EID57d990fc-a0f0-4721-899a-d182398982ff","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID5826254b-171b-4b50-9804-e328090b8340","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDce25bc19-9fd7-4ff8-b7a3-4a498069f801","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDce25bc19-9fd7-4ff8-b7a3-4a498069f801"}},{"type":"ServiceResponse","id":"EID6f826440-4b3a-411f-abe4-59a674b061f0","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID6f826440-4b3a-411f-abe4-59a674b061f0"}},{"type":"ServiceResponse","id":"EIDf9b6506e-b7d2-4bce-a521-9712caffd526","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDf9b6506e-b7d2-4bce-a521-9712caffd526"}},{"type":"GetParameter","id":"EIDda3da36a-90c7-48f5-a86a-901e250cf204","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDe7937a55-433e-41de-8d83-a7dfd69391e2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDe7937a55-433e-41de-8d83-a7dfd69391e2"}},{"type":"GetParameter","id":"EID5ae9cbb2-d104-4870-8e1f-9e532af87f0d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1115fb27-4e57-4a98-b8f2-36b92d952d5a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbb32d4e6-8fde-41a6-972e-92727bca9fc3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID393c257c-23f0-4a88-b71e-5e8813bf452c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"ServiceResponse","id":"EIDca869ad1-f275-4283-8f76-08dcc537475d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDca869ad1-f275-4283-8f76-08dcc537475d"}},{"type":"GetParameter","id":"EIDf3474882-fade-4377-a700-3bd337d9673e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0d158982-3c8b-48a4-ac47-51cabdfd48e2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa1a09a23-ed94-4cf2-9a52-e1964c5724a7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDda16e6be-0e58-41cb-a412-5950ea06a6e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDf14916e1-fa93-47f6-bb85-9fd94a06802b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID52b4742d-b2fc-495e-859a-9f26b31d73ac","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID044b3c16-172f-4440-aa24-fc0888adde1e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1c18c029-0722-43c2-ac63-346c84ac677e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDfc4489ba-25b8-4c9f-a1c5-ffe4b6a14eaf","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfc4489ba-25b8-4c9f-a1c5-ffe4b6a14eaf"}},{"type":"Message","id":"EIDbfe68ade-1fe5-4ece-8a37-cd1d4da8a890","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDbfe68ade-1fe5-4ece-8a37-cd1d4da8a890"}},{"type":"GetParameter","id":"EID4010a32a-de32-4529-861f-72da4d5f2911","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"GetParameter","id":"EID4d336411-29ac-4845-afbf-096280d5d9af","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID43219905-d953-4f5b-bc63-db7202646e2b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID2c0251a3-d887-4d1a-8374-d88d805f2de5","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID2c0251a3-d887-4d1a-8374-d88d805f2de5"}},{"type":"ServiceResponse","id":"EID31fa60c7-1320-482a-ab28-3c22c5c9a996","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID31fa60c7-1320-482a-ab28-3c22c5c9a996"}},{"type":"Message","id":"EID5cd2c0cd-3e24-47f8-a918-8e3e0d4b2881","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID5cd2c0cd-3e24-47f8-a918-8e3e0d4b2881"}},{"type":"ServiceResponse","id":"EIDdba24ea9-2545-4a6e-8dfb-3c9f6e38fec4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDdba24ea9-2545-4a6e-8dfb-3c9f6e38fec4"}},{"type":"Message","id":"EID705c4041-8f8c-423e-b95a-eb66e50820e0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID705c4041-8f8c-423e-b95a-eb66e50820e0"}},{"type":"ServiceEndpoint","id":"EIDa259d82e-7118-42eb-a0c6-c3aa22535090","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID30a801e6-0563-4701-b34a-f5ea917d939d","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID30a801e6-0563-4701-b34a-f5ea917d939d"}},{"type":"ServiceEndpoint","id":"EID5806b538-3994-48c0-82f9-ab7128d4b7c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd905f860-2fa4-4cb6-ab5a-ba56116709f1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID494b84ef-6a74-4fe7-8773-54873daa2c8b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID5013a1af-50c0-45d4-b354-08900d6dc3ea","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID16cb4d4d-af17-453a-a783-a1101517a127","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID666b5b50-2cae-4f44-bc78-d028bc930bfb","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID666b5b50-2cae-4f44-bc78-d028bc930bfb"}},{"type":"ServiceEndpoint","id":"EID85bdfcd8-114d-4180-badb-5ca050eb0a15","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3d61cee7-a16e-4677-9fab-1bfa2d1358bd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EIDcd0115e7-4ab4-4825-b5ad-92935f049aab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDbdb7327e-f54d-4605-8aef-1c20afce3433","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDbdb7327e-f54d-4605-8aef-1c20afce3433"}},{"type":"GetParameter","id":"EIDad3a9c25-ab7c-4d72-a51e-815273774bea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1c346e24-61d2-4af4-a9a5-bfff4653e9d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDfe2ea799-6032-4be2-b334-09415abd1d1b","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDfe2ea799-6032-4be2-b334-09415abd1d1b"}},{"type":"GetParameter","id":"EID142b6e13-04b0-4301-ac8e-43b01afd5970","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1d652d89-36fc-4979-b151-75b98205d3e6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID9c512d4f-6196-4c88-8959-6d6afeaa2510","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID9c512d4f-6196-4c88-8959-6d6afeaa2510"}},{"type":"GetParameter","id":"EIDbc12e88f-41e5-4867-8946-e01457b1a3e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDfb975317-e1fa-4b0b-8091-08e939d8719a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID27680afb-0f98-4d09-b88d-817d6aea5f88","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID27680afb-0f98-4d09-b88d-817d6aea5f88"}},{"type":"ServiceResponse","id":"EID759c4a28-fb85-48cd-819e-d709f9bab41d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID759c4a28-fb85-48cd-819e-d709f9bab41d"}},{"type":"ServiceResponse","id":"EIDd1b6f159-9742-4fc0-b344-8f5f912bf18f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDd1b6f159-9742-4fc0-b344-8f5f912bf18f"}},{"type":"GetParameter","id":"EID4ee55359-eccb-44c6-a0c1-8539db0d5143","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDc35ddf0f-e3df-43cb-a5bd-f9ec8a3340a0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID8ecfae78-e8d3-4838-8f15-6e65bec2762c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID0ba86731-74fe-4e43-a752-f3af9ca3b22d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID1b8879a6-dfa3-449a-a71d-07850fdeff90","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID0e83ce8d-447d-4728-b0bb-674a02b44660","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID0e83ce8d-447d-4728-b0bb-674a02b44660"}},{"type":"Message","id":"EID165c7154-be1f-479d-bf6d-bd98db7f464d","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID165c7154-be1f-479d-bf6d-bd98db7f464d"}},{"type":"ServiceEndpoint","id":"EID5f8d3d29-7837-4fc3-923e-f0cc6eac867d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID264d8150-e0ee-499d-91b9-6984f2b5be34","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID264d8150-e0ee-499d-91b9-6984f2b5be34"}},{"type":"GetParameter","id":"EID8dea2bc1-fb88-47a5-931f-1020f267eecf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID2159bf2e-0882-4009-9ba3-118d7de73b56","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID2159bf2e-0882-4009-9ba3-118d7de73b56"}},{"type":"GetParameter","id":"EID374394b0-7bd9-4335-8c46-419f4ebebb8a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfc59b8ea-4d13-48e2-84ae-c5048e8716c2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDc203f2bf-b936-4b4f-bcdd-643f37c944b7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDc203f2bf-b936-4b4f-bcdd-643f37c944b7"}},{"type":"ServiceResponse","id":"EIDb3e7fa20-d7a7-4823-9cac-28d06bec1fb5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDb3e7fa20-d7a7-4823-9cac-28d06bec1fb5"}},{"type":"Message","id":"EID69655b58-fcb1-4d74-ac99-6aa753bbbe8f","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID69655b58-fcb1-4d74-ac99-6aa753bbbe8f"}},{"type":"GetParameter","id":"EID11bd429b-027f-4e41-968b-d68a54dc279c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb6009123-2e2f-4c58-8a0c-717a6457b167","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID38f0ab56-0d4f-48fd-847f-0dfc5d46f1d1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID38f0ab56-0d4f-48fd-847f-0dfc5d46f1d1"}},{"type":"ServiceResponse","id":"EID971d2bc1-76b9-4a9e-82d2-44182cecc51f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EID971d2bc1-76b9-4a9e-82d2-44182cecc51f"}},{"type":"GetParameter","id":"EID9d7ad45b-783a-4972-be5b-725c199e23cb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDa39c8124-236f-44d9-b633-4895977ac5f3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID55c5ca63-3eb3-4cbb-9184-9cb05df2a0e0/Attachments/EIDa39c8124-236f-44d9-b633-4895977ac5f3"}},{"type":"ServiceEndpoint","id":"EID2754d1eb-b4db-446e-ac84-c5fd32dae33d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:13:10Z","duration":26976,"status":"FAILED"}}}}}
11:14:05.146 [print] EIDaf8cc361-24da-4d8f-895b-272c97733cb6
11:14:05.146 [print] FAILED
11:14:05.146 [print] FAILED
11:14:05.146 [print] Conformance Class Download Service - Pre-defined Atom
11:14:05.146 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/af8cc361-24da-4d8f-895b-272c97733cb6.json
11:14:05.146 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/af8cc361-24da-4d8f-895b-272c97733cb6.json
11:14:05.146 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDaf8cc361-24da-4d8f-895b-272c97733cb6/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:05.164 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:14:05.164 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:16:48.143 [print] testing url:https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities
11:16:48.144 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:48.557 response time in milliseconds: 413.14 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:48 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:48.565 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsoorten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:48.985 response time in milliseconds: 417.61 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:48 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:48.986 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:08:06.359 [print] testing url:https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml
11:08:06.359 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:08.015 response time in milliseconds: 1655.30 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 2779 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:06 GMT 1 < Etag: "468f384d0392b84cca8695000403950f-1" 1 < Last-Modified: Mon, 16 Mar 2020 07:06:39 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642235A06DFA808 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:08:08.027 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:09.615 response time in milliseconds: 1587.25 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 2779 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:09 GMT 1 < Etag: "468f384d0392b84cca8695000403950f-1" 1 < Last-Modified: Mon, 16 Mar 2020 07:06:39 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642235A95F4A818 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:06:03.533 [print] testing url:https://service.pdok.nl/rce/ps-ch/wfs/v1_0?request=GetCapabilities&service=wfs
11:06:03.534 request: 1 > HEAD https://service.pdok.nl/rce/ps-ch/wfs/v1_0?request=GetCapabilities&service=wfs 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:03.902 response time in milliseconds: 367.71 1 < 200 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,POST,OPTIONS 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 16933 1 < Content-Type: text/xml; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:03 GMT 1 < Server: lighttpd/1.4.53 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:06:03.907 request: 1 > HEAD https://service.pdok.nl/rce/ps-ch/wfs/v1_0?request=GetCapabilities&service=wfs 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:04.320 response time in milliseconds: 412.71 1 < 200 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,POST,OPTIONS 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 16933 1 < Content-Type: text/xml; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:04 GMT 1 < Server: lighttpd/1.4.53 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:06:04.320 assertion failed: path: $['Content-Type'][0], actual: 'text/xml; charset=UTF-8', expected: 'text/xml', reason: not equal
11:08:35.488 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:08:35.489 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:35.890 response time in milliseconds: 401.47 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:35 GMT 1 < X-Cnection: [close, close]
11:08:35.896 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:36.310 response time in milliseconds: 414.23 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:35 GMT 1 < X-Cnection: [close, close]
11:15:54.521 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml
11:15:54.521 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:55.011 response time in milliseconds: 489.41 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4237 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:54 GMT 1 < Etag: "0d9adcb43d973daed7753314ef78d57b-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:11:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223C6FEC829C0 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:15:54.815 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:55.221 response time in milliseconds: 405.91 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4237 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:15:55 GMT 1 < Etag: "0d9adcb43d973daed7753314ef78d57b-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:11:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223C710D252B4 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:05.074 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebiedtypen/wfs?request=GetCapabilities"}}}
11:06:05.079 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 307
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebiedtypen/wfs?request=GetCapabilities"}}}
11:06:08.203 response time in milliseconds: 3018.77
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:08 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883168023","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:06:08.205 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:19.979 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:09:19.980 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:09:50.328 java.net.SocketTimeoutException: Read timed out, http call failed after 30347 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:09:50.328 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:27.301 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=GetCapabilities&service=WCS"}}}
11:13:27.302 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 283
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=GetCapabilities&service=WCS"}}}
11:13:48.527 response time in milliseconds: 21121.69
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:48 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883628360","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:48.528 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:11:04.361 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS
11:11:04.362 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:04.767 response time in milliseconds: 404.74 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:11:04 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:11:04.772 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:05.186 response time in milliseconds: 413.97 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:11:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:11:05.190 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:08:37.464 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml"}}}
11:08:37.468 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 249
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml"}}}
11:08:55.518 response time in milliseconds: 17276.99
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:08:54 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:08:50 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b.json","testRuns":{"TestRun":{"id":"EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:49.428Z","testTasks":{"TestTask":{"id":"EID3b102c86-71d5-4cb2-80f4-91c6d96e9795","parent":{"ref":"EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdd9c1fff-ef9a-4d50-9e14-4ad72db0370e"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdd9c1fff-ef9a-4d50-9e14-4ad72db0370e","remoteResource":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:37.99Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:45.508Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:08:55.529 [print] EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b
11:08:55.530 [print] UNDEFINED
11:08:55.530 [print] Conformance Class Download Service - Pre-defined Atom
11:08:55.531 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b.json
11:08:55.542 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/log
11:08:55.544 [print] statuspath TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b
11:08:55.544 [print] progresspath TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
11:08:55.546 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:56.060 response time in milliseconds: 513.46
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:08:55 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"0","max":"240","log":["28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)","28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:49 - Preparing 1 Test Task:","28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)","28.10.2020 11:08:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:49 - with parameters: ","28.10.2020 11:08:49 - etf.testcases = *","28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:49 - Setting state to CREATED","28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z"]}
11:08:56.061 [print] {
"val": "0",
"max": "240",
"log": [
"28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)",
"28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:08:49 - Preparing 1 Test Task:",
"28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)",
"28.10.2020 11:08:49 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:08:49 - with parameters: ",
"28.10.2020 11:08:49 - etf.testcases = *",
"28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:08:49 - Setting state to CREATED",
"28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z"
]
}
11:08:56.062 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:56.582 response time in milliseconds: 519.40
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:08:56 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"0","max":"240","log":["28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)","28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:49 - Preparing 1 Test Task:","28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)","28.10.2020 11:08:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:49 - with parameters: ","28.10.2020 11:08:49 - etf.testcases = *","28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:49 - Setting state to CREATED","28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z","28.10.2020 11:08:56 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:56 - Project Properties: ","28.10.2020 11:08:56 - etf.testcases - * ","28.10.2020 11:08:56 - serviceEndpoint - https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml ","28.10.2020 11:08:56 - username - ","28.10.2020 11:08:56 - authUser - ","28.10.2020 11:08:56 - authMethod - basic ","28.10.2020 11:08:56 - TestRunTask initialized"]}
11:08:56.588 retry condition not satisfied: response.val == response.max
11:08:56.588 sleeping before retry #1
11:09:01.589 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:02.122 response time in milliseconds: 530.25
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:09:02 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"86","max":"87","log":["28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)","28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:49 - Preparing 1 Test Task:","28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)","28.10.2020 11:08:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:49 - with parameters: ","28.10.2020 11:08:49 - etf.testcases = *","28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:49 - Setting state to CREATED","28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z","28.10.2020 11:08:56 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:56 - Project Properties: ","28.10.2020 11:08:56 - etf.testcases - * ","28.10.2020 11:08:56 - serviceEndpoint - https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml ","28.10.2020 11:08:56 - username - ","28.10.2020 11:08:56 - authUser - ","28.10.2020 11:08:56 - authMethod - basic ","28.10.2020 11:08:56 - TestRunTask initialized","28.10.2020 11:09:01 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027"]}
11:09:02.123 retry condition not satisfied: response.val == response.max
11:09:02.123 sleeping before retry #2
11:09:07.124 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:07.649 response time in milliseconds: 524.68
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:09:07 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"192","max":"193","log":["28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)","28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:49 - Preparing 1 Test Task:","28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)","28.10.2020 11:08:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:49 - with parameters: ","28.10.2020 11:08:49 - etf.testcases = *","28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:49 - Setting state to CREATED","28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z","28.10.2020 11:08:56 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:56 - Project Properties: ","28.10.2020 11:08:56 - etf.testcases - * ","28.10.2020 11:08:56 - serviceEndpoint - https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml ","28.10.2020 11:08:56 - username - ","28.10.2020 11:08:56 - authUser - ","28.10.2020 11:08:56 - authMethod - basic ","28.10.2020 11:08:56 - TestRunTask initialized","28.10.2020 11:09:01 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:07 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:07 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:07.653 retry condition not satisfied: response.val == response.max
11:09:07.654 sleeping before retry #3
11:09:12.655 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:13.168 response time in milliseconds: 512.38
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:09:13 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"203","max":"204","log":["28.10.2020 11:08:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:49 UTC 2020)","28.10.2020 11:08:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:49 - Preparing 1 Test Task:","28.10.2020 11:08:49 - TestTask 1 (3b102c86-71d5-4cb2-80f4-91c6d96e9795)","28.10.2020 11:08:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:49 - with parameters: ","28.10.2020 11:08:49 - etf.testcases = *","28.10.2020 11:08:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:49 - Setting state to CREATED","28.10.2020 11:08:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:08:54 - Starting TestRun.3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b at 2020-10-28T11:08:56Z","28.10.2020 11:08:56 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:08:56 - Project Properties: ","28.10.2020 11:08:56 - etf.testcases - * ","28.10.2020 11:08:56 - serviceEndpoint - https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml ","28.10.2020 11:08:56 - username - ","28.10.2020 11:08:56 - authUser - ","28.10.2020 11:08:56 - authMethod - basic ","28.10.2020 11:08:56 - TestRunTask initialized","28.10.2020 11:09:01 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:06 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:07 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:07 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:13.169 retry condition not satisfied: response.val == response.max
11:09:13.169 sleeping before retry #4
11:09:18.170 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:18.685 response time in milliseconds: 514.36
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:09:18 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:09:18.685 retry condition satisfied
11:09:18.685 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:09:18.686 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:23.678 response time in milliseconds: 3981.45
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Cache-Control: public, max-age=120
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:09:22 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Last-Modified: Wed, 28 Oct 2020 11:09:15 GMT
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b.json","testRuns":{"TestRun":{"id":"EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:49.428Z","testTasks":{"TestTask":{"id":"EID3b102c86-71d5-4cb2-80f4-91c6d96e9795","parent":{"ref":"EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdd9c1fff-ef9a-4d50-9e14-4ad72db0370e"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdd9c1fff-ef9a-4d50-9e14-4ad72db0370e","remoteResource":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:37.99Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:45.508Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/cbs/pd/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5","testObject":{"ref":"EIDdd9c1fff-ef9a-4d50-9e14-4ad72db0370e"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee582c2-0175-1000-bf9f-07735bfdddfc","testCaseResults":{"TestCaseResult":[{"id":"EID6ee582c2-0175-1000-f48f-18e5bdaf94a0","testStepResults":{"TestStepResult":[{"id":"EID6ee582c3-0175-1000-2e10-9af94aa74513","parent":{"ref":"EID6ee582c2-0175-1000-f48f-18e5bdaf94a0"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:08:56Z","duration":32,"status":"PASSED"},{"id":"EID6ee582e4-0175-1000-695c-abc392c1b10c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee583d3-0175-1000-6661-14a219421b4d","parent":{"ref":"EID6ee582e4-0175-1000-695c-abc392c1b10c"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee583d3-0175-1000-741b-db079a18ad54","parent":{"ref":"EID6ee582e4-0175-1000-695c-abc392c1b10c"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee583d3-0175-1000-490e-49472c470dd9","parent":{"ref":"EID6ee582e4-0175-1000-695c-abc392c1b10c"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee583d3-0175-1000-e45e-ec8fb46efd60","parent":{"ref":"EID6ee582e4-0175-1000-695c-abc392c1b10c"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3a14fdf5-0e68-4475-9483-83c3164ae09d"},{"ref":"EID96037cdc-8778-4511-8302-8f8e8be6ba78"},{"ref":"EIDf483baa9-47cf-4ac3-b3bd-7c8672b5786d"}]},"parent":{"ref":"EID6ee582c2-0175-1000-f48f-18e5bdaf94a0"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:08:56Z","duration":76,"status":"PASSED"}]},"parent":{"ref":"EID6ee582c2-0175-1000-bf9f-07735bfdddfc"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:08:56Z","duration":280,"status":"PASSED"},{"id":"EID6ee583da-0175-1000-23b3-07eae8ba4367","testStepResults":{"TestStepResult":{"id":"EID6ee583db-0175-1000-f138-680d0e6acdfa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58449-0175-1000-a6af-6a21593f6eb6","parent":{"ref":"EID6ee583db-0175-1000-f138-680d0e6acdfa"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee58449-0175-1000-03e7-f808a6136b7d","parent":{"ref":"EID6ee583db-0175-1000-f138-680d0e6acdfa"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee58449-0175-1000-f85b-46a994c3f66a","parent":{"ref":"EID6ee583db-0175-1000-f138-680d0e6acdfa"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe67cf46f-0c81-4780-8166-b769ebbd78dc"},{"ref":"EID648641bd-f7ab-4d38-98fc-dc35117a002a"},{"ref":"EID24dee4b0-d75b-4159-a6f7-209823de2389"}]},"parent":{"ref":"EID6ee583da-0175-1000-23b3-07eae8ba4367"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:08:56Z","duration":28,"status":"PASSED"}},"parent":{"ref":"EID6ee582c2-0175-1000-bf9f-07735bfdddfc"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:08:56Z","duration":112,"status":"PASSED"}]},"parent":{"ref":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:08:56Z","duration":392,"status":"PASSED"},{"id":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb","testCaseResults":{"TestCaseResult":[{"id":"EID6ee5844a-0175-1000-a41a-aa6119034622","testStepResults":{"TestStepResult":[{"id":"EID6ee5845e-0175-1000-18a1-4dba2498fb84","parent":{"ref":"EID6ee5844a-0175-1000-a41a-aa6119034622"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:08:56Z","duration":28,"status":"PASSED"},{"id":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee584de-0175-1000-840b-035ef1c03e74","parent":{"ref":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee584de-0175-1000-fc59-aa49ab82ec2d","parent":{"ref":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee584de-0175-1000-684c-292e66a0534c","parent":{"ref":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee584de-0175-1000-76f5-96215a4c9dcd","parent":{"ref":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee584de-0175-1000-71d7-bfe724271294","parent":{"ref":"EID6ee5845e-0175-1000-d6c6-7b5b22d69cca"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:08:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb89a3468-b6be-4110-979e-bfa091c94b3f"},{"ref":"EID66f998e0-71d4-416a-8933-238caedefa29"},{"ref":"EID3f571441-8388-49d5-ba20-3e7feee5d3c1"}]},"parent":{"ref":"EID6ee5844a-0175-1000-a41a-aa6119034622"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:08:56Z","duration":30,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:08:56Z","duration":148,"status":"PASSED"},{"id":"EID6ee584eb-0175-1000-c356-85fcc5c250f6","testStepResults":{"TestStepResult":[{"id":"EID6ee584eb-0175-1000-3713-7e77834440e0","attachments":{"attachment":[{"ref":"EID121f4d47-0cdc-4d3c-b345-e09423a05afc"},{"ref":"EIDf4f7575c-4368-493a-8f71-94e094ce384f"}]},"parent":{"ref":"EID6ee584eb-0175-1000-c356-85fcc5c250f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:08:56Z","duration":120,"status":"PASSED"},{"id":"EID6ee5858f-0175-1000-0cfb-5d437dace610","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee586bd-0175-1000-672a-1cc6584f7c41","parent":{"ref":"EID6ee5858f-0175-1000-0cfb-5d437dace610"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee586bd-0175-1000-72d1-ee04c6a46b35","parent":{"ref":"EID6ee5858f-0175-1000-0cfb-5d437dace610"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee586bd-0175-1000-e571-06ac7bdb0cfe","parent":{"ref":"EID6ee5858f-0175-1000-0cfb-5d437dace610"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee586bd-0175-1000-2e6b-8da8c82ebe03","parent":{"ref":"EID6ee5858f-0175-1000-0cfb-5d437dace610"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdbcdbc28-4b31-438a-9071-939ccf6c1be3"},{"ref":"EIDe11b05dd-79ec-40d9-b007-bbb870e1073a"},{"ref":"EIDd9e81e48-59be-4dda-b803-33049ceec391"}]},"parent":{"ref":"EID6ee584eb-0175-1000-c356-85fcc5c250f6"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:08:57Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:08:56Z","duration":478,"status":"PASSED"},{"id":"EID6ee586c9-0175-1000-f947-bb42a7168d84","testStepResults":{"TestStepResult":[{"id":"EID6ee586c9-0175-1000-79d3-cfcc5745f6b2","attachments":{"attachment":[{"ref":"EID2529d4f9-fab6-4ac3-b8fd-32fa0b89304c"},{"ref":"EIDe5232486-9341-42ea-bdd1-367e206896d4"}]},"parent":{"ref":"EID6ee586c9-0175-1000-f947-bb42a7168d84"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:08:57Z","duration":96,"status":"PASSED"},{"id":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58800-0175-1000-9d5d-8b62fe71f068","parent":{"ref":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee58800-0175-1000-217d-326989ce14d8","parent":{"ref":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee58800-0175-1000-8d58-8e237b8182cb","parent":{"ref":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee58800-0175-1000-1693-283abb6c6859","parent":{"ref":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee58800-0175-1000-21e4-a22186a540d8","parent":{"ref":"EID6ee58776-0175-1000-5bf7-5c62fc9f9d9a"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5433accc-4a94-43fb-8dcd-31ad5091ee13"},{"ref":"EIDd4400388-9763-4af9-bdb1-84fcc45c95f4"},{"ref":"EID8561e502-d72b-4d40-b008-a31c039906de"}]},"parent":{"ref":"EID6ee586c9-0175-1000-f947-bb42a7168d84"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:08:57Z","duration":24,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:08:57Z","duration":321,"status":"PASSED"},{"id":"EID6ee5880a-0175-1000-51f5-8388b2a437af","testStepResults":{"TestStepResult":[{"id":"EID6ee5880b-0175-1000-4f3c-c9be5076d0f2","attachments":{"attachment":[{"ref":"EID932be0e3-bca4-4a99-85b3-dc12aa049994"},{"ref":"EID70a3dbd5-2a16-4480-8479-1fc43875d134"}]},"parent":{"ref":"EID6ee5880a-0175-1000-51f5-8388b2a437af"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:08:57Z","duration":88,"status":"PASSED"},{"id":"EID6ee5888b-0175-1000-0115-5d5556f23517","parent":{"ref":"EID6ee5880a-0175-1000-51f5-8388b2a437af"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:08:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee5888b-0175-1000-151f-d5bd0995323e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58961-0175-1000-4d5b-9eb41f73dced","parent":{"ref":"EID6ee5888b-0175-1000-151f-d5bd0995323e"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58961-0175-1000-bea9-b9b5d82f832d","parent":{"ref":"EID6ee5888b-0175-1000-151f-d5bd0995323e"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58961-0175-1000-ff18-85d5bc14b061","parent":{"ref":"EID6ee5888b-0175-1000-151f-d5bd0995323e"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58961-0175-1000-c343-42ad935d1d59","parent":{"ref":"EID6ee5888b-0175-1000-151f-d5bd0995323e"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5a1df360-23c9-4207-8a44-25d315087ae0"},{"ref":"EIDfaaada6f-22fc-4c4c-89df-977de1235677"},{"ref":"EIDf53c47d6-1bc2-44d0-ad54-59ff7d4f1ff5"}]},"parent":{"ref":"EID6ee5880a-0175-1000-51f5-8388b2a437af"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:08:57Z","duration":107,"status":"PASSED"},{"id":"EID6ee58961-0175-1000-ea77-f742dd47e76b","attachments":{"attachment":{"ref":"EIDd7b14712-21b3-4306-a388-45f5e0701e6b"}},"parent":{"ref":"EID6ee5880a-0175-1000-51f5-8388b2a437af"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:08:58Z","duration":1,"status":"PASSED"},{"id":"EID6ee5896d-0175-1000-4b84-14053abb1a95","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58a0c-0175-1000-6993-1f666256cdfc","parent":{"ref":"EID6ee5896d-0175-1000-4b84-14053abb1a95"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58a0c-0175-1000-543d-0e9287b4973f","parent":{"ref":"EID6ee5896d-0175-1000-4b84-14053abb1a95"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58a0c-0175-1000-213c-284eb21b4075","parent":{"ref":"EID6ee5896d-0175-1000-4b84-14053abb1a95"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58a0c-0175-1000-549f-860cd65c45d7","parent":{"ref":"EID6ee5896d-0175-1000-4b84-14053abb1a95"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58a0c-0175-1000-04a9-07b42380fb5c","parent":{"ref":"EID6ee5896d-0175-1000-4b84-14053abb1a95"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb9b279fa-b57e-4366-a20c-ffcad88ffc7f"},{"ref":"EID7c6d1b7b-c318-45a6-bd3b-1f36345d2d45"},{"ref":"EID4eca08fe-4c3a-4d1d-951d-7a13058ba042"}]},"parent":{"ref":"EID6ee5880a-0175-1000-51f5-8388b2a437af"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:08:58Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:08:57Z","duration":514,"status":"PASSED"},{"id":"EID6ee58a0c-0175-1000-7cd7-e8ac831327d5","testStepResults":{"TestStepResult":[{"id":"EID6ee58a0c-0175-1000-3aee-a938499fb24c","attachments":{"attachment":[{"ref":"EID160cf029-8aba-4391-b248-70fbb9f6359f"},{"ref":"EIDa17d9895-5c7a-4373-b1e4-453d2334e1f0"}]},"parent":{"ref":"EID6ee58a0c-0175-1000-7cd7-e8ac831327d5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:08:58Z","duration":140,"status":"PASSED"},{"id":"EID6ee58abf-0175-1000-4eb8-bd1251a17fb6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58b2e-0175-1000-f08d-f8ef0deb222d","parent":{"ref":"EID6ee58abf-0175-1000-4eb8-bd1251a17fb6"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58b2e-0175-1000-d47d-1a646f245057","parent":{"ref":"EID6ee58abf-0175-1000-4eb8-bd1251a17fb6"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58b2e-0175-1000-c368-9220911592a5","parent":{"ref":"EID6ee58abf-0175-1000-4eb8-bd1251a17fb6"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58b2e-0175-1000-d077-febaa382fd87","parent":{"ref":"EID6ee58abf-0175-1000-4eb8-bd1251a17fb6"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf83f9102-8e4c-4574-86d1-2ec77702f3d6"},{"ref":"EID295656fb-b7cc-47f3-ab02-e55425ce6870"},{"ref":"EID9b763f8d-f5ac-409d-b411-9d3c4512be51"}]},"parent":{"ref":"EID6ee58a0c-0175-1000-7cd7-e8ac831327d5"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:08:58Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:08:58Z","duration":299,"status":"PASSED"},{"id":"EID6ee58b37-0175-1000-e08b-164e54147ace","testStepResults":{"TestStepResult":[{"id":"EID6ee58b37-0175-1000-4df8-27c0a645e1d6","attachments":{"attachment":[{"ref":"EIDe0ecf34b-cacf-4e18-9592-5c6d287138f8"},{"ref":"EID0ed602e1-b46d-4401-a4b4-03d19823a5b8"}]},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:08:58Z","duration":130,"status":"PASSED"},{"id":"EID6ee58be0-0175-1000-e597-7071a57e3d29","parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58be1-0175-1000-45fe-5194aedfedb3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58c68-0175-1000-7379-888a67732ed1","parent":{"ref":"EID6ee58be1-0175-1000-45fe-5194aedfedb3"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58c68-0175-1000-fbdd-fff1ff0aa3b5","parent":{"ref":"EID6ee58be1-0175-1000-45fe-5194aedfedb3"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58c68-0175-1000-31b5-2b5616b35df3","parent":{"ref":"EID6ee58be1-0175-1000-45fe-5194aedfedb3"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee58c68-0175-1000-1cbf-358f9ff50638","parent":{"ref":"EID6ee58be1-0175-1000-45fe-5194aedfedb3"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:08:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID453f577f-7821-40b7-a5f4-171df3136b3b"},{"ref":"EID7a330475-f852-4e40-8107-944bf7a85e72"},{"ref":"EID618436e6-2acc-49d3-b76f-ca5ec5bb6489"}]},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:08:58Z","duration":23,"status":"PASSED"},{"id":"EID6ee58c72-0175-1000-e144-2a5f5fa5cb7d","attachments":{"attachment":{"ref":"EID020a6fab-c72b-4dec-9c84-a2e2178c437e"}},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:08:58Z","duration":1,"status":"PASSED"},{"id":"EID6ee58c7f-0175-1000-fb79-bdc8fdfb4a2c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58d5e-0175-1000-67e7-f83b492d0c15","parent":{"ref":"EID6ee58c7f-0175-1000-fb79-bdc8fdfb4a2c"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58d5e-0175-1000-cea8-ec7fb3a66329","parent":{"ref":"EID6ee58c7f-0175-1000-fb79-bdc8fdfb4a2c"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58d5e-0175-1000-5142-450f0a70844c","parent":{"ref":"EID6ee58c7f-0175-1000-fb79-bdc8fdfb4a2c"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID27afa3c2-64ab-4961-962d-030020c3896a"},{"ref":"EIDff4d20d0-f752-4e69-ab71-f7cc85e057a7"},{"ref":"EIDab8c7ee9-e643-4ea6-a294-6cfe06fd9187"}]},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:08:58Z","duration":166,"status":"PASSED"},{"id":"EID6ee58d5e-0175-1000-1b60-f83e390fbcc5","attachments":{"attachment":{"ref":"EID79b3448d-9541-4797-994b-34c8291e4234"}},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:08:59Z","duration":1,"status":"PASSED"},{"id":"EID6ee58d6a-0175-1000-c63c-5f546f80b413","attachments":{"attachment":{"ref":"EID893a218f-c272-4d52-87fe-cd4668499d5e"}},"parent":{"ref":"EID6ee58b37-0175-1000-e08b-164e54147ace"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:08:59Z","duration":28,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:08:58Z","duration":602,"status":"PASSED"},{"id":"EID6ee58d92-0175-1000-51dd-529d71b6b52a","testStepResults":{"TestStepResult":[{"id":"EID6ee58d92-0175-1000-157d-5cde6430456d","attachments":{"attachment":[{"ref":"EIDfeccb77b-d010-4365-9b78-61fe5f52d7e6"},{"ref":"EIDdd59d3ba-752c-4e92-8549-b742313d9726"}]},"parent":{"ref":"EID6ee58d92-0175-1000-51dd-529d71b6b52a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:08:59Z","duration":103,"status":"PASSED"},{"id":"EID6ee58e5c-0175-1000-9511-a2e92d9aace2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58ef1-0175-1000-852b-5019ebe2d266","parent":{"ref":"EID6ee58e5c-0175-1000-9511-a2e92d9aace2"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58ef1-0175-1000-187d-4702ac45bff4","parent":{"ref":"EID6ee58e5c-0175-1000-9511-a2e92d9aace2"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58ef1-0175-1000-b734-0d96c3ad9643","parent":{"ref":"EID6ee58e5c-0175-1000-9511-a2e92d9aace2"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58ef1-0175-1000-fb3b-7e8866a17c35","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee58e5c-0175-1000-9511-a2e92d9aace2"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID09714bea-f892-4692-967b-11ee52a40ae3"},{"ref":"EID0f686fd6-f402-499f-b849-d0eda5fc3294"},{"ref":"EID4e199405-0ade-4ce4-b70c-c8e30496657b"}]},"parent":{"ref":"EID6ee58d92-0175-1000-51dd-529d71b6b52a"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:08:59Z","duration":30,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:08:59Z","duration":351,"status":"PASSED_MANUAL"},{"id":"EID6ee58ef1-0175-1000-a21e-45c6e9357dfa","testStepResults":{"TestStepResult":{"id":"EID6ee58ef1-0175-1000-fa48-a432c83028d7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee58f9c-0175-1000-392b-f704b7794be4","parent":{"ref":"EID6ee58ef1-0175-1000-fa48-a432c83028d7"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58f9c-0175-1000-5097-197ed6da7345","parent":{"ref":"EID6ee58ef1-0175-1000-fa48-a432c83028d7"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58f9c-0175-1000-d3a3-7bd8a26dc2b0","parent":{"ref":"EID6ee58ef1-0175-1000-fa48-a432c83028d7"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee58f9c-0175-1000-1814-c88feb2a9533","parent":{"ref":"EID6ee58ef1-0175-1000-fa48-a432c83028d7"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b127f60-c04b-4fd6-a934-60b233bc5793"},{"ref":"EID3131572a-422f-492e-8d8a-3f40a297ff2f"},{"ref":"EID01af7b1e-56f1-4a0c-bd08-4b0a59a34917"}]},"parent":{"ref":"EID6ee58ef1-0175-1000-a21e-45c6e9357dfa"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:08:59Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:08:59Z","duration":182,"status":"PASSED"},{"id":"EID6ee58fa8-0175-1000-34a4-b97b6e3d0b9a","testStepResults":{"TestStepResult":{"id":"EID6ee58fa8-0175-1000-156c-6052b6cb47f0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5908e-0175-1000-8744-32951e59cbdd","parent":{"ref":"EID6ee58fa8-0175-1000-156c-6052b6cb47f0"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee5908e-0175-1000-075b-aee2adb218fe","parent":{"ref":"EID6ee58fa8-0175-1000-156c-6052b6cb47f0"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee5908e-0175-1000-7dfe-024c86a99d66","parent":{"ref":"EID6ee58fa8-0175-1000-156c-6052b6cb47f0"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee5908e-0175-1000-fc2a-be2e0cc1f3e3","parent":{"ref":"EID6ee58fa8-0175-1000-156c-6052b6cb47f0"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:08:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe340c63e-6ca9-49aa-a26f-bb153614da86"},{"ref":"EID1eb5e248-daf4-4286-bfa3-d5ef2500e3d0"},{"ref":"EID12654c42-7d89-44b8-ae07-cfd2e212fe62"}]},"parent":{"ref":"EID6ee58fa8-0175-1000-34a4-b97b6e3d0b9a"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:08:59Z","duration":33,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:08:59Z","duration":241,"status":"PASSED"},{"id":"EID6ee59099-0175-1000-152f-03821d11dec9","testStepResults":{"TestStepResult":[{"id":"EID6ee59099-0175-1000-5a65-96d7d82bf541","attachments":{"attachment":[{"ref":"EIDfeaa0973-13ba-4509-b8e9-2176f1a1405e"},{"ref":"EIDe02bdd46-4328-4abb-aace-a750ffdd403b"},{"ref":"EIDfbd13ecf-fda3-42c0-bd32-9939da4a40ea"},{"ref":"EID3d247c0a-f604-4211-b083-a9ee2f01537f"},{"ref":"EID88185882-2e5d-4aca-891c-19128b2e8fb9"},{"ref":"EID9631e9b8-02d2-494e-a832-7e9e665f6059"},{"ref":"EID3f630d75-2cfd-4756-abc0-e38ac6c4ff48"},{"ref":"EID375313ba-4e48-4d34-b89f-6d801cd110f2"},{"ref":"EID76253387-af30-4198-a0c3-96e7e06266a0"},{"ref":"EID41c0efb9-5b25-4862-bb68-ee5c2647f3f4"},{"ref":"EID543c0f58-103b-4701-8e28-b1494108bb40"},{"ref":"EID81015af3-29ba-4903-8423-4704e010693d"}]},"parent":{"ref":"EID6ee59099-0175-1000-152f-03821d11dec9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:08:59Z","duration":349,"status":"PASSED"},{"id":"EID6ee5932a-0175-1000-ce62-a8544eed0e78","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee593dd-0175-1000-dfb4-cd5f41a1db24","parent":{"ref":"EID6ee5932a-0175-1000-ce62-a8544eed0e78"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee593dd-0175-1000-ea28-45e9939e2531","parent":{"ref":"EID6ee5932a-0175-1000-ce62-a8544eed0e78"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee593dd-0175-1000-e7cf-3d7e83cea69b","parent":{"ref":"EID6ee5932a-0175-1000-ce62-a8544eed0e78"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee593dd-0175-1000-880a-d86ecedaa3b8","parent":{"ref":"EID6ee5932a-0175-1000-ce62-a8544eed0e78"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee593dd-0175-1000-8841-97d6cabf4289","parent":{"ref":"EID6ee5932a-0175-1000-ce62-a8544eed0e78"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0745834f-f6cc-4e75-a817-910c4635ef85"},{"ref":"EID48dc3598-77ce-42dd-8127-21ade8027889"},{"ref":"EID549a8bb3-3275-450f-937b-7f8c2ffbbda6"}]},"parent":{"ref":"EID6ee59099-0175-1000-152f-03821d11dec9"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:09:00Z","duration":24,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:08:59Z","duration":848,"status":"PASSED"},{"id":"EID6ee593e9-0175-1000-4472-835c599b47c6","testStepResults":{"TestStepResult":{"id":"EID6ee593e9-0175-1000-0a6e-a5cab12e43bc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59479-0175-1000-0ae7-51fc732e9c41","parent":{"ref":"EID6ee593e9-0175-1000-0a6e-a5cab12e43bc"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee59479-0175-1000-c5f5-67abfe43163e","parent":{"ref":"EID6ee593e9-0175-1000-0a6e-a5cab12e43bc"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee59479-0175-1000-44a0-fc2c9be7d8ac","parent":{"ref":"EID6ee593e9-0175-1000-0a6e-a5cab12e43bc"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee59479-0175-1000-70d8-711607862beb","parent":{"ref":"EID6ee593e9-0175-1000-0a6e-a5cab12e43bc"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:09:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb286c045-759c-4ee3-8f1a-4f0bdbb7c531"},{"ref":"EID408c6493-fce9-4b39-a2bb-aed039794418"},{"ref":"EID7d06d7e6-f0a9-40f8-92fc-cecfba3213c8"}]},"parent":{"ref":"EID6ee593e9-0175-1000-4472-835c599b47c6"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:09:00Z","duration":26,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:09:00Z","duration":145,"status":"PASSED"},{"id":"EID6ee5947a-0175-1000-37c7-b362d397c3e0","testStepResults":{"TestStepResult":{"id":"EID6ee5947a-0175-1000-6a94-27989cd10043","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5950b-0175-1000-7f86-3bf23ea48dfc","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee5950b-0175-1000-fa07-c79af91a0581","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee5950b-0175-1000-b04d-d68ad870d599","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee5950b-0175-1000-b5ef-537c7869ceec","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee5950b-0175-1000-f2b0-be0698114c42","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee5950b-0175-1000-8aea-d0fafa480c6c","parent":{"ref":"EID6ee5947a-0175-1000-6a94-27989cd10043"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID45d07b8d-1a73-4b1b-ab7f-34c3efa851fa"},{"ref":"EID90926e18-ba04-4089-b135-3b81fba9f1f8"},{"ref":"EID3cbe15e5-b4b6-49a6-8b97-a786082b8706"}]},"parent":{"ref":"EID6ee5947a-0175-1000-37c7-b362d397c3e0"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:09:00Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:09:00Z","duration":155,"status":"PASSED"},{"id":"EID6ee59516-0175-1000-1a40-3d637853ae22","testStepResults":{"TestStepResult":{"id":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee595d2-0175-1000-3927-a20ad51100ff","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee595d2-0175-1000-bed5-bcb8d226b0ad","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee595d3-0175-1000-2d0d-8e5b60f04e67","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee595d3-0175-1000-5d69-47515295a019","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee595d3-0175-1000-2259-7061e75e4d28","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee595d3-0175-1000-d31e-5abe4cc784da","parent":{"ref":"EID6ee59516-0175-1000-daf1-78d7e5c42b5f"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDccdee3c5-69f0-48ce-bab8-1543b99159ee"},{"ref":"EID3be7cc62-57d4-4a37-b3d8-f145671abf18"},{"ref":"EIDdbaff071-075a-47ee-9119-18a79d9021aa"}]},"parent":{"ref":"EID6ee59516-0175-1000-1a40-3d637853ae22"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:09:01Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:09:01Z","duration":189,"status":"PASSED"},{"id":"EID6ee595d3-0175-1000-9893-20e821d1ae04","testStepResults":{"TestStepResult":{"id":"EID6ee595d3-0175-1000-2af6-31327085ef6a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59667-0175-1000-596e-eeb214baffa5","parent":{"ref":"EID6ee595d3-0175-1000-2af6-31327085ef6a"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59667-0175-1000-3462-43d4c0797c9d","parent":{"ref":"EID6ee595d3-0175-1000-2af6-31327085ef6a"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59667-0175-1000-e478-9a02dafa5dce","parent":{"ref":"EID6ee595d3-0175-1000-2af6-31327085ef6a"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59667-0175-1000-7bb8-9be9e1c6b9f4","parent":{"ref":"EID6ee595d3-0175-1000-2af6-31327085ef6a"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1b1f9ed5-661b-4cbe-b4aa-f858deb498b6"},{"ref":"EIDd405adc1-87a8-4f53-a640-839552b8827c"},{"ref":"EIDada60e53-8a6a-4266-8ebc-202288f05f8a"}]},"parent":{"ref":"EID6ee595d3-0175-1000-9893-20e821d1ae04"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:09:01Z","duration":39,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:09:01Z","duration":149,"status":"PASSED"},{"id":"EID6ee59668-0175-1000-9f74-04661da45fd3","testStepResults":{"TestStepResult":[{"id":"EID6ee59668-0175-1000-a239-922fe8a47b32","attachments":{"attachment":[{"ref":"EID2382f77f-0d3f-4de4-94f5-75160b0edac2"},{"ref":"EIDbfa86af3-feaa-4299-9627-c4fd8e553b2b"},{"ref":"EIDccaa1d18-b0b2-4171-81d9-f74c242ec907"},{"ref":"EID9f4f909b-9208-4891-8fd2-579867b921de"}]},"parent":{"ref":"EID6ee59668-0175-1000-9f74-04661da45fd3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:09:01Z","duration":199,"status":"PASSED"},{"id":"EID6ee5975f-0175-1000-3fb2-98ab0482fa4b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee597cf-0175-1000-b9a7-a08a39897530","parent":{"ref":"EID6ee5975f-0175-1000-3fb2-98ab0482fa4b"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee597cf-0175-1000-3708-af2e79564803","parent":{"ref":"EID6ee5975f-0175-1000-3fb2-98ab0482fa4b"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee597cf-0175-1000-f458-29e0921831ed","parent":{"ref":"EID6ee5975f-0175-1000-3fb2-98ab0482fa4b"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee597cf-0175-1000-d7fe-725d9fa46e34","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":2},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee5975f-0175-1000-3fb2-98ab0482fa4b"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:09:01Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDca545e67-ce34-452b-81ad-e547b0318a64"},{"ref":"EID5e405b9e-511a-4bdc-86e4-08382f2925d7"},{"ref":"EID183038c7-d7cd-4135-a372-1aaeb51e2eea"}]},"parent":{"ref":"EID6ee59668-0175-1000-9f74-04661da45fd3"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:09:01Z","duration":24,"status":"FAILED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:09:01Z","duration":361,"status":"FAILED"},{"id":"EID6ee597da-0175-1000-e7ae-5c496fcdb1e9","testStepResults":{"TestStepResult":{"id":"EID6ee597da-0175-1000-848c-077d54270ff8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59863-0175-1000-2a5f-916275e84eb2","parent":{"ref":"EID6ee597da-0175-1000-848c-077d54270ff8"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59863-0175-1000-b968-ffa404d804fa","parent":{"ref":"EID6ee597da-0175-1000-848c-077d54270ff8"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59863-0175-1000-43f2-d0ff9d41b2be","parent":{"ref":"EID6ee597da-0175-1000-848c-077d54270ff8"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59863-0175-1000-91f3-5509d486476d","parent":{"ref":"EID6ee597da-0175-1000-848c-077d54270ff8"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID32a56398-e32b-4e3a-a51e-86e7efe9c357"},{"ref":"EIDf38bbca1-c4f6-4b27-af5b-21aa9d96b0e6"},{"ref":"EID8207a9c0-bc0a-4bf2-a16d-3f87bb9d0606"}]},"parent":{"ref":"EID6ee597da-0175-1000-e7ae-5c496fcdb1e9"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:09:01Z","duration":24,"status":"PASSED"}},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:09:01Z","duration":137,"status":"PASSED"},{"id":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b","testStepResults":{"TestStepResult":[{"id":"EID6ee59863-0175-1000-6632-78848df74d3f","parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:09:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee59863-0175-1000-2ae8-55aef12f52a4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee598ff-0175-1000-19bf-334eaa28408d","parent":{"ref":"EID6ee59863-0175-1000-2ae8-55aef12f52a4"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee598ff-0175-1000-9c62-18a4b956a7d6","parent":{"ref":"EID6ee59863-0175-1000-2ae8-55aef12f52a4"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee598ff-0175-1000-4fa1-610c8e85cb59","parent":{"ref":"EID6ee59863-0175-1000-2ae8-55aef12f52a4"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee598ff-0175-1000-930f-96f658af3b63","parent":{"ref":"EID6ee59863-0175-1000-2ae8-55aef12f52a4"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd93c87ff-e1fe-44f7-b198-69f425892bdc"},{"ref":"EIDb87fdeca-f1f5-4435-9f1d-4065982aca2f"},{"ref":"EID4783eaf4-f3c7-469d-919b-d22f39b5fdd3"}]},"parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:09:01Z","duration":23,"status":"PASSED"},{"id":"EID6ee598ff-0175-1000-f8c0-c60d12286a79","attachments":{"attachment":{"ref":"EID2d8fe776-bb56-4c77-bf28-b67f75457d8a"}},"parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":1,"status":"PASSED"},{"id":"EID6ee5990b-0175-1000-c534-edcc25b03164","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee599ef-0175-1000-1896-85cf678e7bd2","parent":{"ref":"EID6ee5990b-0175-1000-c534-edcc25b03164"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee599ef-0175-1000-d386-279c3b9c6c14","parent":{"ref":"EID6ee5990b-0175-1000-c534-edcc25b03164"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee599ef-0175-1000-6aa0-fdc64a2c7bc6","parent":{"ref":"EID6ee5990b-0175-1000-c534-edcc25b03164"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee599ef-0175-1000-85b7-9e8b6892485c","parent":{"ref":"EID6ee5990b-0175-1000-c534-edcc25b03164"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID262a09be-d121-4d31-9c42-e05d6ef14afb"},{"ref":"EID47a372f0-871b-4d2b-8d2f-9fcf79ad2cf5"},{"ref":"EID6269d44b-85ee-434e-87a2-d1faf9013177"}]},"parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:09:02Z","duration":82,"status":"PASSED"},{"id":"EID6ee599ef-0175-1000-12f4-085f07bf25ea","attachments":{"attachment":{"ref":"EIDeda7b912-1628-48ab-9d58-22f3eebbb536"}},"parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":2,"status":"PASSED"},{"id":"EID6ee599ff-0175-1000-c9c7-a10c09020fa9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59a70-0175-1000-415b-ec41e3d26cfc","parent":{"ref":"EID6ee599ff-0175-1000-c9c7-a10c09020fa9"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59a70-0175-1000-842b-3cccab393305","parent":{"ref":"EID6ee599ff-0175-1000-c9c7-a10c09020fa9"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59a70-0175-1000-b929-7bd6d3ab7e13","parent":{"ref":"EID6ee599ff-0175-1000-c9c7-a10c09020fa9"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59a70-0175-1000-dd42-53d309fda365","parent":{"ref":"EID6ee599ff-0175-1000-c9c7-a10c09020fa9"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf0482305-5f80-4b17-87b3-0965e92c862a"},{"ref":"EID49ecaa0e-9a9c-42f9-914c-043b7b56df30"},{"ref":"EIDddcc5f00-ffdd-4357-b188-cff00b305f16"}]},"parent":{"ref":"EID6ee59863-0175-1000-95e3-5a0e692ffa7b"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:09:02Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee5844a-0175-1000-dd85-d72b0ba9dfcb"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:09:01Z","duration":535,"status":"PASSED"}]},"parent":{"ref":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:08:56Z","duration":5680,"status":"FAILED"},{"id":"EID6ee59a7a-0175-1000-5c22-290a88f34318","testCaseResults":{"TestCaseResult":[{"id":"EID6ee59a7a-0175-1000-d815-5fe29115db3f","testStepResults":{"TestStepResult":[{"id":"EID6ee59a7a-0175-1000-fd77-1152c5621874","parent":{"ref":"EID6ee59a7a-0175-1000-d815-5fe29115db3f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59a7a-0175-1000-d1a1-8824174f6d60","parent":{"ref":"EID6ee59a7a-0175-1000-d815-5fe29115db3f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":24,"status":"PASSED"},{"id":"EID6ee59a7a-0175-1000-fe52-45ef8884aa0a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59aec-0175-1000-251d-ed00c05f2cfb","parent":{"ref":"EID6ee59a7a-0175-1000-fe52-45ef8884aa0a"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59aec-0175-1000-28b9-d4748dbd2b68","parent":{"ref":"EID6ee59a7a-0175-1000-fe52-45ef8884aa0a"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59aec-0175-1000-d2ef-4e545b134304","parent":{"ref":"EID6ee59a7a-0175-1000-fe52-45ef8884aa0a"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8c464cb-dd12-46f1-9b67-c06c0fea51fe"},{"ref":"EID1ebd595c-4291-4b98-a483-6d75ac8f4b96"},{"ref":"EID78f8b71e-3701-4c36-a5c0-4019c0726acf"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-d815-5fe29115db3f"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:09:02Z","duration":23,"status":"PASSED"},{"id":"EID6ee59aec-0175-1000-4b7c-5385f3235f38","attachments":{"attachment":{"ref":"EID912f5bc4-7550-4706-9db3-7e45c882178d"}},"parent":{"ref":"EID6ee59a7a-0175-1000-d815-5fe29115db3f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":9,"status":"PASSED"},{"id":"EID6ee59b0f-0175-1000-4bad-6fbfef00c4be","parent":{"ref":"EID6ee59a7a-0175-1000-d815-5fe29115db3f"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:09:02Z","duration":11,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:09:02Z","duration":161,"status":"PASSED"},{"id":"EID6ee59b1b-0175-1000-aad2-f7e0a51921fc","testStepResults":{"TestStepResult":[{"id":"EID6ee59b1b-0175-1000-a8ef-df5e3d5b9f93","parent":{"ref":"EID6ee59b1b-0175-1000-aad2-f7e0a51921fc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":28,"status":"PASSED"},{"id":"EID6ee59b1b-0175-1000-19a1-75a225906bfa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59b77-0175-1000-d0ce-029a8440ee23","parent":{"ref":"EID6ee59b1b-0175-1000-19a1-75a225906bfa"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59b77-0175-1000-aefc-31c1845afe74","parent":{"ref":"EID6ee59b1b-0175-1000-19a1-75a225906bfa"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59b77-0175-1000-8958-8d5ef7a90a9e","parent":{"ref":"EID6ee59b1b-0175-1000-19a1-75a225906bfa"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59b77-0175-1000-7f21-87e05eab301c","parent":{"ref":"EID6ee59b1b-0175-1000-19a1-75a225906bfa"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59b77-0175-1000-0d10-c771d0b7f256","parent":{"ref":"EID6ee59b1b-0175-1000-19a1-75a225906bfa"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID17a28f34-5593-4987-8d30-66550e2af380"},{"ref":"EIDc76f3bca-49ba-4951-8352-c140913d499f"},{"ref":"EIDf28df8a8-60ef-475b-b43f-f174499a7a51"}]},"parent":{"ref":"EID6ee59b1b-0175-1000-aad2-f7e0a51921fc"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:09:02Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:09:02Z","duration":93,"status":"PASSED"},{"id":"EID6ee59b78-0175-1000-7e9b-2843b2708cc6","testStepResults":{"TestStepResult":[{"id":"EID6ee59b78-0175-1000-92c4-441b1077ce8f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59bcd-0175-1000-fe08-d21f65b23c5f","parent":{"ref":"EID6ee59b78-0175-1000-92c4-441b1077ce8f"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59bcd-0175-1000-a879-f008b772b699","parent":{"ref":"EID6ee59b78-0175-1000-92c4-441b1077ce8f"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59bcd-0175-1000-bd65-ee16edb4651d","parent":{"ref":"EID6ee59b78-0175-1000-92c4-441b1077ce8f"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6f78cc8c-cfb1-4b2b-b879-61f79e1e849a"},{"ref":"EIDef08d14c-a9cc-4e41-8f60-86616e02ae7f"},{"ref":"EID8960c968-db2a-426f-a352-4fb72304325b"}]},"parent":{"ref":"EID6ee59b78-0175-1000-7e9b-2843b2708cc6"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:09:02Z","duration":24,"status":"PASSED"},{"id":"EID6ee59bcd-0175-1000-9487-99772d5dff20","attachments":{"attachment":{"ref":"EIDce07f5d8-eb95-411e-8408-594444570c58"}},"parent":{"ref":"EID6ee59b78-0175-1000-7e9b-2843b2708cc6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59c4e-0175-1000-e7b5-568a645aaac2","parent":{"ref":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59c4e-0175-1000-51ea-8ef37bdfbe57","parent":{"ref":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59c4e-0175-1000-69c6-6dfd3f73cfe2","parent":{"ref":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59c4f-0175-1000-f7de-f6725360340e","parent":{"ref":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee59c4f-0175-1000-d515-a5ff553d07bb","parent":{"ref":"EID6ee59bdd-0175-1000-f2af-cd0354d4fcf7"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:09:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5a9681d9-1d37-40a8-bb17-9ae67f3e4a76"},{"ref":"EIDa7fff2e2-eed1-4689-b704-ac1538f2967d"},{"ref":"EID5bb5e5dc-eef3-4908-82bf-21b162df4496"}]},"parent":{"ref":"EID6ee59b78-0175-1000-7e9b-2843b2708cc6"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:09:02Z","duration":23,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:09:02Z","duration":224,"status":"PASSED"},{"id":"EID6ee59c58-0175-1000-5dcb-ac0d96741088","testStepResults":{"TestStepResult":[{"id":"EID6ee59c58-0175-1000-d86d-1d5b0b003ab8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59cb4-0175-1000-46e8-b6186a0f4440","parent":{"ref":"EID6ee59c58-0175-1000-d86d-1d5b0b003ab8"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59cb4-0175-1000-5e20-12d88c0b5e01","parent":{"ref":"EID6ee59c58-0175-1000-d86d-1d5b0b003ab8"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59cb4-0175-1000-0144-28a6fcc68775","parent":{"ref":"EID6ee59c58-0175-1000-d86d-1d5b0b003ab8"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59cb4-0175-1000-96ef-3ee470a3f659","parent":{"ref":"EID6ee59c58-0175-1000-d86d-1d5b0b003ab8"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID97541db8-6da4-47ac-a871-bca755d086a7"},{"ref":"EIDe114e90f-b0f0-40dc-91bc-ef18286e2cdd"},{"ref":"EID57e8ad22-cd81-453b-80d1-79c67ddf632c"}]},"parent":{"ref":"EID6ee59c58-0175-1000-5dcb-ac0d96741088"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:09:02Z","duration":24,"status":"PASSED"},{"id":"EID6ee59cb4-0175-1000-b66b-51e2a34c4b1d","attachments":{"attachment":{"ref":"EIDebf89b6c-ca14-4edb-9c68-e23e31ed7fd4"}},"parent":{"ref":"EID6ee59c58-0175-1000-5dcb-ac0d96741088"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:09:03Z","duration":1,"status":"PASSED"},{"id":"EID6ee59cbf-0175-1000-14a6-a36c3a2f7426","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59cf0-0175-1000-c5c3-e67ef017451a","parent":{"ref":"EID6ee59cbf-0175-1000-14a6-a36c3a2f7426"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59cf0-0175-1000-d5ed-f60cab7cbcd1","parent":{"ref":"EID6ee59cbf-0175-1000-14a6-a36c3a2f7426"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdd8a5d8f-545b-4479-8492-263373f6d9d8"},{"ref":"EID4381c627-00d3-4117-b3b5-9cc0af485d1d"}]},"parent":{"ref":"EID6ee59c58-0175-1000-5dcb-ac0d96741088"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:09:03Z","duration":45,"status":"PASSED"},{"id":"EID6ee59cf0-0175-1000-deac-f28758690bab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59d77-0175-1000-60b3-086f960c7550","parent":{"ref":"EID6ee59cf0-0175-1000-deac-f28758690bab"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59d77-0175-1000-73b7-925b415e7425","parent":{"ref":"EID6ee59cf0-0175-1000-deac-f28758690bab"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59d77-0175-1000-6d27-d2f0ecfae200","parent":{"ref":"EID6ee59cf0-0175-1000-deac-f28758690bab"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59d77-0175-1000-16c3-b7f9e41aa8e1","parent":{"ref":"EID6ee59cf0-0175-1000-deac-f28758690bab"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc683bb77-8e3e-44b7-9020-92bc8a6d8114"},{"ref":"EIDa979ed47-332b-4c9a-add7-976163bcd126"},{"ref":"EIDbe40f545-6afc-45a1-bc9e-21dd3c298938"}]},"parent":{"ref":"EID6ee59c58-0175-1000-5dcb-ac0d96741088"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:09:03Z","duration":43,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:09:02Z","duration":288,"status":"PASSED"},{"id":"EID6ee59d78-0175-1000-96c4-0581d5076fb7","testStepResults":{"TestStepResult":{"id":"EID6ee59d78-0175-1000-c7cd-8082a3b92a78","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59deb-0175-1000-9554-42ce5c633a19","parent":{"ref":"EID6ee59d78-0175-1000-c7cd-8082a3b92a78"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59deb-0175-1000-71fb-ddf8f1c2302d","parent":{"ref":"EID6ee59d78-0175-1000-c7cd-8082a3b92a78"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59deb-0175-1000-941f-69a175b1232a","parent":{"ref":"EID6ee59d78-0175-1000-c7cd-8082a3b92a78"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID11126179-2a6a-493d-b188-dd49c2471b6a"},{"ref":"EIDa45c5542-663c-43a6-ab04-dcd44898def1"},{"ref":"EID82257fd0-8cde-4306-aeb6-e87b34a2d8e5"}]},"parent":{"ref":"EID6ee59d78-0175-1000-96c4-0581d5076fb7"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:09:03Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:09:03Z","duration":115,"status":"PASSED"},{"id":"EID6ee59deb-0175-1000-f449-994629a01baa","testStepResults":{"TestStepResult":{"id":"EID6ee59deb-0175-1000-eacc-908585375025","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59e4b-0175-1000-a12d-f082484bf3ef","parent":{"ref":"EID6ee59deb-0175-1000-eacc-908585375025"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59e4b-0175-1000-393a-97b11eeb1f8b","parent":{"ref":"EID6ee59deb-0175-1000-eacc-908585375025"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59e4b-0175-1000-1b3a-5573ae521b87","parent":{"ref":"EID6ee59deb-0175-1000-eacc-908585375025"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdcd90594-b843-4860-8c4f-a728629d6abb"},{"ref":"EID03593c81-ec05-4642-9fde-9c31d1ce8743"},{"ref":"EID9e85ea14-63bf-4940-ae70-21c240152394"}]},"parent":{"ref":"EID6ee59deb-0175-1000-f449-994629a01baa"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:09:03Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:09:03Z","duration":97,"status":"PASSED"},{"id":"EID6ee59e4c-0175-1000-4f24-751eacfdec7e","testStepResults":{"TestStepResult":{"id":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59ec5-0175-1000-587b-9efb5a22334f","parent":{"ref":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59ec5-0175-1000-f6a0-cae1f01c708c","parent":{"ref":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59ec5-0175-1000-2214-38435e25eb54","parent":{"ref":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59ec5-0175-1000-6205-4782ff5ba21c","parent":{"ref":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59ec5-0175-1000-75d4-e3ab57f829ff","parent":{"ref":"EID6ee59e4c-0175-1000-9ff7-10583eafb5fc"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID066e67f1-0635-45e6-806f-a777b082baf7"},{"ref":"EID868ddc86-5150-437e-8b18-26011cd563bc"},{"ref":"EID0e292f11-426a-4f12-860a-34b82d750324"}]},"parent":{"ref":"EID6ee59e4c-0175-1000-4f24-751eacfdec7e"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:09:03Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:09:03Z","duration":132,"status":"PASSED"},{"id":"EID6ee59ed0-0175-1000-b3dd-c8ea4b6af66c","testStepResults":{"TestStepResult":{"id":"EID6ee59ed0-0175-1000-3456-60c0b2fd632b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59f25-0175-1000-48e9-edcd5f14188b","parent":{"ref":"EID6ee59ed0-0175-1000-3456-60c0b2fd632b"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59f25-0175-1000-01fd-5750bff6dab9","parent":{"ref":"EID6ee59ed0-0175-1000-3456-60c0b2fd632b"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59f25-0175-1000-9ff6-04e859ca108d","parent":{"ref":"EID6ee59ed0-0175-1000-3456-60c0b2fd632b"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfcd10e8f-f52a-467d-9298-5094fecc910d"},{"ref":"EIDe2f4ba7a-15d0-465c-8fd4-9c9eb04a3303"},{"ref":"EIDf13ea882-29a3-4db8-9a93-91df11811ea9"}]},"parent":{"ref":"EID6ee59ed0-0175-1000-b3dd-c8ea4b6af66c"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:09:03Z","duration":26,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:09:03Z","duration":85,"status":"PASSED"},{"id":"EID6ee59f25-0175-1000-c95a-f50990f71b5b","testStepResults":{"TestStepResult":{"id":"EID6ee59f25-0175-1000-0724-1d455312487c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59f91-0175-1000-9247-4161452686af","parent":{"ref":"EID6ee59f25-0175-1000-0724-1d455312487c"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59f91-0175-1000-a27f-56be33446c8c","parent":{"ref":"EID6ee59f25-0175-1000-0724-1d455312487c"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59f91-0175-1000-f6f2-4bb411b8528f","parent":{"ref":"EID6ee59f25-0175-1000-0724-1d455312487c"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID820e3001-63d4-4d73-b6a5-025a3f0c5e8e"},{"ref":"EIDea1aaa82-418f-4af3-a277-d9da3197fe8c"},{"ref":"EID89779d4b-32ca-4435-af2b-2d780fd5e0df"}]},"parent":{"ref":"EID6ee59f25-0175-1000-c95a-f50990f71b5b"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:09:03Z","duration":24,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:09:03Z","duration":109,"status":"PASSED"},{"id":"EID6ee59f92-0175-1000-b955-36c0016b9a91","testStepResults":{"TestStepResult":{"id":"EID6ee59f92-0175-1000-f457-97b35aa187a7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee59fec-0175-1000-ad49-0550b3c694b5","parent":{"ref":"EID6ee59f92-0175-1000-f457-97b35aa187a7"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59fec-0175-1000-b451-6bfacca8d547","parent":{"ref":"EID6ee59f92-0175-1000-f457-97b35aa187a7"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59fec-0175-1000-6ad1-7652fe0beb65","parent":{"ref":"EID6ee59f92-0175-1000-f457-97b35aa187a7"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee59fec-0175-1000-e33f-e702ec7f4e79","parent":{"ref":"EID6ee59f92-0175-1000-f457-97b35aa187a7"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6452cd18-5dcb-452a-acfd-3dbefdb7d481"},{"ref":"EID7868b8e3-ea5f-45c3-b3c8-1efc7a1406a3"},{"ref":"EID16f668a8-3e44-4467-8f3d-83739a00cb67"}]},"parent":{"ref":"EID6ee59f92-0175-1000-b955-36c0016b9a91"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:09:03Z","duration":23,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:09:03Z","duration":90,"status":"PASSED"},{"id":"EID6ee59fec-0175-1000-3711-2308f172528b","testStepResults":{"TestStepResult":{"id":"EID6ee59fec-0175-1000-f411-fe3a90ff6456","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a06e-0175-1000-eefe-97d985cc9602","parent":{"ref":"EID6ee59fec-0175-1000-f411-fe3a90ff6456"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a06e-0175-1000-91bc-cb7272b0b195","parent":{"ref":"EID6ee59fec-0175-1000-f411-fe3a90ff6456"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a06e-0175-1000-8fd8-fa55040be146","parent":{"ref":"EID6ee59fec-0175-1000-f411-fe3a90ff6456"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a06e-0175-1000-370f-cc7765846b64","parent":{"ref":"EID6ee59fec-0175-1000-f411-fe3a90ff6456"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaecbf574-baa6-492c-a3ac-b184508e9ab4"},{"ref":"EID15eda749-0a9e-4802-ac96-b85c06b1f32d"},{"ref":"EID9d0041f0-05d0-4458-af9d-eea033531a27"}]},"parent":{"ref":"EID6ee59fec-0175-1000-3711-2308f172528b"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:09:03Z","duration":24,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:09:03Z","duration":140,"status":"PASSED"},{"id":"EID6ee5a079-0175-1000-f532-8b7570724e6b","testStepResults":{"TestStepResult":[{"id":"EID6ee5a079-0175-1000-339a-f9030ca78b7a","parent":{"ref":"EID6ee5a079-0175-1000-f532-8b7570724e6b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:09:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a07a-0175-1000-5daa-8a2558eaf050","parent":{"ref":"EID6ee5a079-0175-1000-f532-8b7570724e6b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:09:03Z","duration":58,"status":"PASSED"},{"id":"EID6ee5a07a-0175-1000-2045-d2d55085076c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a141-0175-1000-8104-3a05219bcc14","parent":{"ref":"EID6ee5a07a-0175-1000-2045-d2d55085076c"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a141-0175-1000-2e84-d41e95e3a940","parent":{"ref":"EID6ee5a07a-0175-1000-2045-d2d55085076c"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a141-0175-1000-d8e1-126e121975c7","parent":{"ref":"EID6ee5a07a-0175-1000-2045-d2d55085076c"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a141-0175-1000-b40c-e0207fb05d3f","parent":{"ref":"EID6ee5a07a-0175-1000-2045-d2d55085076c"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0178c730-e2d4-4189-9032-089c1c1c5d74"},{"ref":"EIDecad24ea-05b0-4e2b-b91e-74de108ae61d"},{"ref":"EIDa8bbd212-7399-41f2-99f1-555c8534709f"}]},"parent":{"ref":"EID6ee5a079-0175-1000-f532-8b7570724e6b"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:09:03Z","duration":23,"status":"PASSED"},{"id":"EID6ee5a141-0175-1000-7d40-59b3f7eb4464","attachments":{"attachment":{"ref":"EID1b294c92-0bfc-4cf5-bd2e-f433cae95957"}},"parent":{"ref":"EID6ee5a079-0175-1000-f532-8b7570724e6b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:09:04Z","duration":2,"status":"PASSED"},{"id":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a1d9-0175-1000-6f46-b0aa5a8a50ff","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-175d-c644e4d94000","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-f3f4-526998f4b53a","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-7a77-198ab61368a5","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-4d99-0c552c91bcfd","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-d5f9-1ad641d627a7","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-9241-3257ffbaff65","parent":{"ref":"EID6ee5a14e-0175-1000-a0ba-9a10ccbf090f"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe7673d42-51e2-4e43-a975-ecad0b5c5eb2"},{"ref":"EID19fdaf91-2587-41fe-9c08-284da25d14d0"},{"ref":"EID7b11fe3b-bff1-44eb-9bcb-d0c5079011ab"}]},"parent":{"ref":"EID6ee5a079-0175-1000-f532-8b7570724e6b"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:09:04Z","duration":24,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:09:03Z","duration":352,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-7d02-fb20619323d5","testStepResults":{"TestStepResult":[{"id":"EID6ee5a1d9-0175-1000-ef47-1370c30992fc","parent":{"ref":"EID6ee5a1d9-0175-1000-7d02-fb20619323d5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a1d9-0175-1000-f096-8789eaf9777e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a2ee-0175-1000-82e8-b27162c5d12b","parent":{"ref":"EID6ee5a1d9-0175-1000-f096-8789eaf9777e"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a2ee-0175-1000-10b8-99c713ef6302","parent":{"ref":"EID6ee5a1d9-0175-1000-f096-8789eaf9777e"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a2ee-0175-1000-3c79-c702d0cb5cec","parent":{"ref":"EID6ee5a1d9-0175-1000-f096-8789eaf9777e"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a2ee-0175-1000-367d-aabb3cdc14a6","parent":{"ref":"EID6ee5a1d9-0175-1000-f096-8789eaf9777e"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID44377dc7-fb10-49aa-81f0-428de2f033b3"},{"ref":"EID2d0f6f59-effe-43fb-99fb-b788781589d0"},{"ref":"EIDc05c0a19-19b3-4033-a4ac-568ba0d5040e"}]},"parent":{"ref":"EID6ee5a1d9-0175-1000-7d02-fb20619323d5"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:09:04Z","duration":180,"status":"PASSED"},{"id":"EID6ee5a2ee-0175-1000-56c6-4aebde1a60c3","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee5a303-0175-1000-df6e-3699370d52c4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a3f3-0175-1000-3087-28052f3f825f","parent":{"ref":"EID6ee5a303-0175-1000-df6e-3699370d52c4"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a3f3-0175-1000-6589-45600c8e9f44","parent":{"ref":"EID6ee5a303-0175-1000-df6e-3699370d52c4"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a3f3-0175-1000-b556-06a49d188802","parent":{"ref":"EID6ee5a303-0175-1000-df6e-3699370d52c4"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7674335b-fc4a-4532-8e88-b87a17e1c4f7"},{"ref":"EIDcc662bbe-5266-4b4c-90e6-119fe652c039"},{"ref":"EIDae8cb4c5-6ec3-4a0b-b66d-0019d5b6ca64"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:04Z","duration":151,"status":"PASSED"},{"id":"EID6ee5a3f5-0175-1000-9ee7-99d6b03c5cab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a4ba-0175-1000-7901-7d78821bb33f","parent":{"ref":"EID6ee5a3f5-0175-1000-9ee7-99d6b03c5cab"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a4ba-0175-1000-1366-a415e69b56ea","parent":{"ref":"EID6ee5a3f5-0175-1000-9ee7-99d6b03c5cab"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a4ba-0175-1000-89c2-2b8360d04b0a","parent":{"ref":"EID6ee5a3f5-0175-1000-9ee7-99d6b03c5cab"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd9eb398a-8080-44fc-a3b3-05f426ce385e"},{"ref":"EID074a34d7-6b93-411a-9537-5c41887b160a"},{"ref":"EID6487315d-6554-4e48-87ec-b99bef763280"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:04Z","duration":43,"status":"PASSED"},{"id":"EID6ee5a4c3-0175-1000-051f-4f6ad724b15a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a5d4-0175-1000-14ac-a6511c1686ef","parent":{"ref":"EID6ee5a4c3-0175-1000-051f-4f6ad724b15a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a5d4-0175-1000-0858-0e5b2c66a62e","parent":{"ref":"EID6ee5a4c3-0175-1000-051f-4f6ad724b15a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a5d4-0175-1000-5255-b46a6b5fc12d","parent":{"ref":"EID6ee5a4c3-0175-1000-051f-4f6ad724b15a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdd55551c-8050-44be-8c2f-ec0f9cf1a79b"},{"ref":"EID8d0ab210-91e5-43c7-a9ae-860d5a472f34"},{"ref":"EIDe72172d1-9777-4f71-ac5b-a89b85bac1df"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:09:05Z","duration":153,"status":"PASSED"}]},"parent":{"ref":"EID6ee5a1d9-0175-1000-7d02-fb20619323d5"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:09:04Z","duration":742,"status":"PASSED"},{"id":"EID6ee5a5d5-0175-1000-097a-6b5da52599a8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a673-0175-1000-eeba-1792a56a37ee","parent":{"ref":"EID6ee5a5d5-0175-1000-097a-6b5da52599a8"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a673-0175-1000-b82a-87e5df744c93","parent":{"ref":"EID6ee5a5d5-0175-1000-097a-6b5da52599a8"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a673-0175-1000-a6a6-57c44ca0f6db","parent":{"ref":"EID6ee5a5d5-0175-1000-097a-6b5da52599a8"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a673-0175-1000-1f5d-f924928e54d4","parent":{"ref":"EID6ee5a5d5-0175-1000-097a-6b5da52599a8"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf7144cd0-e6fc-45eb-8e73-77466d479a8e"},{"ref":"EID1ca1805c-2758-4377-af31-6e219137314f"},{"ref":"EID4cc8f33e-d159-4513-bb82-bbb5964641d6"}]},"parent":{"ref":"EID6ee5a1d9-0175-1000-7d02-fb20619323d5"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:09:05Z","duration":27,"status":"PASSED"}]},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:09:04Z","duration":1178,"status":"PASSED"},{"id":"EID6ee5a673-0175-1000-ecc5-d1af995686d9","testStepResults":{"TestStepResult":{"id":"EID6ee5a673-0175-1000-72df-882f75b30b8c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a70b-0175-1000-562d-4d37e3c14912","parent":{"ref":"EID6ee5a673-0175-1000-72df-882f75b30b8c"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a70b-0175-1000-178d-683edd8759a7","parent":{"ref":"EID6ee5a673-0175-1000-72df-882f75b30b8c"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a70b-0175-1000-0e65-9a6a76d574b9","parent":{"ref":"EID6ee5a673-0175-1000-72df-882f75b30b8c"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a70b-0175-1000-af47-0ada4621632c","parent":{"ref":"EID6ee5a673-0175-1000-72df-882f75b30b8c"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID88ceea2b-6367-4bd9-a1db-bb404ac4cf9a"},{"ref":"EIDbb6eded4-0b0a-4959-9a2c-f5be9d6059a1"},{"ref":"EIDd6c9034d-27aa-4e30-ae34-1062f87f21b2"}]},"parent":{"ref":"EID6ee5a673-0175-1000-ecc5-d1af995686d9"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:09:05Z","duration":72,"status":"PASSED"}},"parent":{"ref":"EID6ee59a7a-0175-1000-5c22-290a88f34318"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:09:05Z","duration":152,"status":"PASSED"}]},"parent":{"ref":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:09:02Z","duration":3217,"status":"PASSED"},{"id":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f","testCaseResults":{"TestCaseResult":[{"id":"EID6ee5a70c-0175-1000-57a1-923550d313d6","testStepResults":{"TestStepResult":[{"id":"EID6ee5a70c-0175-1000-4155-fbd61876474a","parent":{"ref":"EID6ee5a70c-0175-1000-57a1-923550d313d6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:09:05Z","duration":321,"status":"PASSED"},{"id":"EID6ee5a70c-0175-1000-ef86-85d2be3860e4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a7a6-0175-1000-fda5-e744a2a4e828","parent":{"ref":"EID6ee5a70c-0175-1000-ef86-85d2be3860e4"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a7a6-0175-1000-e3f6-ad723007542d","parent":{"ref":"EID6ee5a70c-0175-1000-ef86-85d2be3860e4"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a7a6-0175-1000-5895-818e20ef8181","parent":{"ref":"EID6ee5a70c-0175-1000-ef86-85d2be3860e4"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:09:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID487b13bf-b3dc-4142-98b8-eb3952b65624"},{"ref":"EID61ad2174-75e0-44b3-b93a-c3bc8a1ac8ff"},{"ref":"EIDe6553a83-ea7b-4e10-b731-d3d275d9224b"}]},"parent":{"ref":"EID6ee5a70c-0175-1000-57a1-923550d313d6"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:09:05Z","duration":24,"status":"PASSED"},{"id":"EID6ee5a7a6-0175-1000-b365-36276f6d3476","attachments":{"attachment":{"ref":"EID64bb2f59-7dc4-4fca-b9e6-5e1065dbdfb1"}},"parent":{"ref":"EID6ee5a70c-0175-1000-57a1-923550d313d6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:09:05Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:09:05Z","duration":169,"status":"PASSED"},{"id":"EID6ee5a7b5-0175-1000-a8c2-a62fa4bb4f8c","testStepResults":{"TestStepResult":[{"id":"EID6ee5a7b5-0175-1000-97bd-85c6a5a55f07","parent":{"ref":"EID6ee5a7b5-0175-1000-a8c2-a62fa4bb4f8c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:09:05Z","duration":321,"status":"PASSED"},{"id":"EID6ee5a7b5-0175-1000-e7a9-e52d838dd604","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a87f-0175-1000-cb68-60894a2ba67b","parent":{"ref":"EID6ee5a7b5-0175-1000-e7a9-e52d838dd604"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a87f-0175-1000-a1bb-5b5aa0ea0d1a","parent":{"ref":"EID6ee5a7b5-0175-1000-e7a9-e52d838dd604"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a87f-0175-1000-bbcb-44e97db54ad8","parent":{"ref":"EID6ee5a7b5-0175-1000-e7a9-e52d838dd604"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a87f-0175-1000-6bae-4ad78f9ee9ad","parent":{"ref":"EID6ee5a7b5-0175-1000-e7a9-e52d838dd604"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd221df3e-0447-4c51-b77a-3b9d781c35f8"},{"ref":"EID7c47840d-6874-4eba-9020-fe678f1d990f"},{"ref":"EIDfbc1e940-f184-45fd-942f-aeeb4d39562f"}]},"parent":{"ref":"EID6ee5a7b5-0175-1000-a8c2-a62fa4bb4f8c"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:09:05Z","duration":100,"status":"PASSED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:09:05Z","duration":203,"status":"PASSED"},{"id":"EID6ee5a880-0175-1000-6e07-21ce6838dedf","testStepResults":{"TestStepResult":[{"id":"EID6ee5a880-0175-1000-4557-37da8179b4b7","parent":{"ref":"EID6ee5a880-0175-1000-6e07-21ce6838dedf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":321,"status":"PASSED"},{"id":"EID6ee5a880-0175-1000-ff69-caeddbfeaea4","parent":{"ref":"EID6ee5a880-0175-1000-6e07-21ce6838dedf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a880-0175-1000-ac3c-8db15481e60a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5a994-0175-1000-c457-cf70ad387b60","parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a994-0175-1000-3962-1004ed0b763d","parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a994-0175-1000-3caa-96d3a638a085","parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a994-0175-1000-ae83-9c627f47dbe0","parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a994-0175-1000-2dd8-e80fe14df612","parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a994-0175-1000-437b-fff5f0cd27f6","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"FAILED"},{"id":"EID6ee5a994-0175-1000-5ffe-3efa4bcb0428","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee5a880-0175-1000-ac3c-8db15481e60a"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID2ff44821-ea5c-4c9b-bc0f-fe7d30fa0c26"},{"ref":"EID516cd683-bb04-440b-a24d-aec1a3cea175"},{"ref":"EIDe1fb5ac5-0def-4aed-8088-4e8e7d0af67a"}]},"parent":{"ref":"EID6ee5a880-0175-1000-6e07-21ce6838dedf"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:09:06Z","duration":101,"status":"FAILED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:09:06Z","duration":277,"status":"FAILED"},{"id":"EID6ee5a99f-0175-1000-cd1c-e598460df5a4","testStepResults":{"TestStepResult":[{"id":"EID6ee5a9a0-0175-1000-0d37-93ecaf145bdd","parent":{"ref":"EID6ee5a99f-0175-1000-cd1c-e598460df5a4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":321,"status":"PASSED"},{"id":"EID6ee5a9a0-0175-1000-3789-200b48342125","parent":{"ref":"EID6ee5a99f-0175-1000-cd1c-e598460df5a4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5aa63-0175-1000-8772-d483907b7a00","parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-8a35-b56d1b6652fd","parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-abb3-4968be48e47d","parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-3938-b57cac9dba52","parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-63ca-5d5b500d9e54","parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-5711-899ba2b07182","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee5a9a0-0175-1000-4112-79a56dfb2950"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:09:06Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa8bd1eaa-e32d-45d9-87bf-6880d003a0e3"},{"ref":"EID130911ce-dc80-424c-820c-5ba7afbeb514"},{"ref":"EID3c257ba7-a1c8-4e6e-b8ac-b69f79b277a2"}]},"parent":{"ref":"EID6ee5a99f-0175-1000-cd1c-e598460df5a4"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:09:06Z","duration":76,"status":"FAILED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:09:06Z","duration":196,"status":"FAILED"},{"id":"EID6ee5aa63-0175-1000-2c2f-ea75dbcd9aa8","testStepResults":{"TestStepResult":[{"id":"EID6ee5aa63-0175-1000-c9d7-420c84a7fa98","parent":{"ref":"EID6ee5aa63-0175-1000-2c2f-ea75dbcd9aa8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":321,"status":"PASSED"},{"id":"EID6ee5aa63-0175-1000-cf41-99d6e61b2933","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EIDa6c58506-0360-441c-81da-d0a2c0d6a320"},{"ref":"EID9900d55f-f98c-4304-8e28-b41f7a65d569"},{"ref":"EID82e0caf7-61a8-49c4-9b83-ee97c2888e8e"},{"ref":"EIDaccffea3-cccf-49a4-a082-86e50404b83a"},{"ref":"EID91bc0638-4f90-4935-8a80-ee00837c9149"},{"ref":"EIDb827bc5d-6cd6-4ee6-ae22-90d4befc2387"},{"ref":"EIDffca4146-7299-467d-889e-c23998d4453f"},{"ref":"EID22e6bb33-3bfd-48c8-8f97-d9b08044bcfd"},{"ref":"EID55b6c738-2ffb-444b-9f6c-a3f5190cf047"},{"ref":"EID88ea5e2a-aa3c-4f8f-8b6a-3e264d13355d"},{"ref":"EIDfdae867d-4adb-46ab-ac3a-650f1ea6910b"},{"ref":"EID6880dc17-b254-4fa8-8de6-d4e94e795d0c"},{"ref":"EID44c233f9-201e-40e8-bcbb-3ab47b449d91"},{"ref":"EIDd3d63950-3b6b-45c4-a878-d95dd8deed1d"},{"ref":"EIDce1de1af-6cbe-433f-b676-737f1b4c3408"}]},"parent":{"ref":"EID6ee5aa63-0175-1000-2c2f-ea75dbcd9aa8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:09:06Z","duration":699,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:09:06Z","duration":1027,"status":"SKIPPED"},{"id":"EID6ee5ae66-0175-1000-3210-d8a824c7e3ce","testStepResults":{"TestStepResult":[{"id":"EID6ee5ae66-0175-1000-fd3b-eb5e74c95cc1","parent":{"ref":"EID6ee5ae66-0175-1000-3210-d8a824c7e3ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:09:07Z","duration":321,"status":"PASSED"},{"id":"EID6ee5ae66-0175-1000-b3a7-0845bf3a551f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5af08-0175-1000-3f55-75b388b9e4e2","parent":{"ref":"EID6ee5ae66-0175-1000-b3a7-0845bf3a551f"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5af08-0175-1000-8e11-b6622d7f631a","parent":{"ref":"EID6ee5ae66-0175-1000-b3a7-0845bf3a551f"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5af08-0175-1000-15ff-a28eaf424eda","parent":{"ref":"EID6ee5ae66-0175-1000-b3a7-0845bf3a551f"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5af08-0175-1000-75bf-d2fc68fe3af8","parent":{"ref":"EID6ee5ae66-0175-1000-b3a7-0845bf3a551f"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1ef7bdf5-de9d-4956-abb6-4a916843a110"},{"ref":"EIDf778dcbd-5bea-4f9b-8fd0-6a74795a0f0b"},{"ref":"EID757546ff-144e-4699-b7bf-9ee8621453a3"}]},"parent":{"ref":"EID6ee5ae66-0175-1000-3210-d8a824c7e3ce"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:09:07Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:09:07Z","duration":163,"status":"PASSED"},{"id":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc","testStepResults":{"TestStepResult":[{"id":"EID6ee5af09-0175-1000-8742-d2bff5747bf0","parent":{"ref":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:09:07Z","duration":321,"status":"PASSED"},{"id":"EID6ee5af09-0175-1000-e34c-d93ccc308a77","parent":{"ref":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5af09-0175-1000-49b5-2767aaf151ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5afc0-0175-1000-c7c4-4f9c0fda8950","parent":{"ref":"EID6ee5af09-0175-1000-49b5-2767aaf151ca"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5afc0-0175-1000-0b65-5a5cabcf24b2","parent":{"ref":"EID6ee5af09-0175-1000-49b5-2767aaf151ca"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5afc0-0175-1000-8d68-dfdf52f3d911","parent":{"ref":"EID6ee5af09-0175-1000-49b5-2767aaf151ca"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5afc0-0175-1000-5845-ada426f7f24e","parent":{"ref":"EID6ee5af09-0175-1000-49b5-2767aaf151ca"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID77ca5119-9d02-419e-9816-082b738f9ff7"},{"ref":"EID1e29eacf-28a9-43f3-a187-e8fabb2a90c2"},{"ref":"EID3a235de5-cbb5-40a8-98a8-072067c4b615"}]},"parent":{"ref":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:09:07Z","duration":74,"status":"PASSED"},{"id":"EID6ee5afc0-0175-1000-a631-2fb45bb57fa1","attachments":{"attachment":{"ref":"EIDf897f02e-baeb-4b31-80fd-ec9f94757d8d"}},"parent":{"ref":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:09:07Z","duration":15,"status":"PASSED"},{"id":"EID6ee5afda-0175-1000-e73a-66f836eda412","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5afe1-0175-1000-f054-b2b03ed63e95","parent":{"ref":"EID6ee5afda-0175-1000-e73a-66f836eda412"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5afe1-0175-1000-105f-2931abd0f6d2","parent":{"ref":"EID6ee5afda-0175-1000-e73a-66f836eda412"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee5afe1-0175-1000-c3bb-3c4b68eb56e5","parent":{"ref":"EID6ee5afda-0175-1000-e73a-66f836eda412"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf24b61ce-1cc9-4819-ab38-ce1046ee6e42"},{"ref":"EID5b3056b9-8265-4655-862b-20de2e34ce44"}]},"parent":{"ref":"EID6ee5af09-0175-1000-f8c0-6b33d2efe1dc"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:09:07Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee5a70b-0175-1000-e3c0-fc4af33fa47f"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:09:07Z","duration":216,"status":"PASSED"}]},"parent":{"ref":"EIDdf2862be-c330-4f41-8a44-afbb4336a4d5"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:09:05Z","duration":2262,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID2d8fe776-bb56-4c77-bf28-b67f75457d8a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID2d8fe776-bb56-4c77-bf28-b67f75457d8a"}},{"type":"Message","id":"EID932be0e3-bca4-4a99-85b3-dc12aa049994","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID932be0e3-bca4-4a99-85b3-dc12aa049994"}},{"type":"ServiceResponse","id":"EIDd4400388-9763-4af9-bdb1-84fcc45c95f4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDd4400388-9763-4af9-bdb1-84fcc45c95f4"}},{"type":"Message","id":"EID9f4f909b-9208-4891-8fd2-579867b921de","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID9f4f909b-9208-4891-8fd2-579867b921de"}},{"type":"Message","id":"EID9900d55f-f98c-4304-8e28-b41f7a65d569","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID9900d55f-f98c-4304-8e28-b41f7a65d569"}},{"type":"ServiceResponse","id":"EID2d0f6f59-effe-43fb-99fb-b788781589d0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID2d0f6f59-effe-43fb-99fb-b788781589d0"}},{"type":"Message","id":"EIDccaa1d18-b0b2-4171-81d9-f74c242ec907","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDccaa1d18-b0b2-4171-81d9-f74c242ec907"}},{"type":"GetParameter","id":"EIDbe40f545-6afc-45a1-bc9e-21dd3c298938","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EIDd93c87ff-e1fe-44f7-b198-69f425892bdc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID55b6c738-2ffb-444b-9f6c-a3f5190cf047","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID55b6c738-2ffb-444b-9f6c-a3f5190cf047"}},{"type":"ServiceResponse","id":"EID96037cdc-8778-4511-8302-8f8e8be6ba78","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID96037cdc-8778-4511-8302-8f8e8be6ba78"}},{"type":"Message","id":"EID3d247c0a-f604-4211-b083-a9ee2f01537f","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID3d247c0a-f604-4211-b083-a9ee2f01537f"}},{"type":"ServiceResponse","id":"EIDd405adc1-87a8-4f53-a640-839552b8827c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDd405adc1-87a8-4f53-a640-839552b8827c"}},{"type":"ServiceEndpoint","id":"EID6f78cc8c-cfb1-4b2b-b879-61f79e1e849a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EIDffca4146-7299-467d-889e-c23998d4453f","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDffca4146-7299-467d-889e-c23998d4453f"}},{"type":"Message","id":"EID1b294c92-0bfc-4cf5-bd2e-f433cae95957","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID1b294c92-0bfc-4cf5-bd2e-f433cae95957"}},{"type":"ServiceResponse","id":"EID408c6493-fce9-4b39-a2bb-aed039794418","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID408c6493-fce9-4b39-a2bb-aed039794418"}},{"type":"ServiceEndpoint","id":"EIDdd8a5d8f-545b-4479-8492-263373f6d9d8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9kb3dubG9hZHMvUERfTkxfTEFVLmdwa2cuemlw"},{"type":"Message","id":"EID76253387-af30-4198-a0c3-96e7e06266a0","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID76253387-af30-4198-a0c3-96e7e06266a0"}},{"type":"ServiceEndpoint","id":"EIDfcd10e8f-f52a-467d-9298-5094fecc910d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID160cf029-8aba-4391-b248-70fbb9f6359f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID160cf029-8aba-4391-b248-70fbb9f6359f"}},{"type":"GetParameter","id":"EID9e85ea14-63bf-4940-ae70-21c240152394","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EID3131572a-422f-492e-8d8a-3f40a297ff2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID3131572a-422f-492e-8d8a-3f40a297ff2f"}},{"type":"ServiceResponse","id":"EID295656fb-b7cc-47f3-ab02-e55425ce6870","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID295656fb-b7cc-47f3-ab02-e55425ce6870"}},{"type":"ServiceEndpoint","id":"EID487b13bf-b3dc-4142-98b8-eb3952b65624","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID9b763f8d-f5ac-409d-b411-9d3c4512be51","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDaecbf574-baa6-492c-a3ac-b184508e9ab4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EID8d0ab210-91e5-43c7-a9ae-860d5a472f34","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID8d0ab210-91e5-43c7-a9ae-860d5a472f34"}},{"type":"GetParameter","id":"EID5b3056b9-8265-4655-862b-20de2e34ce44","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EID3c257ba7-a1c8-4e6e-b8ac-b69f79b277a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID22e6bb33-3bfd-48c8-8f97-d9b08044bcfd","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID22e6bb33-3bfd-48c8-8f97-d9b08044bcfd"}},{"type":"LogFile","id":"EID61bd3129-cbbe-4925-9d05-c1300fb90918","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID61bd3129-cbbe-4925-9d05-c1300fb90918"}},{"type":"ServiceResponse","id":"EIDa7fff2e2-eed1-4689-b704-ac1538f2967d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDa7fff2e2-eed1-4689-b704-ac1538f2967d"}},{"type":"ServiceResponse","id":"EID1eb5e248-daf4-4286-bfa3-d5ef2500e3d0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID1eb5e248-daf4-4286-bfa3-d5ef2500e3d0"}},{"type":"GetParameter","id":"EIDf28df8a8-60ef-475b-b43f-f174499a7a51","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EIDb827bc5d-6cd6-4ee6-ae22-90d4befc2387","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDb827bc5d-6cd6-4ee6-ae22-90d4befc2387"}},{"type":"GetParameter","id":"EIDab8c7ee9-e643-4ea6-a294-6cfe06fd9187","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID19fdaf91-2587-41fe-9c08-284da25d14d0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID19fdaf91-2587-41fe-9c08-284da25d14d0"}},{"type":"GetParameter","id":"EID24dee4b0-d75b-4159-a6f7-209823de2389","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa17d9895-5c7a-4373-b1e4-453d2334e1f0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDa17d9895-5c7a-4373-b1e4-453d2334e1f0"}},{"type":"ServiceEndpoint","id":"EIDb89a3468-b6be-4110-979e-bfa091c94b3f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDae8cb4c5-6ec3-4a0b-b66d-0019d5b6ca64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID3a14fdf5-0e68-4475-9483-83c3164ae09d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID7868b8e3-ea5f-45c3-b3c8-1efc7a1406a3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID7868b8e3-ea5f-45c3-b3c8-1efc7a1406a3"}},{"type":"ServiceResponse","id":"EID516cd683-bb04-440b-a24d-aec1a3cea175","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID516cd683-bb04-440b-a24d-aec1a3cea175"}},{"type":"ServiceResponse","id":"EIDc76f3bca-49ba-4951-8352-c140913d499f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDc76f3bca-49ba-4951-8352-c140913d499f"}},{"type":"Message","id":"EID912f5bc4-7550-4706-9db3-7e45c882178d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID912f5bc4-7550-4706-9db3-7e45c882178d"}},{"type":"GetParameter","id":"EID4381c627-00d3-4117-b3b5-9cc0af485d1d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9kb3dubG9hZHMvUERfTkxfTEFVLmdwa2cuemlw"},{"type":"GetParameter","id":"EIDada60e53-8a6a-4266-8ebc-202288f05f8a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID8b127f60-c04b-4fd6-a934-60b233bc5793","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDef08d14c-a9cc-4e41-8f60-86616e02ae7f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDef08d14c-a9cc-4e41-8f60-86616e02ae7f"}},{"type":"GetParameter","id":"EID3f571441-8388-49d5-ba20-3e7feee5d3c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID5433accc-4a94-43fb-8dcd-31ad5091ee13","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID64bb2f59-7dc4-4fca-b9e6-5e1065dbdfb1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID64bb2f59-7dc4-4fca-b9e6-5e1065dbdfb1"}},{"type":"Message","id":"EIDce1de1af-6cbe-433f-b676-737f1b4c3408","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDce1de1af-6cbe-433f-b676-737f1b4c3408"}},{"type":"ServiceResponse","id":"EID49ecaa0e-9a9c-42f9-914c-043b7b56df30","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID49ecaa0e-9a9c-42f9-914c-043b7b56df30"}},{"type":"GetParameter","id":"EID8960c968-db2a-426f-a352-4fb72304325b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EIDeda7b912-1628-48ab-9d58-22f3eebbb536","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDeda7b912-1628-48ab-9d58-22f3eebbb536"}},{"type":"ServiceEndpoint","id":"EIDccdee3c5-69f0-48ce-bab8-1543b99159ee","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID78f8b71e-3701-4c36-a5c0-4019c0726acf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDca545e67-ce34-452b-81ad-e547b0318a64","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDd6c9034d-27aa-4e30-ae34-1062f87f21b2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EIDe67cf46f-0c81-4780-8166-b769ebbd78dc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID020a6fab-c72b-4dec-9c84-a2e2178c437e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID020a6fab-c72b-4dec-9c84-a2e2178c437e"}},{"type":"ServiceEndpoint","id":"EID0178c730-e2d4-4189-9032-089c1c1c5d74","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID757546ff-144e-4699-b7bf-9ee8621453a3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID47a372f0-871b-4d2b-8d2f-9fcf79ad2cf5","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID47a372f0-871b-4d2b-8d2f-9fcf79ad2cf5"}},{"type":"Message","id":"EIDfdae867d-4adb-46ab-ac3a-650f1ea6910b","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDfdae867d-4adb-46ab-ac3a-650f1ea6910b"}},{"type":"GetParameter","id":"EID7b11fe3b-bff1-44eb-9bcb-d0c5079011ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EID5a1df360-23c9-4207-8a44-25d315087ae0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDc683bb77-8e3e-44b7-9020-92bc8a6d8114","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"GetParameter","id":"EID89779d4b-32ca-4435-af2b-2d780fd5e0df","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID3f630d75-2cfd-4756-abc0-e38ac6c4ff48","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID3f630d75-2cfd-4756-abc0-e38ac6c4ff48"}},{"type":"Message","id":"EID41c0efb9-5b25-4862-bb68-ee5c2647f3f4","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID41c0efb9-5b25-4862-bb68-ee5c2647f3f4"}},{"type":"ServiceEndpoint","id":"EIDa8bd1eaa-e32d-45d9-87bf-6880d003a0e3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDfbd13ecf-fda3-42c0-bd32-9939da4a40ea","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDfbd13ecf-fda3-42c0-bd32-9939da4a40ea"}},{"type":"Message","id":"EID375313ba-4e48-4d34-b89f-6d801cd110f2","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID375313ba-4e48-4d34-b89f-6d801cd110f2"}},{"type":"ServiceEndpoint","id":"EID32a56398-e32b-4e3a-a51e-86e7efe9c357","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDdbaff071-075a-47ee-9119-18a79d9021aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID5bb5e5dc-eef3-4908-82bf-21b162df4496","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EIDaccffea3-cccf-49a4-a082-86e50404b83a","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDaccffea3-cccf-49a4-a082-86e50404b83a"}},{"type":"ServiceResponse","id":"EIDb87fdeca-f1f5-4435-9f1d-4065982aca2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDb87fdeca-f1f5-4435-9f1d-4065982aca2f"}},{"type":"ServiceResponse","id":"EID03593c81-ec05-4642-9fde-9c31d1ce8743","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID03593c81-ec05-4642-9fde-9c31d1ce8743"}},{"type":"ServiceEndpoint","id":"EID7674335b-fc4a-4532-8e88-b87a17e1c4f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EIDd8c464cb-dd12-46f1-9b67-c06c0fea51fe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDf38bbca1-c4f6-4b27-af5b-21aa9d96b0e6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDf38bbca1-c4f6-4b27-af5b-21aa9d96b0e6"}},{"type":"GetParameter","id":"EID0e292f11-426a-4f12-860a-34b82d750324","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EIDdbcdbc28-4b31-438a-9071-939ccf6c1be3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDf83f9102-8e4c-4574-86d1-2ec77702f3d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID16f668a8-3e44-4467-8f3d-83739a00cb67","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID91bc0638-4f90-4935-8a80-ee00837c9149","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID91bc0638-4f90-4935-8a80-ee00837c9149"}},{"type":"ServiceResponse","id":"EID868ddc86-5150-437e-8b18-26011cd563bc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID868ddc86-5150-437e-8b18-26011cd563bc"}},{"type":"GetParameter","id":"EID8561e502-d72b-4d40-b008-a31c039906de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDecad24ea-05b0-4e2b-b91e-74de108ae61d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDecad24ea-05b0-4e2b-b91e-74de108ae61d"}},{"type":"Message","id":"EIDe0ecf34b-cacf-4e18-9592-5c6d287138f8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe0ecf34b-cacf-4e18-9592-5c6d287138f8"}},{"type":"Message","id":"EIDdd59d3ba-752c-4e92-8549-b742313d9726","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDdd59d3ba-752c-4e92-8549-b742313d9726"}},{"type":"ServiceEndpoint","id":"EIDd9eb398a-8080-44fc-a3b3-05f426ce385e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDf4f7575c-4368-493a-8f71-94e094ce384f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDf4f7575c-4368-493a-8f71-94e094ce384f"}},{"type":"ServiceEndpoint","id":"EIDdcd90594-b843-4860-8c4f-a728629d6abb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EIDe5232486-9341-42ea-bdd1-367e206896d4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe5232486-9341-42ea-bdd1-367e206896d4"}},{"type":"ServiceResponse","id":"EID7c47840d-6874-4eba-9020-fe678f1d990f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID7c47840d-6874-4eba-9020-fe678f1d990f"}},{"type":"ServiceResponse","id":"EIDfaaada6f-22fc-4c4c-89df-977de1235677","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDfaaada6f-22fc-4c4c-89df-977de1235677"}},{"type":"GetParameter","id":"EIDe6553a83-ea7b-4e10-b731-d3d275d9224b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDf483baa9-47cf-4ac3-b3bd-7c8672b5786d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID1e29eacf-28a9-43f3-a187-e8fabb2a90c2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID1e29eacf-28a9-43f3-a187-e8fabb2a90c2"}},{"type":"Message","id":"EID88185882-2e5d-4aca-891c-19128b2e8fb9","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID88185882-2e5d-4aca-891c-19128b2e8fb9"}},{"type":"ServiceResponse","id":"EIDe2f4ba7a-15d0-465c-8fd4-9c9eb04a3303","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe2f4ba7a-15d0-465c-8fd4-9c9eb04a3303"}},{"type":"GetParameter","id":"EID183038c7-d7cd-4135-a372-1aaeb51e2eea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID12654c42-7d89-44b8-ae07-cfd2e212fe62","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDe02bdd46-4328-4abb-aace-a750ffdd403b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe02bdd46-4328-4abb-aace-a750ffdd403b"}},{"type":"ServiceResponse","id":"EID61ad2174-75e0-44b3-b93a-c3bc8a1ac8ff","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID61ad2174-75e0-44b3-b93a-c3bc8a1ac8ff"}},{"type":"GetParameter","id":"EIDe72172d1-9777-4f71-ac5b-a89b85bac1df","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID01af7b1e-56f1-4a0c-bd08-4b0a59a34917","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDebf89b6c-ca14-4edb-9c68-e23e31ed7fd4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDebf89b6c-ca14-4edb-9c68-e23e31ed7fd4"}},{"type":"ServiceResponse","id":"EIDea1aaa82-418f-4af3-a277-d9da3197fe8c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDea1aaa82-418f-4af3-a277-d9da3197fe8c"}},{"type":"GetParameter","id":"EID4eca08fe-4c3a-4d1d-951d-7a13058ba042","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID7a330475-f852-4e40-8107-944bf7a85e72","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID7a330475-f852-4e40-8107-944bf7a85e72"}},{"type":"GetParameter","id":"EID4e199405-0ade-4ce4-b70c-c8e30496657b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID8207a9c0-bc0a-4bf2-a16d-3f87bb9d0606","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID57e8ad22-cd81-453b-80d1-79c67ddf632c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EIDbb6eded4-0b0a-4959-9a2c-f5be9d6059a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDbb6eded4-0b0a-4959-9a2c-f5be9d6059a1"}},{"type":"GetParameter","id":"EID549a8bb3-3275-450f-937b-7f8c2ffbbda6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID6269d44b-85ee-434e-87a2-d1faf9013177","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"ServiceEndpoint","id":"EID1b1f9ed5-661b-4cbe-b4aa-f858deb498b6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDbfa86af3-feaa-4299-9627-c4fd8e553b2b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDbfa86af3-feaa-4299-9627-c4fd8e553b2b"}},{"type":"GetParameter","id":"EIDfbc1e940-f184-45fd-942f-aeeb4d39562f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDff4d20d0-f752-4e69-ab71-f7cc85e057a7","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDff4d20d0-f752-4e69-ab71-f7cc85e057a7"}},{"type":"ServiceResponse","id":"EID074a34d7-6b93-411a-9537-5c41887b160a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID074a34d7-6b93-411a-9537-5c41887b160a"}},{"type":"ServiceResponse","id":"EIDf778dcbd-5bea-4f9b-8fd0-6a74795a0f0b","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDf778dcbd-5bea-4f9b-8fd0-6a74795a0f0b"}},{"type":"ServiceEndpoint","id":"EID6452cd18-5dcb-452a-acfd-3dbefdb7d481","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID70a3dbd5-2a16-4480-8479-1fc43875d134","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID70a3dbd5-2a16-4480-8479-1fc43875d134"}},{"type":"Message","id":"EIDfeaa0973-13ba-4509-b8e9-2176f1a1405e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDfeaa0973-13ba-4509-b8e9-2176f1a1405e"}},{"type":"ServiceEndpoint","id":"EID262a09be-d121-4d31-9c42-e05d6ef14afb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"Message","id":"EID0ed602e1-b46d-4401-a4b4-03d19823a5b8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID0ed602e1-b46d-4401-a4b4-03d19823a5b8"}},{"type":"ServiceResponse","id":"EID0f686fd6-f402-499f-b849-d0eda5fc3294","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID0f686fd6-f402-499f-b849-d0eda5fc3294"}},{"type":"ServiceResponse","id":"EID1ebd595c-4291-4b98-a483-6d75ac8f4b96","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID1ebd595c-4291-4b98-a483-6d75ac8f4b96"}},{"type":"ServiceEndpoint","id":"EIDdd55551c-8050-44be-8c2f-ec0f9cf1a79b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID648641bd-f7ab-4d38-98fc-dc35117a002a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID648641bd-f7ab-4d38-98fc-dc35117a002a"}},{"type":"GetParameter","id":"EID82257fd0-8cde-4306-aeb6-e87b34a2d8e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EID066e67f1-0635-45e6-806f-a777b082baf7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EID88ceea2b-6367-4bd9-a1db-bb404ac4cf9a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EID1ca1805c-2758-4377-af31-6e219137314f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID1ca1805c-2758-4377-af31-6e219137314f"}},{"type":"ServiceEndpoint","id":"EIDd221df3e-0447-4c51-b77a-3b9d781c35f8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID121f4d47-0cdc-4d3c-b345-e09423a05afc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID121f4d47-0cdc-4d3c-b345-e09423a05afc"}},{"type":"GetParameter","id":"EID3cbe15e5-b4b6-49a6-8b97-a786082b8706","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID2ff44821-ea5c-4c9b-bc0f-fe7d30fa0c26","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID618436e6-2acc-49d3-b76f-ca5ec5bb6489","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID45d07b8d-1a73-4b1b-ab7f-34c3efa851fa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDd3d63950-3b6b-45c4-a878-d95dd8deed1d","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDd3d63950-3b6b-45c4-a878-d95dd8deed1d"}},{"type":"ServiceEndpoint","id":"EIDe340c63e-6ca9-49aa-a26f-bb153614da86","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDf0482305-5f80-4b17-87b3-0965e92c862a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID453f577f-7821-40b7-a5f4-171df3136b3b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDd9e81e48-59be-4dda-b803-33049ceec391","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa6c58506-0360-441c-81da-d0a2c0d6a320","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDa6c58506-0360-441c-81da-d0a2c0d6a320"}},{"type":"GetParameter","id":"EID6487315d-6554-4e48-87ec-b99bef763280","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID3a235de5-cbb5-40a8-98a8-072067c4b615","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID66f998e0-71d4-416a-8933-238caedefa29","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID66f998e0-71d4-416a-8933-238caedefa29"}},{"type":"GetParameter","id":"EIDc05c0a19-19b3-4033-a4ac-568ba0d5040e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EIDa45c5542-663c-43a6-ab04-dcd44898def1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDa45c5542-663c-43a6-ab04-dcd44898def1"}},{"type":"GetParameter","id":"EIDddcc5f00-ffdd-4357-b188-cff00b305f16","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID0745834f-f6cc-4e75-a817-910c4635ef85","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID6880dc17-b254-4fa8-8de6-d4e94e795d0c","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID6880dc17-b254-4fa8-8de6-d4e94e795d0c"}},{"type":"ServiceEndpoint","id":"EID27afa3c2-64ab-4961-962d-030020c3896a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID3be7cc62-57d4-4a37-b3d8-f145671abf18","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID3be7cc62-57d4-4a37-b3d8-f145671abf18"}},{"type":"ServiceResponse","id":"EIDcc662bbe-5266-4b4c-90e6-119fe652c039","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDcc662bbe-5266-4b4c-90e6-119fe652c039"}},{"type":"Message","id":"EID2382f77f-0d3f-4de4-94f5-75160b0edac2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID2382f77f-0d3f-4de4-94f5-75160b0edac2"}},{"type":"ServiceResponse","id":"EIDa979ed47-332b-4c9a-add7-976163bcd126","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDa979ed47-332b-4c9a-add7-976163bcd126"}},{"type":"ServiceEndpoint","id":"EID11126179-2a6a-493d-b188-dd49c2471b6a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EIDe11b05dd-79ec-40d9-b007-bbb870e1073a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe11b05dd-79ec-40d9-b007-bbb870e1073a"}},{"type":"ServiceResponse","id":"EID130911ce-dc80-424c-820c-5ba7afbeb514","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID130911ce-dc80-424c-820c-5ba7afbeb514"}},{"type":"ServiceEndpoint","id":"EIDf7144cd0-e6fc-45eb-8e73-77466d479a8e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceResponse","id":"EID7c6d1b7b-c318-45a6-bd3b-1f36345d2d45","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID7c6d1b7b-c318-45a6-bd3b-1f36345d2d45"}},{"type":"Message","id":"EID44c233f9-201e-40e8-bcbb-3ab47b449d91","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID44c233f9-201e-40e8-bcbb-3ab47b449d91"}},{"type":"ServiceEndpoint","id":"EIDf24b61ce-1cc9-4819-ab38-ce1046ee6e42","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EIDfeccb77b-d010-4365-9b78-61fe5f52d7e6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDfeccb77b-d010-4365-9b78-61fe5f52d7e6"}},{"type":"Message","id":"EID2529d4f9-fab6-4ac3-b8fd-32fa0b89304c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID2529d4f9-fab6-4ac3-b8fd-32fa0b89304c"}},{"type":"ServiceEndpoint","id":"EID17a28f34-5593-4987-8d30-66550e2af380","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EID44377dc7-fb10-49aa-81f0-428de2f033b3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID15eda749-0a9e-4802-ac96-b85c06b1f32d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID15eda749-0a9e-4802-ac96-b85c06b1f32d"}},{"type":"Message","id":"EID88ea5e2a-aa3c-4f8f-8b6a-3e264d13355d","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID88ea5e2a-aa3c-4f8f-8b6a-3e264d13355d"}},{"type":"Message","id":"EIDd7b14712-21b3-4306-a388-45f5e0701e6b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDd7b14712-21b3-4306-a388-45f5e0701e6b"}},{"type":"ServiceResponse","id":"EID90926e18-ba04-4089-b135-3b81fba9f1f8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID90926e18-ba04-4089-b135-3b81fba9f1f8"}},{"type":"ServiceResponse","id":"EID48dc3598-77ce-42dd-8127-21ade8027889","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID48dc3598-77ce-42dd-8127-21ade8027889"}},{"type":"ServiceEndpoint","id":"EIDe7673d42-51e2-4e43-a975-ecad0b5c5eb2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID82e0caf7-61a8-49c4-9b83-ee97c2888e8e","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID82e0caf7-61a8-49c4-9b83-ee97c2888e8e"}},{"type":"ServiceEndpoint","id":"EID09714bea-f892-4692-967b-11ee52a40ae3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDa8bbd212-7399-41f2-99f1-555c8534709f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID79b3448d-9541-4797-994b-34c8291e4234","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID79b3448d-9541-4797-994b-34c8291e4234"}},{"type":"ServiceEndpoint","id":"EID5a9681d9-1d37-40a8-bb17-9ae67f3e4a76","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EIDb9b279fa-b57e-4366-a20c-ffcad88ffc7f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDf897f02e-baeb-4b31-80fd-ec9f94757d8d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDf897f02e-baeb-4b31-80fd-ec9f94757d8d"}},{"type":"Message","id":"EID543c0f58-103b-4701-8e28-b1494108bb40","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID543c0f58-103b-4701-8e28-b1494108bb40"}},{"type":"ServiceEndpoint","id":"EIDb286c045-759c-4ee3-8f1a-4f0bdbb7c531","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID81015af3-29ba-4903-8423-4704e010693d","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID81015af3-29ba-4903-8423-4704e010693d"}},{"type":"ServiceResponse","id":"EIDe114e90f-b0f0-40dc-91bc-ef18286e2cdd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDe114e90f-b0f0-40dc-91bc-ef18286e2cdd"}},{"type":"GetParameter","id":"EIDf13ea882-29a3-4db8-9a93-91df11811ea9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"GetParameter","id":"EID7d06d7e6-f0a9-40f8-92fc-cecfba3213c8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4783eaf4-f3c7-469d-919b-d22f39b5fdd3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID77ca5119-9d02-419e-9816-082b738f9ff7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID5e405b9e-511a-4bdc-86e4-08382f2925d7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID5e405b9e-511a-4bdc-86e4-08382f2925d7"}},{"type":"GetParameter","id":"EID4cc8f33e-d159-4513-bb82-bbb5964641d6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"Message","id":"EID893a218f-c272-4d52-87fe-cd4668499d5e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID893a218f-c272-4d52-87fe-cd4668499d5e"}},{"type":"GetParameter","id":"EIDf53c47d6-1bc2-44d0-ad54-59ff7d4f1ff5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDce07f5d8-eb95-411e-8408-594444570c58","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EIDce07f5d8-eb95-411e-8408-594444570c58"}},{"type":"ServiceEndpoint","id":"EID820e3001-63d4-4d73-b6a5-025a3f0c5e8e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"ServiceEndpoint","id":"EID97541db8-6da4-47ac-a871-bca755d086a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"GetParameter","id":"EID9d0041f0-05d0-4458-af9d-eea033531a27","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvY2JzL3BkL2F0b20vdjFfMC9OTC1wb3B1bGF0aW9uLTIwMTgtcGVyLUxBVS1yZWdpb24tQVRPTS54bWw="},{"type":"GetParameter","id":"EIDe1fb5ac5-0def-4aed-8088-4e8e7d0af67a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID9631e9b8-02d2-494e-a832-7e9e665f6059","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDdf2862be-c330-4f41-8a44-afbb4336a4d5/Attachments/EID9631e9b8-02d2-494e-a832-7e9e665f6059"}},{"type":"ServiceEndpoint","id":"EID1ef7bdf5-de9d-4956-abb6-4a916843a110","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8wMzdlNTViZC1hMWRjLTRmZGUtYWRmZS00NjEwZDNhM2Q1Y2IvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:08:56Z","duration":11588,"status":"FAILED"}}}}}
11:09:23.693 [print] EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b
11:09:23.693 [print] FAILED
11:09:23.693 [print] FAILED
11:09:23.693 [print] Conformance Class Download Service - Pre-defined Atom
11:09:23.693 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b.json
11:09:23.693 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b.json
11:09:23.693 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID3c2d9ad1-482c-4aa3-9be8-11e1ea25f18b/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:23.721 [print] [ "TR.uniqueDatasetIdentifiers", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:09:23.721 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.uniqueDatasetIdentifiers" ]
11:15:56.503 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/cp/wfs?request=GetCapabilities
11:15:56.507 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/cp/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:56.907 response time in milliseconds: 399.83 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:56 GMT 1 < ETag: "18664-5af58ad4f2e69-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:56.915 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/cp/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:57.326 response time in milliseconds: 410.61 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:57 GMT 1 < ETag: "18664-5af58ad4f2e69-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:57.329 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:10:36.442 [print] testing url:https://geodata.nationaalgeoregister.nl/rdinfo/wfs?request=GetCapabilities&service=WFS
11:10:36.444 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rdinfo/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:36.852 response time in milliseconds: 406.69 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:36 GMT 1 < X-Cnection: [close, close]
11:10:36.858 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rdinfo/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:37.264 response time in milliseconds: 405.58 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:37 GMT 1 < X-Cnection: [close, close]
11:10:37.267 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:15.611 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getCapabilities&service=WFS"}}}
11:15:15.611 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 287
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getCapabilities&service=WFS"}}}
11:15:18.517 response time in milliseconds: 2800.80
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:18 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883718337","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:18.518 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:54.355 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:12:54.356 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:13:24.731 java.net.SocketTimeoutException: Read timed out, http call failed after 30375 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:13:24.731 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:26.893 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/atom/bestandbodemgebruik2015.xml"}}}
11:12:26.894 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 295
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/atom/bestandbodemgebruik2015.xml"}}}
11:12:57.258 java.net.SocketTimeoutException: Read timed out, http call failed after 30363 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:12:57.258 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:04.532 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}}}
11:04:04.660 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 287
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}}}
11:04:13.698 response time in milliseconds: 8274.19
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:12 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:04:10 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a8673546-9bf4-4a75-9d12-dd457d3cec44.json","testRuns":{"TestRun":{"id":"EIDa8673546-9bf4-4a75-9d12-dd457d3cec44","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:09.494Z","testTasks":{"TestTask":{"id":"EID8a5bfab6-78c9-4287-8070-6fc6ebea15fc","parent":{"ref":"EIDa8673546-9bf4-4a75-9d12-dd457d3cec44"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID84a82a99-fbc8-411b-aec5-6208f496df12"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID84a82a99-fbc8-411b-aec5-6208f496df12","remoteResource":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:05.618Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:08.79Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:04:13.762 [print] EIDa8673546-9bf4-4a75-9d12-dd457d3cec44
11:04:13.768 [print] UNDEFINED
11:04:13.811 [print] Conformance Class Download Service - Pre-defined Atom
11:04:13.815 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a8673546-9bf4-4a75-9d12-dd457d3cec44.json
11:04:13.827 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/log
11:04:13.862 [print] statuspath TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44
11:04:13.888 [print] progresspath TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
11:04:13.903 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:14.492 response time in milliseconds: 586.77
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:04:14 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"34","max":"35","log":["28.10.2020 11:04:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:09 UTC 2020)","28.10.2020 11:04:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:09 - Preparing 1 Test Task:","28.10.2020 11:04:09 - TestTask 1 (8a5bfab6-78c9-4287-8070-6fc6ebea15fc)","28.10.2020 11:04:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:09 - with parameters: ","28.10.2020 11:04:09 - etf.testcases = *","28.10.2020 11:04:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:09 - Setting state to CREATED","28.10.2020 11:04:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:10 - Starting TestRun.a8673546-9bf4-4a75-9d12-dd457d3cec44 at 2020-10-28T11:04:11Z","28.10.2020 11:04:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:11 - Project Properties: ","28.10.2020 11:04:11 - etf.testcases - * ","28.10.2020 11:04:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:04:11 - username - ","28.10.2020 11:04:11 - authUser - ","28.10.2020 11:04:11 - authMethod - basic ","28.10.2020 11:04:11 - TestRunTask initialized"]}
11:04:14.500 [print] {
"val": "34",
"max": "35",
"log": [
"28.10.2020 11:04:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:09 UTC 2020)",
"28.10.2020 11:04:09 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:04:09 - Preparing 1 Test Task:",
"28.10.2020 11:04:09 - TestTask 1 (8a5bfab6-78c9-4287-8070-6fc6ebea15fc)",
"28.10.2020 11:04:09 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:04:09 - with parameters: ",
"28.10.2020 11:04:09 - etf.testcases = *",
"28.10.2020 11:04:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:04:09 - Setting state to CREATED",
"28.10.2020 11:04:09 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:04:10 - Starting TestRun.a8673546-9bf4-4a75-9d12-dd457d3cec44 at 2020-10-28T11:04:11Z",
"28.10.2020 11:04:11 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:04:11 - Project Properties: ",
"28.10.2020 11:04:11 - etf.testcases - * ",
"28.10.2020 11:04:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ",
"28.10.2020 11:04:11 - username - ",
"28.10.2020 11:04:11 - authUser - ",
"28.10.2020 11:04:11 - authMethod - basic ",
"28.10.2020 11:04:11 - TestRunTask initialized"
]
}
11:04:14.509 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:15.041 response time in milliseconds: 530.29
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:04:14 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"38","max":"39","log":["28.10.2020 11:04:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:09 UTC 2020)","28.10.2020 11:04:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:09 - Preparing 1 Test Task:","28.10.2020 11:04:09 - TestTask 1 (8a5bfab6-78c9-4287-8070-6fc6ebea15fc)","28.10.2020 11:04:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:09 - with parameters: ","28.10.2020 11:04:09 - etf.testcases = *","28.10.2020 11:04:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:09 - Setting state to CREATED","28.10.2020 11:04:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:10 - Starting TestRun.a8673546-9bf4-4a75-9d12-dd457d3cec44 at 2020-10-28T11:04:11Z","28.10.2020 11:04:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:11 - Project Properties: ","28.10.2020 11:04:11 - etf.testcases - * ","28.10.2020 11:04:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:04:11 - username - ","28.10.2020 11:04:11 - authUser - ","28.10.2020 11:04:11 - authMethod - basic ","28.10.2020 11:04:11 - TestRunTask initialized"]}
11:04:15.063 retry condition not satisfied: response.val == response.max
11:04:15.065 sleeping before retry #1
11:04:20.068 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:20.590 response time in milliseconds: 521.70
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:04:20 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"101","max":"102","log":["28.10.2020 11:04:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:09 UTC 2020)","28.10.2020 11:04:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:09 - Preparing 1 Test Task:","28.10.2020 11:04:09 - TestTask 1 (8a5bfab6-78c9-4287-8070-6fc6ebea15fc)","28.10.2020 11:04:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:09 - with parameters: ","28.10.2020 11:04:09 - etf.testcases = *","28.10.2020 11:04:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:09 - Setting state to CREATED","28.10.2020 11:04:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:10 - Starting TestRun.a8673546-9bf4-4a75-9d12-dd457d3cec44 at 2020-10-28T11:04:11Z","28.10.2020 11:04:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:11 - Project Properties: ","28.10.2020 11:04:11 - etf.testcases - * ","28.10.2020 11:04:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:04:11 - username - ","28.10.2020 11:04:11 - authUser - ","28.10.2020 11:04:11 - authMethod - basic ","28.10.2020 11:04:11 - TestRunTask initialized"]}
11:04:20.596 retry condition not satisfied: response.val == response.max
11:04:20.596 sleeping before retry #2
11:04:25.599 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:26.129 response time in milliseconds: 528.45
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:04:26 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"192","max":"193","log":["28.10.2020 11:04:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:09 UTC 2020)","28.10.2020 11:04:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:09 - Preparing 1 Test Task:","28.10.2020 11:04:09 - TestTask 1 (8a5bfab6-78c9-4287-8070-6fc6ebea15fc)","28.10.2020 11:04:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:09 - with parameters: ","28.10.2020 11:04:09 - etf.testcases = *","28.10.2020 11:04:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:09 - Setting state to CREATED","28.10.2020 11:04:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:10 - Starting TestRun.a8673546-9bf4-4a75-9d12-dd457d3cec44 at 2020-10-28T11:04:11Z","28.10.2020 11:04:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:11 - Project Properties: ","28.10.2020 11:04:11 - etf.testcases - * ","28.10.2020 11:04:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:04:11 - username - ","28.10.2020 11:04:11 - authUser - ","28.10.2020 11:04:11 - authMethod - basic ","28.10.2020 11:04:11 - TestRunTask initialized","28.10.2020 11:04:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:04:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:04:25 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:04:26.130 retry condition not satisfied: response.val == response.max
11:04:26.130 sleeping before retry #3
11:04:31.132 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:33.164 response time in milliseconds: 2028.49
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:04:33 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:04:33.166 retry condition satisfied
11:04:33.168 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:04:33.171 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:36.749 response time in milliseconds: 2594.77
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:04:35 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:04:31 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a8673546-9bf4-4a75-9d12-dd457d3cec44.json","testRuns":{"TestRun":{"id":"EIDa8673546-9bf4-4a75-9d12-dd457d3cec44","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:09.494Z","testTasks":{"TestTask":{"id":"EID8a5bfab6-78c9-4287-8070-6fc6ebea15fc","parent":{"ref":"EIDa8673546-9bf4-4a75-9d12-dd457d3cec44"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID84a82a99-fbc8-411b-aec5-6208f496df12"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID84a82a99-fbc8-411b-aec5-6208f496df12","remoteResource":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:05.618Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:08.79Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4","testObject":{"ref":"EID84a82a99-fbc8-411b-aec5-6208f496df12"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee12ab0-0175-1000-8b43-c128ba4e0011","testCaseResults":{"TestCaseResult":[{"id":"EID6ee12ab0-0175-1000-016e-8b5ddc162223","testStepResults":{"TestStepResult":[{"id":"EID6ee12ab1-0175-1000-5667-ea1730d7a3f1","parent":{"ref":"EID6ee12ab0-0175-1000-016e-8b5ddc162223"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:04:11Z","duration":18,"status":"PASSED"},{"id":"EID6ee12ac3-0175-1000-0633-5992db53ebf7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee12bbf-0175-1000-c314-79435ff247c1","parent":{"ref":"EID6ee12ac3-0175-1000-0633-5992db53ebf7"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:04:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee12bbf-0175-1000-1ee8-c1331d71e946","parent":{"ref":"EID6ee12ac3-0175-1000-0633-5992db53ebf7"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:04:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee12bbf-0175-1000-dcb5-1a3be50c702a","parent":{"ref":"EID6ee12ac3-0175-1000-0633-5992db53ebf7"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:04:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee12bbf-0175-1000-d437-2afe85989c3e","parent":{"ref":"EID6ee12ac3-0175-1000-0633-5992db53ebf7"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:04:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID896412e5-7149-4822-bf66-4c8f023986b5"},{"ref":"EID3f9f02d5-6d9c-40ed-a417-5e27c82b7288"},{"ref":"EIDa520ab06-3152-475f-b3d4-35ec965f28e4"}]},"parent":{"ref":"EID6ee12ab0-0175-1000-016e-8b5ddc162223"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:04:11Z","duration":147,"status":"PASSED"}]},"parent":{"ref":"EID6ee12ab0-0175-1000-8b43-c128ba4e0011"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:04:11Z","duration":282,"status":"PASSED"},{"id":"EID6ee12bca-0175-1000-ceeb-cefad2bac8ff","testStepResults":{"TestStepResult":{"id":"EID6ee12bcb-0175-1000-d5a8-a235e5f63de1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee12c9d-0175-1000-8837-23574aa645a2","parent":{"ref":"EID6ee12bcb-0175-1000-d5a8-a235e5f63de1"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12c9d-0175-1000-0956-7725e52def07","parent":{"ref":"EID6ee12bcb-0175-1000-d5a8-a235e5f63de1"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12c9d-0175-1000-f803-a3be219163a6","parent":{"ref":"EID6ee12bcb-0175-1000-d5a8-a235e5f63de1"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6e0be2f2-1b8c-4eb2-9e50-0fa9261053b0"},{"ref":"EID3b25d274-160a-471b-a1f7-d6e0a8a068a0"},{"ref":"EID40789e2a-1886-4e75-8e0e-577c4e2ed0c1"}]},"parent":{"ref":"EID6ee12bca-0175-1000-ceeb-cefad2bac8ff"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:04:11Z","duration":100,"status":"PASSED"}},"parent":{"ref":"EID6ee12ab0-0175-1000-8b43-c128ba4e0011"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:04:11Z","duration":211,"status":"PASSED"}]},"parent":{"ref":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:04:11Z","duration":493,"status":"PASSED"},{"id":"EID6ee12c9d-0175-1000-c335-f704c69a75a9","testCaseResults":{"TestCaseResult":[{"id":"EID6ee12c9d-0175-1000-bbd1-8b22679c73b5","testStepResults":{"TestStepResult":[{"id":"EID6ee12c9d-0175-1000-0dd8-4d009ea90a5c","parent":{"ref":"EID6ee12c9d-0175-1000-bbd1-8b22679c73b5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:04:12Z","duration":117,"status":"PASSED"},{"id":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee12d4c-0175-1000-af1e-e0952dd4fa1a","parent":{"ref":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12d4c-0175-1000-85f5-59c74b4b0d24","parent":{"ref":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12d4c-0175-1000-a9a6-c51cb6152048","parent":{"ref":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12d4c-0175-1000-990f-12a7731fcecb","parent":{"ref":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12d4c-0175-1000-acc3-0eab9c187cf3","parent":{"ref":"EID6ee12cae-0175-1000-ec32-dc304f0b0cb4"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1f314814-1369-4613-b880-a3af71d2435f"},{"ref":"EIDc9a9a159-2cdd-470c-930f-91a29a644b19"},{"ref":"EIDcdb749b8-608c-4788-ac29-878367b4d66a"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-bbd1-8b22679c73b5"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:04:12Z","duration":48,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:04:12Z","duration":177,"status":"PASSED"},{"id":"EID6ee12d4e-0175-1000-dd1b-746929da7093","testStepResults":{"TestStepResult":[{"id":"EID6ee12d5b-0175-1000-8a07-201d07bf6b5d","attachments":{"attachment":[{"ref":"EID0fe6b394-a07b-40d5-8f84-a034f6394f3e"},{"ref":"EID3e9aad3d-30b9-44d6-8d8b-2c2d284c7a46"}]},"parent":{"ref":"EID6ee12d4e-0175-1000-dd1b-746929da7093"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:04:12Z","duration":94,"status":"PASSED"},{"id":"EID6ee12def-0175-1000-a5a2-19adeeb25ab1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee12eda-0175-1000-0ddf-466742133cb8","parent":{"ref":"EID6ee12def-0175-1000-a5a2-19adeeb25ab1"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12eda-0175-1000-fe3f-c79b6cdf6109","parent":{"ref":"EID6ee12def-0175-1000-a5a2-19adeeb25ab1"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12eda-0175-1000-c1c7-35358ad63b31","parent":{"ref":"EID6ee12def-0175-1000-a5a2-19adeeb25ab1"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee12eda-0175-1000-3b5d-4e83a54927d0","parent":{"ref":"EID6ee12def-0175-1000-a5a2-19adeeb25ab1"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:04:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0bab5c9b-eddd-4126-9f3d-1d0a537abc7f"},{"ref":"EID8c7a1450-2d6c-4e17-a69a-855e463eada9"},{"ref":"EID0233c275-88ab-4ef8-8117-0109c272ba7c"}]},"parent":{"ref":"EID6ee12d4e-0175-1000-dd1b-746929da7093"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:04:12Z","duration":162,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:04:12Z","duration":396,"status":"PASSED"},{"id":"EID6ee12ee2-0175-1000-3f93-38b618e2592f","testStepResults":{"TestStepResult":[{"id":"EID6ee12ee2-0175-1000-bea7-41e651b5ae73","attachments":{"attachment":[{"ref":"EID76630266-5cca-4dfe-8cb9-94729a9da178"},{"ref":"EID796ae61f-647f-4c07-af91-6571a898bd13"}]},"parent":{"ref":"EID6ee12ee2-0175-1000-3f93-38b618e2592f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:04:12Z","duration":100,"status":"PASSED"},{"id":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13040-0175-1000-7a34-bb9a9b9b24b7","parent":{"ref":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13040-0175-1000-68db-a8da98ab37e3","parent":{"ref":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13040-0175-1000-c17a-9e487c576e20","parent":{"ref":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13040-0175-1000-849e-a26bbfb7cb7b","parent":{"ref":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13040-0175-1000-c70c-0b18cbd1f797","parent":{"ref":"EID6ee12f77-0175-1000-ff3a-30b0ff2d10dc"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0ed6c6fd-6726-43f7-a070-0b78ff0c338a"},{"ref":"EIDe7fac740-3502-43bc-bc29-c0be4046c017"},{"ref":"EIDe340ea56-d326-4c38-856d-70d924e147c0"}]},"parent":{"ref":"EID6ee12ee2-0175-1000-3f93-38b618e2592f"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:04:12Z","duration":107,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:04:12Z","duration":362,"status":"PASSED"},{"id":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5","testStepResults":{"TestStepResult":[{"id":"EID6ee1304c-0175-1000-48ff-feb03bb2c346","attachments":{"attachment":[{"ref":"EID6c4e2cff-1b42-4d0c-aab7-fe52579d7177"},{"ref":"EID2f725334-27da-4a9a-bbf9-e4c0bf2ad42d"}]},"parent":{"ref":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:04:13Z","duration":201,"status":"PASSED"},{"id":"EID6ee13155-0175-1000-28c7-dc5a538ee4b1","parent":{"ref":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13155-0175-1000-1edf-495a7aa3cec6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee131c4-0175-1000-4f89-825d351bfa05","parent":{"ref":"EID6ee13155-0175-1000-1edf-495a7aa3cec6"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee131c4-0175-1000-ca7d-56831ac0377c","parent":{"ref":"EID6ee13155-0175-1000-1edf-495a7aa3cec6"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee131c4-0175-1000-c724-a0fdff8ebd21","parent":{"ref":"EID6ee13155-0175-1000-1edf-495a7aa3cec6"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee131c4-0175-1000-bc51-776bdaa6c13f","parent":{"ref":"EID6ee13155-0175-1000-1edf-495a7aa3cec6"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6a3c494d-743b-4858-9dd3-678f248041da"},{"ref":"EID59f1a053-e6d3-48f6-8619-b9624af6160b"},{"ref":"EID1bea0f75-5691-4545-836c-80e2116d5d4d"}]},"parent":{"ref":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:04:13Z","duration":37,"status":"PASSED"},{"id":"EID6ee131ce-0175-1000-1c29-8864a5d96ddd","attachments":{"attachment":{"ref":"EID4f0150cb-1327-43b3-9d29-bd2798d77c0f"}},"parent":{"ref":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee131de-0175-1000-830d-a519bfdba33e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13294-0175-1000-8f7d-21f40ae3f8f5","parent":{"ref":"EID6ee131de-0175-1000-830d-a519bfdba33e"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13294-0175-1000-a88a-ed91557fbf21","parent":{"ref":"EID6ee131de-0175-1000-830d-a519bfdba33e"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13294-0175-1000-7315-c299e058fdc7","parent":{"ref":"EID6ee131de-0175-1000-830d-a519bfdba33e"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13294-0175-1000-0af3-00420a21a66d","parent":{"ref":"EID6ee131de-0175-1000-830d-a519bfdba33e"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee13294-0175-1000-9702-4e68a116ec5a","parent":{"ref":"EID6ee131de-0175-1000-830d-a519bfdba33e"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:04:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd352b9a4-122f-4aac-a5fd-72731b0dff16"},{"ref":"EID113f0a3b-378f-4a68-9cac-f9a9fc944493"},{"ref":"EIDc2e231a0-4d36-48d0-9103-e0d922ddd1ff"}]},"parent":{"ref":"EID6ee1304c-0175-1000-c6ba-e2ee8e4cf8a5"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:04:13Z","duration":44,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:04:13Z","duration":585,"status":"PASSED"},{"id":"EID6ee1329b-0175-1000-4391-8dc164cf122c","testStepResults":{"TestStepResult":[{"id":"EID6ee1329b-0175-1000-1687-816531867fa2","attachments":{"attachment":[{"ref":"EID12e8c77b-9c91-4d4c-ad1a-43d8e260b049"},{"ref":"EID7d75bc61-a4ff-46c3-956d-1a82532fd117"}]},"parent":{"ref":"EID6ee1329b-0175-1000-4391-8dc164cf122c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:04:13Z","duration":86,"status":"PASSED"},{"id":"EID6ee13328-0175-1000-4c2f-6eb9d2d3b0cc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee134b5-0175-1000-e588-719e3c681801","parent":{"ref":"EID6ee13328-0175-1000-4c2f-6eb9d2d3b0cc"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee134b5-0175-1000-6b84-c6257efc6e47","parent":{"ref":"EID6ee13328-0175-1000-4c2f-6eb9d2d3b0cc"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee134b5-0175-1000-a42c-9e807bbdba11","parent":{"ref":"EID6ee13328-0175-1000-4c2f-6eb9d2d3b0cc"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee134b5-0175-1000-506e-92b7b7049a84","parent":{"ref":"EID6ee13328-0175-1000-4c2f-6eb9d2d3b0cc"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd9443b1b-ca16-4ffc-a83c-83be5e730ea2"},{"ref":"EIDe667273d-0df8-4160-aa0c-b53e6126fa49"},{"ref":"EID1fab01ea-48a6-4354-8cc4-f833774635b8"}]},"parent":{"ref":"EID6ee1329b-0175-1000-4391-8dc164cf122c"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:04:13Z","duration":327,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:04:13Z","duration":538,"status":"PASSED"},{"id":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0","testStepResults":{"TestStepResult":[{"id":"EID6ee134bd-0175-1000-ad67-639d3e4491fc","attachments":{"attachment":[{"ref":"EIDc02438d4-3e4b-4f11-aa54-7fe77426b30d"},{"ref":"EID79bc5629-0515-4c38-a59d-147b0ac5f5f9"}]},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:04:14Z","duration":230,"status":"PASSED"},{"id":"EID6ee135d1-0175-1000-6a27-d37af3a638fb","parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:04:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee135d2-0175-1000-118a-2464d40fcca0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee136c3-0175-1000-72b8-7cb35632546f","parent":{"ref":"EID6ee135d2-0175-1000-118a-2464d40fcca0"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee136c3-0175-1000-d561-343a92aa76fa","parent":{"ref":"EID6ee135d2-0175-1000-118a-2464d40fcca0"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee136c3-0175-1000-1255-603a3805320c","parent":{"ref":"EID6ee135d2-0175-1000-118a-2464d40fcca0"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee136c3-0175-1000-d733-3c5c6f9cf992","parent":{"ref":"EID6ee135d2-0175-1000-118a-2464d40fcca0"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:04:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID22b0c120-35d9-404d-ae57-08e4ca4b32db"},{"ref":"EID3ebd648e-c267-4d8e-8f4a-d6d0be73112a"},{"ref":"EID25c83eee-9e8e-4591-bdb7-b755ac5e43d6"}]},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:04:14Z","duration":137,"status":"PASSED"},{"id":"EID6ee136cb-0175-1000-fa71-b9fa3b9c85ac","attachments":{"attachment":{"ref":"EIDaea395d0-63fa-45e7-8e02-20b4900f9475"}},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:04:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee136e6-0175-1000-47a2-79c581ae1292","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee137f8-0175-1000-ea0e-017447377933","parent":{"ref":"EID6ee136e6-0175-1000-47a2-79c581ae1292"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee137f8-0175-1000-b38a-6e2f1a3265ad","parent":{"ref":"EID6ee136e6-0175-1000-47a2-79c581ae1292"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee137f8-0175-1000-4e0f-05d147979917","parent":{"ref":"EID6ee136e6-0175-1000-47a2-79c581ae1292"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID37032479-d251-4e0f-aa2f-cfc5e9895bb6"},{"ref":"EID70bf3a27-9922-4c16-9dec-842221603c9c"},{"ref":"EID46637750-7faa-4dda-8b6e-419c1f4f2531"}]},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:04:14Z","duration":218,"status":"PASSED"},{"id":"EID6ee137f8-0175-1000-c653-2c37b0eaa63b","attachments":{"attachment":{"ref":"EID3a454909-4435-4e45-8e9e-1b098d223b25"}},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:04:15Z","duration":1,"status":"PASSED"},{"id":"EID6ee13806-0175-1000-59e2-3735b9458522","attachments":{"attachment":{"ref":"EID5fbdf424-f4a6-4bdd-aa0e-a518d145063b"}},"parent":{"ref":"EID6ee134bd-0175-1000-fb07-21684b8fb5a0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:04:14Z","duration":862,"status":"PASSED"},{"id":"EID6ee1381b-0175-1000-5fb0-b2e1f997bfa8","testStepResults":{"TestStepResult":[{"id":"EID6ee1381b-0175-1000-480c-b15bc1696976","attachments":{"attachment":[{"ref":"EID135ebbf7-0972-4dbe-8c50-d4826d7f2cb8"},{"ref":"EID5186a1c4-5c83-4810-abce-3f7fadc4f20a"}]},"parent":{"ref":"EID6ee1381b-0175-1000-5fb0-b2e1f997bfa8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:04:15Z","duration":86,"status":"PASSED"},{"id":"EID6ee13897-0175-1000-ac38-0c3fbafea00f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1391d-0175-1000-5607-db5ed1c383d2","parent":{"ref":"EID6ee13897-0175-1000-ac38-0c3fbafea00f"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee1391d-0175-1000-109b-236d8e8b8921","parent":{"ref":"EID6ee13897-0175-1000-ac38-0c3fbafea00f"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee1391d-0175-1000-61a7-b0d549513912","parent":{"ref":"EID6ee13897-0175-1000-ac38-0c3fbafea00f"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee1391d-0175-1000-2ef7-85c1185f0b4b","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee13897-0175-1000-ac38-0c3fbafea00f"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID5e0b65c6-c716-4c06-aad2-0e0956ee4e47"},{"ref":"EID458a5b83-5552-4232-88df-192e03348d91"},{"ref":"EIDf5807a26-1d24-48fe-a9c4-14990b4f7431"}]},"parent":{"ref":"EID6ee1381b-0175-1000-5fb0-b2e1f997bfa8"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:04:15Z","duration":38,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:04:15Z","duration":258,"status":"PASSED_MANUAL"},{"id":"EID6ee1391d-0175-1000-2d74-082170ef7efc","testStepResults":{"TestStepResult":{"id":"EID6ee1391d-0175-1000-dbb3-833f778d0f18","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee139d2-0175-1000-2e1f-6a08d1139e39","parent":{"ref":"EID6ee1391d-0175-1000-dbb3-833f778d0f18"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee139d3-0175-1000-ef28-625137f890d3","parent":{"ref":"EID6ee1391d-0175-1000-dbb3-833f778d0f18"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee139d3-0175-1000-22db-4e85a7bf90a0","parent":{"ref":"EID6ee1391d-0175-1000-dbb3-833f778d0f18"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee139d3-0175-1000-ea0f-9ab768bcf270","parent":{"ref":"EID6ee1391d-0175-1000-dbb3-833f778d0f18"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc07c4a29-a85c-4e63-a145-5eec5a6ee6f1"},{"ref":"EID743e929f-13f9-4141-b818-28393447d86e"},{"ref":"EIDa426c600-cde9-4ed5-8055-d71086e966d0"}]},"parent":{"ref":"EID6ee1391d-0175-1000-2d74-082170ef7efc"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:04:15Z","duration":92,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:04:15Z","duration":190,"status":"PASSED"},{"id":"EID6ee139db-0175-1000-75f2-d2db3c677fba","testStepResults":{"TestStepResult":{"id":"EID6ee139db-0175-1000-f794-4bbb3dc007ab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13afe-0175-1000-a812-3ce8b6d22782","parent":{"ref":"EID6ee139db-0175-1000-f794-4bbb3dc007ab"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee13afe-0175-1000-0849-61a8cf164071","parent":{"ref":"EID6ee139db-0175-1000-f794-4bbb3dc007ab"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee13afe-0175-1000-9832-dfbfbe56216c","parent":{"ref":"EID6ee139db-0175-1000-f794-4bbb3dc007ab"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee13afe-0175-1000-5058-1e7cbf94957f","parent":{"ref":"EID6ee139db-0175-1000-f794-4bbb3dc007ab"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:04:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe885b4cc-5fe5-4134-9d2f-44b7ea36ec24"},{"ref":"EIDdca19aec-de42-46d6-9ce0-7c6494acb977"},{"ref":"EID229f757c-6d00-4c75-bc39-8a1b52192f64"}]},"parent":{"ref":"EID6ee139db-0175-1000-75f2-d2db3c677fba"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:04:15Z","duration":200,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:04:15Z","duration":291,"status":"PASSED"},{"id":"EID6ee13afe-0175-1000-e988-35788c725ba8","testStepResults":{"TestStepResult":[{"id":"EID6ee13afe-0175-1000-1841-f9de5b821b49","attachments":{"attachment":[{"ref":"EIDc38ddbd5-bd2e-48aa-848a-10c27b293a7f"},{"ref":"EID6a5ed8ad-1d0f-402a-ad19-039675a9685a"},{"ref":"EID79b71b0b-530c-40fb-b5a0-a4a89a6a0812"},{"ref":"EID4f462f67-010f-41b2-b3be-95e93332008b"},{"ref":"EIDff60d22b-5fa7-46f3-97e9-bb53798875f5"},{"ref":"EID281adf07-d7f5-430f-b70d-d1072526eeef"},{"ref":"EID3caf20bd-2dba-48a7-8eb2-ca8eb329d92a"},{"ref":"EID25f7c9dc-f1fb-4d1a-85c6-809fda7be909"},{"ref":"EIDed8e20a5-2180-45ee-8789-25dcca409d15"},{"ref":"EIDb568e6fe-918a-42be-a4da-ef065021673f"},{"ref":"EID1fe27fd4-15b2-4501-9aa2-a0276451aa55"},{"ref":"EIDa1d13aca-50aa-4138-a1db-7984df8b3c76"}]},"parent":{"ref":"EID6ee13afe-0175-1000-e988-35788c725ba8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:04:15Z","duration":411,"status":"PASSED"},{"id":"EID6ee13d3b-0175-1000-c144-4241d8e040a7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13dc0-0175-1000-75cc-0c4ac3155f1c","parent":{"ref":"EID6ee13d3b-0175-1000-c144-4241d8e040a7"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13dc0-0175-1000-94d6-94b96a2252dd","parent":{"ref":"EID6ee13d3b-0175-1000-c144-4241d8e040a7"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13dc0-0175-1000-8959-79930087f286","parent":{"ref":"EID6ee13d3b-0175-1000-c144-4241d8e040a7"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13dc0-0175-1000-57aa-777e7c7a40c9","parent":{"ref":"EID6ee13d3b-0175-1000-c144-4241d8e040a7"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13dc0-0175-1000-565d-8e8a314cc8f5","parent":{"ref":"EID6ee13d3b-0175-1000-c144-4241d8e040a7"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4439b17e-abbc-48e2-9e9d-348ef8e6612e"},{"ref":"EID14ff448b-5d84-49c5-8070-60f13f008d90"},{"ref":"EID96a3d1c3-5f81-4612-9a11-6fb25033e5be"}]},"parent":{"ref":"EID6ee13afe-0175-1000-e988-35788c725ba8"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:04:16Z","duration":41,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:04:15Z","duration":706,"status":"PASSED"},{"id":"EID6ee13dc0-0175-1000-6a9e-2803365db532","testStepResults":{"TestStepResult":{"id":"EID6ee13dc0-0175-1000-42e5-85f8c39c4b9d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13e39-0175-1000-b8b6-26a5253167b2","parent":{"ref":"EID6ee13dc0-0175-1000-42e5-85f8c39c4b9d"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13e39-0175-1000-f5c5-28d5ef53479f","parent":{"ref":"EID6ee13dc0-0175-1000-42e5-85f8c39c4b9d"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13e39-0175-1000-392c-f40023863178","parent":{"ref":"EID6ee13dc0-0175-1000-42e5-85f8c39c4b9d"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee13e39-0175-1000-5bf0-bdb421501a67","parent":{"ref":"EID6ee13dc0-0175-1000-42e5-85f8c39c4b9d"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:04:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9751c1e4-1b0c-4800-b08b-cb9e5ce63072"},{"ref":"EID9748e7ab-49a1-41bb-8011-2ce0e2f7c652"},{"ref":"EID55d4d289-cb13-4ea2-9013-ef7cbc566b88"}]},"parent":{"ref":"EID6ee13dc0-0175-1000-6a9e-2803365db532"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:04:16Z","duration":40,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:04:16Z","duration":122,"status":"PASSED"},{"id":"EID6ee13e3c-0175-1000-0030-cf7dfb8c2a48","testStepResults":{"TestStepResult":{"id":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee13f7f-0175-1000-52a6-4b30c12c11c6","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-928c-f35ca9e2a99e","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-1f5f-c8e2ef7788f4","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-1bc5-2600875b7974","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-6ea7-346a4124dff9","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-b442-37ffe9f81365","parent":{"ref":"EID6ee13e3c-0175-1000-7741-fb7bcd4bc055"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7fc0bc31-53d7-4873-a033-be51589e18c6"},{"ref":"EID35c37589-f9f4-451d-9279-0f2b354c4e00"},{"ref":"EID5d961a5b-61a9-44a2-be91-f64537f6aa35"}]},"parent":{"ref":"EID6ee13e3c-0175-1000-0030-cf7dfb8c2a48"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:04:16Z","duration":180,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:04:16Z","duration":323,"status":"PASSED"},{"id":"EID6ee13f7f-0175-1000-f8f8-8f3f7bd37c24","testStepResults":{"TestStepResult":{"id":"EID6ee13f7f-0175-1000-b436-f999267f9b00","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14073-0175-1000-2ca1-2150b6221a2f","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee14073-0175-1000-1064-b59ea97649bd","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee14073-0175-1000-90e0-6317417070c7","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee14073-0175-1000-233f-fbb029623f1e","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee14073-0175-1000-1964-f4e455b9f74b","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee14073-0175-1000-9c5b-59ad08caaf11","parent":{"ref":"EID6ee13f7f-0175-1000-b436-f999267f9b00"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa5f00215-f307-4429-8356-495ceed2b2e5"},{"ref":"EID81ea17d6-b923-46b7-8be4-ae8ad8e3eec1"},{"ref":"EIDc24046d5-f94a-48ec-bac6-197c3b40c858"}]},"parent":{"ref":"EID6ee13f7f-0175-1000-f8f8-8f3f7bd37c24"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:04:17Z","duration":32,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:04:17Z","duration":311,"status":"PASSED"},{"id":"EID6ee140b6-0175-1000-9fd1-377df08fd4d4","testStepResults":{"TestStepResult":{"id":"EID6ee140b6-0175-1000-cd3f-b864ff911298","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1415c-0175-1000-2f98-59f054143b75","parent":{"ref":"EID6ee140b6-0175-1000-cd3f-b864ff911298"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:04:17Z","duration":1,"status":"PASSED"},{"id":"EID6ee1415d-0175-1000-a921-4f930b1a3eab","parent":{"ref":"EID6ee140b6-0175-1000-cd3f-b864ff911298"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee1415d-0175-1000-043d-f09e0839b3c3","parent":{"ref":"EID6ee140b6-0175-1000-cd3f-b864ff911298"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee1415d-0175-1000-405b-65098bb7855c","parent":{"ref":"EID6ee140b6-0175-1000-cd3f-b864ff911298"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:04:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b227f80-e32d-4ef6-ae62-b1216c859c88"},{"ref":"EID51c3a33a-3cec-4965-b74a-b198d424195f"},{"ref":"EIDd86e0dfe-e066-4861-9d7a-a6821a2717ff"}]},"parent":{"ref":"EID6ee140b6-0175-1000-9fd1-377df08fd4d4"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:04:17Z","duration":44,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:04:17Z","duration":167,"status":"PASSED"},{"id":"EID6ee1415d-0175-1000-480f-6999c3ad1c97","testStepResults":{"TestStepResult":[{"id":"EID6ee1415d-0175-1000-e88c-4b2daa1e453c","attachments":{"attachment":[{"ref":"EID61dfa631-3e87-4fb5-933d-fb838021530a"},{"ref":"EID3cb336f1-7eae-41b7-afee-9fac5aecb220"},{"ref":"EIDa4133c53-0238-4849-ba35-611709300ddb"},{"ref":"EID484b4af1-7b49-44ca-9a27-8a4dad84a151"}]},"parent":{"ref":"EID6ee1415d-0175-1000-480f-6999c3ad1c97"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:04:17Z","duration":526,"status":"PASSED"},{"id":"EID6ee143ff-0175-1000-9b0f-f235caf96312","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14520-0175-1000-f1ce-52a593be8afd","parent":{"ref":"EID6ee143ff-0175-1000-9b0f-f235caf96312"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:04:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee14520-0175-1000-d444-a1d9ffe036e0","parent":{"ref":"EID6ee143ff-0175-1000-9b0f-f235caf96312"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:04:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee14520-0175-1000-0821-a34ea6afa958","parent":{"ref":"EID6ee143ff-0175-1000-9b0f-f235caf96312"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:04:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee14520-0175-1000-0417-fe1768d33ec1","parent":{"ref":"EID6ee143ff-0175-1000-9b0f-f235caf96312"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:04:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc47c47e9-4851-4cfc-92ae-d6915825d5b1"},{"ref":"EID7e92b8b7-3289-4108-9137-bb29ce75a962"},{"ref":"EID81be6964-dbdf-4008-bd09-533e2f989aab"}]},"parent":{"ref":"EID6ee1415d-0175-1000-480f-6999c3ad1c97"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:04:18Z","duration":124,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:04:17Z","duration":963,"status":"PASSED"},{"id":"EID6ee14520-0175-1000-a8e6-30733ff3eb30","testStepResults":{"TestStepResult":{"id":"EID6ee14520-0175-1000-8a69-2bfa8d2d9145","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14860-0175-1000-5684-3c39e742c3f7","parent":{"ref":"EID6ee14520-0175-1000-8a69-2bfa8d2d9145"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14860-0175-1000-b74c-62a5c68575d6","parent":{"ref":"EID6ee14520-0175-1000-8a69-2bfa8d2d9145"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14860-0175-1000-1355-1e600c9b2251","parent":{"ref":"EID6ee14520-0175-1000-8a69-2bfa8d2d9145"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14860-0175-1000-5fc7-731d066ab1fb","parent":{"ref":"EID6ee14520-0175-1000-8a69-2bfa8d2d9145"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID461fcf8b-4084-4038-9b35-99a5e40dd3d4"},{"ref":"EID0e8f95d5-97db-4bc1-b2c3-34f96dfd32c6"},{"ref":"EID764c96b5-b748-4dda-b3b9-db0efb97ae50"}]},"parent":{"ref":"EID6ee14520-0175-1000-a8e6-30733ff3eb30"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:04:18Z","duration":766,"status":"PASSED"}},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:04:18Z","duration":853,"status":"PASSED"},{"id":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6","testStepResults":{"TestStepResult":[{"id":"EID6ee1487f-0175-1000-992e-795e7a65e6da","parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee1487f-0175-1000-09c3-8f8edb89d1dc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee149ee-0175-1000-4b72-0ab2a251c2ff","parent":{"ref":"EID6ee1487f-0175-1000-09c3-8f8edb89d1dc"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee149ee-0175-1000-ec21-b3c50d13bf94","parent":{"ref":"EID6ee1487f-0175-1000-09c3-8f8edb89d1dc"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee149ee-0175-1000-edf1-754a8f6f0c5b","parent":{"ref":"EID6ee1487f-0175-1000-09c3-8f8edb89d1dc"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee149ee-0175-1000-3ecb-fcd825b1c0f4","parent":{"ref":"EID6ee1487f-0175-1000-09c3-8f8edb89d1dc"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID75c6ee92-a905-4b89-94db-1953690708d9"},{"ref":"EID827103ed-980c-469e-88ac-90b27a94caf1"},{"ref":"EID90007a7b-5bf6-4a14-a291-c3a70b6e135c"}]},"parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:04:19Z","duration":160,"status":"PASSED"},{"id":"EID6ee149ee-0175-1000-d078-e5061920c68e","attachments":{"attachment":{"ref":"EID30604ef5-a0ef-48ad-859d-b4d9eac96cc8"}},"parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:04:19Z","duration":1,"status":"PASSED"},{"id":"EID6ee149fc-0175-1000-73f6-bcb232ae0af5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14ae7-0175-1000-243c-818f5f4df968","parent":{"ref":"EID6ee149fc-0175-1000-73f6-bcb232ae0af5"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ae7-0175-1000-6dca-6744a6ba6cdf","parent":{"ref":"EID6ee149fc-0175-1000-73f6-bcb232ae0af5"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ae7-0175-1000-3c1e-d9af363adbad","parent":{"ref":"EID6ee149fc-0175-1000-73f6-bcb232ae0af5"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ae7-0175-1000-eaf6-e003eb2e82a3","parent":{"ref":"EID6ee149fc-0175-1000-73f6-bcb232ae0af5"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:04:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0ab45e34-304d-4737-8994-f2ba2ab30d4b"},{"ref":"EID5cfb8555-aac2-4866-b26e-bc2f309eb2d7"},{"ref":"EID5488de2c-accb-4247-b72d-cff5819bfc7d"}]},"parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:04:19Z","duration":129,"status":"PASSED"},{"id":"EID6ee14afa-0175-1000-71a2-2fe05c836618","attachments":{"attachment":{"ref":"EIDeafa9b91-dccf-4991-974d-49cab3a9219e"}},"parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:04:19Z","duration":1,"status":"PASSED"},{"id":"EID6ee14b2b-0175-1000-a229-aa943f0c2987","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14ba9-0175-1000-d9c9-7c212dfd92a2","parent":{"ref":"EID6ee14b2b-0175-1000-a229-aa943f0c2987"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ba9-0175-1000-fbe9-f2c375c41b08","parent":{"ref":"EID6ee14b2b-0175-1000-a229-aa943f0c2987"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ba9-0175-1000-a427-3707f5e9cc03","parent":{"ref":"EID6ee14b2b-0175-1000-a229-aa943f0c2987"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14ba9-0175-1000-db18-9fb832eed1fb","parent":{"ref":"EID6ee14b2b-0175-1000-a229-aa943f0c2987"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7126d721-bd3d-4c34-a01b-96bf04bf1524"},{"ref":"EID231d2e26-1408-4bbb-8c58-dd74b109d254"},{"ref":"EID3e03a38e-fca6-42f8-a794-06edc55e9a2b"}]},"parent":{"ref":"EID6ee14875-0175-1000-bfc5-42275bd5c8f6"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:04:20Z","duration":37,"status":"PASSED"}]},"parent":{"ref":"EID6ee12c9d-0175-1000-c335-f704c69a75a9"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:04:19Z","duration":820,"status":"PASSED"}]},"parent":{"ref":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:04:12Z","duration":7949,"status":"PASSED_MANUAL"},{"id":"EID6ee14baa-0175-1000-1ba5-421ce43c5178","testCaseResults":{"TestCaseResult":[{"id":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4","testStepResults":{"TestStepResult":[{"id":"EID6ee14baa-0175-1000-dd72-8163d53292c7","parent":{"ref":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:04:20Z","duration":34,"status":"PASSED"},{"id":"EID6ee14bcc-0175-1000-22d1-0f585f9e08ec","parent":{"ref":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:04:20Z","duration":765,"status":"PASSED"},{"id":"EID6ee14bcc-0175-1000-dc37-fa3aac13c880","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14d07-0175-1000-b00e-63705619f31d","parent":{"ref":"EID6ee14bcc-0175-1000-dc37-fa3aac13c880"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14d07-0175-1000-2580-8b659a2c4c84","parent":{"ref":"EID6ee14bcc-0175-1000-dc37-fa3aac13c880"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14d07-0175-1000-2bda-744f79750930","parent":{"ref":"EID6ee14bcc-0175-1000-dc37-fa3aac13c880"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7a7e19d4-3f76-4688-ab61-e025f93bfb2e"},{"ref":"EIDb45a5ce6-159a-40e3-9924-79ad1f3fab50"},{"ref":"EIDa7d666d4-c569-4619-a2a0-55016d76a080"}]},"parent":{"ref":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:04:20Z","duration":208,"status":"PASSED"},{"id":"EID6ee14d07-0175-1000-6a5b-9267ae0776cb","attachments":{"attachment":{"ref":"EID78e0cb32-ad0c-4e36-ab66-16186e39d0a6"}},"parent":{"ref":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14d12-0175-1000-0319-33b27c3f789a","parent":{"ref":"EID6ee14baa-0175-1000-ed81-e66b9ccc1df4"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:04:20Z","duration":24,"status":"PASSED"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:04:20Z","duration":385,"status":"PASSED"},{"id":"EID6ee14d2b-0175-1000-e3f4-1213dce40261","testStepResults":{"TestStepResult":[{"id":"EID6ee14d2b-0175-1000-a9f2-8e29e8940643","parent":{"ref":"EID6ee14d2b-0175-1000-e3f4-1213dce40261"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:04:20Z","duration":100,"status":"PASSED"},{"id":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14dd2-0175-1000-5935-7d0cea57eb68","parent":{"ref":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14dd2-0175-1000-585e-1185b0f39105","parent":{"ref":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14dd2-0175-1000-e785-c3ad63a11cc1","parent":{"ref":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14dd2-0175-1000-d42c-8e3e1bdb0a4c","parent":{"ref":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14dd2-0175-1000-df8b-cbcc32175fe5","parent":{"ref":"EID6ee14d2b-0175-1000-065b-2e620d9b3eb0"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2f58a1bb-2b5a-4e3b-a4c6-247a66282fea"},{"ref":"EIDb8f25626-102a-4223-b850-b6f9f85590e4"},{"ref":"EIDc755edc7-4ca9-4279-a6d2-77a84024cf66"}]},"parent":{"ref":"EID6ee14d2b-0175-1000-e3f4-1213dce40261"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:04:20Z","duration":66,"status":"PASSED"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:04:20Z","duration":175,"status":"PASSED"},{"id":"EID6ee14ddb-0175-1000-1b17-136b1c8f151e","testStepResults":{"TestStepResult":[{"id":"EID6ee14ddb-0175-1000-8be1-554dfa86d2ed","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14e31-0175-1000-0bff-c4e360827ffd","parent":{"ref":"EID6ee14ddb-0175-1000-8be1-554dfa86d2ed"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14e31-0175-1000-75ec-ed2f9a20ca58","parent":{"ref":"EID6ee14ddb-0175-1000-8be1-554dfa86d2ed"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee14e31-0175-1000-8983-cd84f62367de","parent":{"ref":"EID6ee14ddb-0175-1000-8be1-554dfa86d2ed"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:04:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa5b2805c-9f07-4cf4-8cbf-6fdbd98b7f17"},{"ref":"EID884b5ea3-a4a5-4e55-884a-7e5b970d3fba"},{"ref":"EID9abbe948-ae45-4d03-b4a4-7b441481777e"}]},"parent":{"ref":"EID6ee14ddb-0175-1000-1b17-136b1c8f151e"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:04:20Z","duration":34,"status":"PASSED"},{"id":"EID6ee14e3a-0175-1000-2189-5fb8dd52292e","attachments":{"attachment":{"ref":"EIDa0833efb-8db8-4717-92a3-0e5a371aa4a2"}},"parent":{"ref":"EID6ee14ddb-0175-1000-1b17-136b1c8f151e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:04:20Z","duration":1,"status":"PASSED"},{"id":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee14f34-0175-1000-7375-99ee10e49767","parent":{"ref":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee14f34-0175-1000-c1df-10286397ab78","parent":{"ref":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee14f34-0175-1000-af5c-ae49cd923a8c","parent":{"ref":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee14f34-0175-1000-205a-174a4e845b6f","parent":{"ref":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee14f34-0175-1000-cb0c-f0ae4689d49e","parent":{"ref":"EID6ee14e49-0175-1000-5f9f-3e8d07b6c6e7"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb604052f-c747-45cc-9939-5d97051446d4"},{"ref":"EID3ec208c8-7eaf-4905-aa2f-8d0958552728"},{"ref":"EID019d2fb3-3211-4ec7-adc4-f63e8f879da2"}]},"parent":{"ref":"EID6ee14ddb-0175-1000-1b17-136b1c8f151e"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:04:20Z","duration":144,"status":"PASSED"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:04:20Z","duration":345,"status":"PASSED"},{"id":"EID6ee14f3f-0175-1000-7be3-04bec683e7a8","testStepResults":{"TestStepResult":[{"id":"EID6ee14f3f-0175-1000-a270-5d95d2db6d37","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1500f-0175-1000-ae72-c17fdc92f3c2","parent":{"ref":"EID6ee14f3f-0175-1000-a270-5d95d2db6d37"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1500f-0175-1000-8247-c08d2ea3e8ef","parent":{"ref":"EID6ee14f3f-0175-1000-a270-5d95d2db6d37"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1500f-0175-1000-9ceb-bc4738eeb628","parent":{"ref":"EID6ee14f3f-0175-1000-a270-5d95d2db6d37"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1500f-0175-1000-59cd-4de27d503301","parent":{"ref":"EID6ee14f3f-0175-1000-a270-5d95d2db6d37"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb321b99e-016f-4c58-a00c-b139b1ac1a2c"},{"ref":"EID31f8d8d1-d3fc-475f-b1d0-5ad30111e5e4"},{"ref":"EID156d642f-f4e7-42c1-8c7d-cc159b99f6c4"}]},"parent":{"ref":"EID6ee14f3f-0175-1000-7be3-04bec683e7a8"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:04:21Z","duration":113,"status":"PASSED"},{"id":"EID6ee15010-0175-1000-204b-fc6495c1744f","attachments":{"attachment":{"ref":"EIDcc9dee56-aa99-489d-97f6-92472bb0a46f"}},"parent":{"ref":"EID6ee14f3f-0175-1000-7be3-04bec683e7a8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1501c-0175-1000-747a-a39bc0b6dd2d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15089-0175-1000-df6d-0dd2de63ff3c","parent":{"ref":"EID6ee1501c-0175-1000-747a-a39bc0b6dd2d"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee15089-0175-1000-e079-65a9bb5159df","parent":{"ref":"EID6ee1501c-0175-1000-747a-a39bc0b6dd2d"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID157ae48a-07a3-422b-980e-199e9034702c"},{"ref":"EIDf76518c5-9b88-4798-8f8f-607ac6b30f5f"}]},"parent":{"ref":"EID6ee14f3f-0175-1000-7be3-04bec683e7a8"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:04:21Z","duration":104,"status":"PASSED"},{"id":"EID6ee15089-0175-1000-dcce-1a86529bf449","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1519a-0175-1000-0b04-e95deccc3490","parent":{"ref":"EID6ee15089-0175-1000-dcce-1a86529bf449"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1519a-0175-1000-46d5-c5063576c627","parent":{"ref":"EID6ee15089-0175-1000-dcce-1a86529bf449"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1519a-0175-1000-c576-a41c09b7ec6b","parent":{"ref":"EID6ee15089-0175-1000-dcce-1a86529bf449"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee1519a-0175-1000-19be-98411addd226","messages":{"message":{"ref":"TR.manual.checkLengthOfDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee15089-0175-1000-dcce-1a86529bf449"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID9f16872c-454a-4032-b6bc-6f65904a4e6f"},{"ref":"EID94e5ce89-2ce9-4f82-aeb9-75b28e4bffcd"},{"ref":"EIDf318e935-0ae1-43bd-8edc-85f88b67f59e"}]},"parent":{"ref":"EID6ee14f3f-0175-1000-7be3-04bec683e7a8"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:04:21Z","duration":198,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:04:21Z","duration":603,"status":"PASSED_MANUAL"},{"id":"EID6ee1519a-0175-1000-eb1e-514e5f9a5534","testStepResults":{"TestStepResult":{"id":"EID6ee1519a-0175-1000-623a-209c460005b3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee152b6-0175-1000-8ca2-0399903aa265","parent":{"ref":"EID6ee1519a-0175-1000-623a-209c460005b3"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee152b6-0175-1000-cc04-0249f171d822","parent":{"ref":"EID6ee1519a-0175-1000-623a-209c460005b3"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee152b6-0175-1000-98b1-9556e0008099","parent":{"ref":"EID6ee1519a-0175-1000-623a-209c460005b3"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:04:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb412fcd3-ff13-4116-9682-7cb218af2aa0"},{"ref":"EID9a03ecd4-1287-47e7-a1d7-6737c59f8230"},{"ref":"EIDb2396de5-23c1-4faa-8fb1-035b3c67416d"}]},"parent":{"ref":"EID6ee1519a-0175-1000-eb1e-514e5f9a5534"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:04:21Z","duration":134,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:04:21Z","duration":284,"status":"PASSED"},{"id":"EID6ee152b7-0175-1000-915f-a0e100ac9cae","testStepResults":{"TestStepResult":{"id":"EID6ee152b7-0175-1000-e69c-2c3b8de0e12d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee153ac-0175-1000-9d10-2c29fda270bd","parent":{"ref":"EID6ee152b7-0175-1000-e69c-2c3b8de0e12d"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee153ac-0175-1000-b50d-c459c5d95c24","parent":{"ref":"EID6ee152b7-0175-1000-e69c-2c3b8de0e12d"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee153ac-0175-1000-9904-263864ac4a67","parent":{"ref":"EID6ee152b7-0175-1000-e69c-2c3b8de0e12d"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDca3a14a5-2bdb-4a20-a0a7-87c57a2d8546"},{"ref":"EIDebab61d7-c47f-40d5-a805-a8eff21ac49e"},{"ref":"EIDcbf936ea-c18e-49a6-8341-0b1e7b5e4f18"}]},"parent":{"ref":"EID6ee152b7-0175-1000-915f-a0e100ac9cae"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:04:21Z","duration":142,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:04:21Z","duration":246,"status":"PASSED"},{"id":"EID6ee153ad-0175-1000-b925-f64c53a54c4b","testStepResults":{"TestStepResult":{"id":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1548b-0175-1000-cf78-6cac4866099d","parent":{"ref":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1548b-0175-1000-d47a-5f950893bb35","parent":{"ref":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1548b-0175-1000-049a-bcc7eda9e5e8","parent":{"ref":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1548b-0175-1000-8595-e6ad5922d01d","parent":{"ref":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1548b-0175-1000-b4ea-969528d3cfb0","parent":{"ref":"EID6ee153ad-0175-1000-e5ea-b6bae16beb39"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID950cbcce-608d-478b-bfe5-b13c61059fc1"},{"ref":"EID1684deda-6ed5-4adf-8489-21afc867ff09"},{"ref":"EIDc70d4d07-97ad-433f-b0d6-fafd528421be"}]},"parent":{"ref":"EID6ee153ad-0175-1000-b925-f64c53a54c4b"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:04:22Z","duration":108,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:04:22Z","duration":222,"status":"PASSED"},{"id":"EID6ee1548c-0175-1000-3bf5-890373c3a4f0","testStepResults":{"TestStepResult":{"id":"EID6ee1548c-0175-1000-de72-7fe2859fbf52","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15515-0175-1000-a5c7-cb04d4e045b4","parent":{"ref":"EID6ee1548c-0175-1000-de72-7fe2859fbf52"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee15515-0175-1000-cb82-8ed08b9e526c","parent":{"ref":"EID6ee1548c-0175-1000-de72-7fe2859fbf52"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee15515-0175-1000-481e-7a204de6f376","parent":{"ref":"EID6ee1548c-0175-1000-de72-7fe2859fbf52"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID096aa9f9-78a3-43c9-a8cc-08e035b2e4db"},{"ref":"EID8767a96c-8a52-4549-a490-42c710ae2cf1"},{"ref":"EID0dd88679-9a30-4b50-84db-9fa8a1148686"}]},"parent":{"ref":"EID6ee1548c-0175-1000-3bf5-890373c3a4f0"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:04:22Z","duration":78,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:04:22Z","duration":137,"status":"PASSED"},{"id":"EID6ee15515-0175-1000-0bf5-d7847b44397c","testStepResults":{"TestStepResult":{"id":"EID6ee15515-0175-1000-2631-b3989866848f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1558c-0175-1000-4d74-8112a9d05bc6","parent":{"ref":"EID6ee15515-0175-1000-2631-b3989866848f"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1558c-0175-1000-74cc-049bca5a0528","parent":{"ref":"EID6ee15515-0175-1000-2631-b3989866848f"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee1558c-0175-1000-438d-b5c52a15d57b","parent":{"ref":"EID6ee15515-0175-1000-2631-b3989866848f"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9798d1be-7691-4971-9b00-b872a15168f2"},{"ref":"EID08f5185f-3b0c-4171-b762-861f7310b2df"},{"ref":"EIDb4476642-4d75-4b45-a785-68253fcb84c0"}]},"parent":{"ref":"EID6ee15515-0175-1000-0bf5-d7847b44397c"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:04:22Z","duration":51,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:04:22Z","duration":119,"status":"PASSED"},{"id":"EID6ee1558c-0175-1000-73cf-f795126f5bff","testStepResults":{"TestStepResult":{"id":"EID6ee1558c-0175-1000-2683-e27e61653417","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee155fa-0175-1000-c5f8-a2bddd8cf76a","parent":{"ref":"EID6ee1558c-0175-1000-2683-e27e61653417"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee155fa-0175-1000-be58-f97555a2950a","parent":{"ref":"EID6ee1558c-0175-1000-2683-e27e61653417"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee155fa-0175-1000-06fc-0bf78896c69c","parent":{"ref":"EID6ee1558c-0175-1000-2683-e27e61653417"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee155fa-0175-1000-ce4f-ac29924c8a9a","parent":{"ref":"EID6ee1558c-0175-1000-2683-e27e61653417"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:04:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID42e79717-e856-4744-821e-f7de9405bc6c"},{"ref":"EID2329e841-7290-4180-9aa6-9fe80e22f96b"},{"ref":"EIDd4839382-ba48-432a-a96c-7e6fa6984186"}]},"parent":{"ref":"EID6ee1558c-0175-1000-73cf-f795126f5bff"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:04:22Z","duration":42,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:04:22Z","duration":110,"status":"PASSED"},{"id":"EID6ee155fa-0175-1000-3b4f-75debab30326","testStepResults":{"TestStepResult":{"id":"EID6ee155fa-0175-1000-8ef1-d0974011eb07","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee156db-0175-1000-a03a-ea17e9538ec1","parent":{"ref":"EID6ee155fa-0175-1000-8ef1-d0974011eb07"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee156db-0175-1000-b8fb-65a4a3d2edef","parent":{"ref":"EID6ee155fa-0175-1000-8ef1-d0974011eb07"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee156db-0175-1000-8fea-94ebd050e94a","parent":{"ref":"EID6ee155fa-0175-1000-8ef1-d0974011eb07"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee156db-0175-1000-258c-eae080cc3bf4","parent":{"ref":"EID6ee155fa-0175-1000-8ef1-d0974011eb07"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8d2222e5-cf90-403e-94c1-8d81eba4a8e8"},{"ref":"EIDc6ca32bc-e42a-42da-9278-1eab3b90e9f6"},{"ref":"EID48cbdc26-e5cf-4c26-b70d-81767729c522"}]},"parent":{"ref":"EID6ee155fa-0175-1000-3b4f-75debab30326"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:04:22Z","duration":116,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:04:22Z","duration":235,"status":"PASSED"},{"id":"EID6ee156e5-0175-1000-a101-c61991b0030d","testStepResults":{"TestStepResult":[{"id":"EID6ee156e5-0175-1000-defe-ff6e8470d49b","parent":{"ref":"EID6ee156e5-0175-1000-a101-c61991b0030d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee156e5-0175-1000-fd1c-aae7fa7c6f45","parent":{"ref":"EID6ee156e5-0175-1000-a101-c61991b0030d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:04:23Z","duration":148,"status":"PASSED"},{"id":"EID6ee156e5-0175-1000-84dc-7c3dcb61ee77","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15827-0175-1000-8aeb-157b18b4bae3","parent":{"ref":"EID6ee156e5-0175-1000-84dc-7c3dcb61ee77"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee15827-0175-1000-6c27-7d7bf4423586","parent":{"ref":"EID6ee156e5-0175-1000-84dc-7c3dcb61ee77"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee15827-0175-1000-f85f-e567e9deeb8e","parent":{"ref":"EID6ee156e5-0175-1000-84dc-7c3dcb61ee77"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee15827-0175-1000-ee61-0f4bf9140bda","parent":{"ref":"EID6ee156e5-0175-1000-84dc-7c3dcb61ee77"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3cb7ab63-de60-44fb-ae92-8a4817b34035"},{"ref":"EIDc6e5907e-d91b-49b3-9c0d-d1f45f253eae"},{"ref":"EIDf73060bd-a882-43f6-8bd9-ce3c460b37ab"}]},"parent":{"ref":"EID6ee156e5-0175-1000-a101-c61991b0030d"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:04:23Z","duration":93,"status":"PASSED"},{"id":"EID6ee15827-0175-1000-c515-e589beb76aeb","attachments":{"attachment":{"ref":"EIDd0896923-081c-42e1-9b44-92620e80090a"}},"parent":{"ref":"EID6ee156e5-0175-1000-a101-c61991b0030d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:04:23Z","duration":1,"status":"PASSED"},{"id":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee158ea-0175-1000-0dc4-3314cecce21d","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-3812-27ded1a0708b","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-44a9-81eaf2ffc98f","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-b1ae-4678a5da46ab","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-0976-d22d3004b0f0","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-9088-b57c42338c9d","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158ea-0175-1000-9ab7-6b157e74837f","parent":{"ref":"EID6ee15834-0175-1000-dd12-71b5f0a8b07b"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2e524a72-c56c-48e8-91c1-fb0bdd3644f7"},{"ref":"EIDa864fcdb-461b-4c34-968e-a23535fc5f9c"},{"ref":"EID57bc29fc-0e28-48b0-9d66-5654d2ef0657"}]},"parent":{"ref":"EID6ee156e5-0175-1000-a101-c61991b0030d"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:04:23Z","duration":47,"status":"PASSED"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:04:23Z","duration":525,"status":"PASSED"},{"id":"EID6ee158f3-0175-1000-6289-5915615ea32a","testStepResults":{"TestStepResult":[{"id":"EID6ee158f3-0175-1000-9c3d-2f0374e64c88","parent":{"ref":"EID6ee158f3-0175-1000-6289-5915615ea32a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee158f3-0175-1000-3215-55deeba1b446","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee159df-0175-1000-36f5-9cd54642402d","parent":{"ref":"EID6ee158f3-0175-1000-3215-55deeba1b446"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee159df-0175-1000-75f9-e44f9ebcf371","parent":{"ref":"EID6ee158f3-0175-1000-3215-55deeba1b446"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee159df-0175-1000-87fd-127b13360c69","parent":{"ref":"EID6ee158f3-0175-1000-3215-55deeba1b446"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee159df-0175-1000-686c-6775334a005f","parent":{"ref":"EID6ee158f3-0175-1000-3215-55deeba1b446"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:04:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5381ea55-47a8-4f7f-9f47-75a4d833a040"},{"ref":"EIDd32b469d-a261-40ad-9c18-d55273ff026b"},{"ref":"EID2f01fd83-38f6-4d6c-bcdc-9a0b87d59941"}]},"parent":{"ref":"EID6ee158f3-0175-1000-6289-5915615ea32a"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:04:23Z","duration":142,"status":"PASSED"},{"id":"EID6ee159e0-0175-1000-640b-24c945aeb652","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee159f5-0175-1000-49e4-f0fc824e2ec6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15b13-0175-1000-654f-747bfe5dd883","parent":{"ref":"EID6ee159f5-0175-1000-49e4-f0fc824e2ec6"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15b13-0175-1000-2086-02fe0c109cbb","parent":{"ref":"EID6ee159f5-0175-1000-49e4-f0fc824e2ec6"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15b13-0175-1000-2bb0-c7e6ff9a5b7c","parent":{"ref":"EID6ee159f5-0175-1000-49e4-f0fc824e2ec6"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeafdbb1f-da16-49b2-97dc-457cfd26ca24"},{"ref":"EID4b8bc62c-170c-4a1c-b4ab-7e5571e485bc"},{"ref":"EID91108f2c-09c0-4907-9fdc-fe448a6b52cf"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:04:23Z","duration":151,"status":"PASSED"},{"id":"EID6ee15b1d-0175-1000-a9cf-870af6a023d4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15c13-0175-1000-aafd-cec82eeb2ca5","parent":{"ref":"EID6ee15b1d-0175-1000-a9cf-870af6a023d4"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15c13-0175-1000-6267-c1758991870e","parent":{"ref":"EID6ee15b1d-0175-1000-a9cf-870af6a023d4"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15c13-0175-1000-c1e9-1a7c9fab64f3","parent":{"ref":"EID6ee15b1d-0175-1000-a9cf-870af6a023d4"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd4cd3c96-d1b5-45b9-8772-f1bbb8cba1ef"},{"ref":"EID64297270-8a01-45bc-ac0f-874910167003"},{"ref":"EID99f5e321-73d8-4eb6-aed7-97f5e781da5d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:04:24Z","duration":149,"status":"PASSED"},{"id":"EID6ee15c14-0175-1000-3b4c-a34789605f10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15d01-0175-1000-864b-eacb0928998d","parent":{"ref":"EID6ee15c14-0175-1000-3b4c-a34789605f10"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15d01-0175-1000-ba32-9595c2675062","parent":{"ref":"EID6ee15c14-0175-1000-3b4c-a34789605f10"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15d01-0175-1000-58aa-a669ef485f33","parent":{"ref":"EID6ee15c14-0175-1000-3b4c-a34789605f10"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc80bcf02-e033-4994-a17c-6e566359edf2"},{"ref":"EID68d41654-b9f6-461d-a091-44a30d914bc9"},{"ref":"EID555e4514-3a2e-4dcd-8428-0217f99723cf"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:04:24Z","duration":147,"status":"PASSED"}]},"parent":{"ref":"EID6ee158f3-0175-1000-6289-5915615ea32a"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:04:23Z","duration":802,"status":"PASSED"},{"id":"EID6ee15d02-0175-1000-6968-bae16ddc4fda","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15d78-0175-1000-2aac-208e80bc879d","parent":{"ref":"EID6ee15d02-0175-1000-6968-bae16ddc4fda"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15d78-0175-1000-57d1-ebe24c44bee7","parent":{"ref":"EID6ee15d02-0175-1000-6968-bae16ddc4fda"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15d78-0175-1000-9f69-08e65289d067","parent":{"ref":"EID6ee15d02-0175-1000-6968-bae16ddc4fda"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15d78-0175-1000-a248-d1f620d8b428","parent":{"ref":"EID6ee15d02-0175-1000-6968-bae16ddc4fda"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID56959cd5-4fb0-41cc-9e8b-c9a293928c23"},{"ref":"EIDfd1ebaf9-1635-4c4f-9e08-851cee7940fd"},{"ref":"EIDe695df34-8181-4e6e-8bb3-17781550016d"}]},"parent":{"ref":"EID6ee158f3-0175-1000-6289-5915615ea32a"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:04:24Z","duration":36,"status":"PASSED"}]},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:04:23Z","duration":1157,"status":"PASSED"},{"id":"EID6ee15d78-0175-1000-ef40-a6cc01558132","testStepResults":{"TestStepResult":{"id":"EID6ee15d78-0175-1000-27ef-3a7d00bf7380","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15dfb-0175-1000-73e9-7df37beee12d","parent":{"ref":"EID6ee15d78-0175-1000-27ef-3a7d00bf7380"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15dfb-0175-1000-c185-9baf654e87fc","parent":{"ref":"EID6ee15d78-0175-1000-27ef-3a7d00bf7380"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15dfb-0175-1000-c57d-bad52a3fe4b7","parent":{"ref":"EID6ee15d78-0175-1000-27ef-3a7d00bf7380"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15dfb-0175-1000-8fbc-82cf5da867f0","parent":{"ref":"EID6ee15d78-0175-1000-27ef-3a7d00bf7380"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6d5f5f08-3438-4889-b357-0fae05b61285"},{"ref":"EIDd2b5b26d-954f-4319-a2e1-3e2383cec98d"},{"ref":"EIDbc7b11bc-a789-4e2b-abdc-1aa28582a7e4"}]},"parent":{"ref":"EID6ee15d78-0175-1000-ef40-a6cc01558132"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:04:24Z","duration":40,"status":"PASSED"}},"parent":{"ref":"EID6ee14baa-0175-1000-1ba5-421ce43c5178"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:04:24Z","duration":131,"status":"PASSED"}]},"parent":{"ref":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:04:20Z","duration":4691,"status":"PASSED_MANUAL"},{"id":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825","testCaseResults":{"TestCaseResult":[{"id":"EID6ee15dfd-0175-1000-8372-319fab5eb761","testStepResults":{"TestStepResult":[{"id":"EID6ee15dfd-0175-1000-42b4-a8df7bc0d2c3","parent":{"ref":"EID6ee15dfd-0175-1000-8372-319fab5eb761"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:04:24Z","duration":586,"status":"PASSED"},{"id":"EID6ee15dfd-0175-1000-4328-1f17c50bcca2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15e9d-0175-1000-0300-4f1f5bc4e619","parent":{"ref":"EID6ee15dfd-0175-1000-4328-1f17c50bcca2"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15e9d-0175-1000-cd83-4f5302ed5b41","parent":{"ref":"EID6ee15dfd-0175-1000-4328-1f17c50bcca2"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee15e9d-0175-1000-76d5-b233c26bbd6e","parent":{"ref":"EID6ee15dfd-0175-1000-4328-1f17c50bcca2"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:04:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5b283689-bf6a-492c-ba46-9eb2a7cf8e43"},{"ref":"EID45df9819-f73f-4d56-9756-7c48b5b2f3fa"},{"ref":"EID2ed476b5-fc73-4487-a572-e738e15b5e24"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-8372-319fab5eb761"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:04:24Z","duration":60,"status":"PASSED"},{"id":"EID6ee15e9d-0175-1000-6e65-b6ca55c46923","attachments":{"attachment":{"ref":"EID9b5f82f3-854d-419b-b47e-4f7a88f37b2d"}},"parent":{"ref":"EID6ee15dfd-0175-1000-8372-319fab5eb761"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:04:24Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:04:24Z","duration":172,"status":"PASSED"},{"id":"EID6ee15ea9-0175-1000-4312-497180b94191","testStepResults":{"TestStepResult":[{"id":"EID6ee15ea9-0175-1000-aa5e-1cc465dcf1ed","parent":{"ref":"EID6ee15ea9-0175-1000-4312-497180b94191"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":586,"status":"PASSED"},{"id":"EID6ee15ea9-0175-1000-d26a-1bb009a194d6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee15f80-0175-1000-3e0f-310c0961dca5","parent":{"ref":"EID6ee15ea9-0175-1000-d26a-1bb009a194d6"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-d108-ae1aaf913b5f","parent":{"ref":"EID6ee15ea9-0175-1000-d26a-1bb009a194d6"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-bc05-c8e2bc482799","parent":{"ref":"EID6ee15ea9-0175-1000-d26a-1bb009a194d6"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-b351-8c46c919039c","parent":{"ref":"EID6ee15ea9-0175-1000-d26a-1bb009a194d6"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd3906d24-8d10-4729-a8d6-9a3ddca96ba6"},{"ref":"EID80e1e253-c2b3-4003-9d8e-f6f0b263cfc7"},{"ref":"EID1913b19b-fade-4c5a-bbc2-ba5286c4ccc9"}]},"parent":{"ref":"EID6ee15ea9-0175-1000-4312-497180b94191"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:04:25Z","duration":124,"status":"PASSED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:04:25Z","duration":215,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-6e81-773863666e7f","testStepResults":{"TestStepResult":[{"id":"EID6ee15f80-0175-1000-ca98-bd863e517314","parent":{"ref":"EID6ee15f80-0175-1000-6e81-773863666e7f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":586,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-1b31-f415c5fc2edd","parent":{"ref":"EID6ee15f80-0175-1000-6e81-773863666e7f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee160b0-0175-1000-001f-075d0f3e6eaa","parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b0-0175-1000-bf10-bdf293d27b88","parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b0-0175-1000-b217-eab47ab5a935","parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b0-0175-1000-bd1f-6fec5c94d159","parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b0-0175-1000-7962-56bd54932646","parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b0-0175-1000-70bb-61f64b2a7f56","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:04:25Z","duration":2,"status":"FAILED"},{"id":"EID6ee160b2-0175-1000-e030-af8b60e21f82","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee15f80-0175-1000-4f5c-bb7c9f81bb64"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1b0cce3c-8329-42e8-a594-efbd9dc4bfe2"},{"ref":"EID5369ce0e-486b-4d39-85d7-bd0a0fad80a1"},{"ref":"EID6a10b331-f148-4c84-845a-5aa4d666122b"}]},"parent":{"ref":"EID6ee15f80-0175-1000-6e81-773863666e7f"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:04:25Z","duration":93,"status":"FAILED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:04:25Z","duration":307,"status":"FAILED"},{"id":"EID6ee160b3-0175-1000-cc93-cdc255242aa6","testStepResults":{"TestStepResult":[{"id":"EID6ee160b3-0175-1000-92ea-044fdbdb5813","parent":{"ref":"EID6ee160b3-0175-1000-cc93-cdc255242aa6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":586,"status":"PASSED"},{"id":"EID6ee160b3-0175-1000-cfd9-7ef4a7f6f55d","parent":{"ref":"EID6ee160b3-0175-1000-cc93-cdc255242aa6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee16178-0175-1000-3a68-f53ffbfaf8fe","parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee16178-0175-1000-c4e8-db3fd74b50f9","parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee16178-0175-1000-4dac-13adf1786540","parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee16178-0175-1000-554f-2e5819376b6e","parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee16178-0175-1000-8a16-f13b82a14715","parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"PASSED"},{"id":"EID6ee16178-0175-1000-f0a3-a56b46868880","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee160b3-0175-1000-9bc5-d659d0e80a88"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:04:25Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID08692812-ddbd-43ba-9843-86db34db9f58"},{"ref":"EID3d3ab3a1-d120-463f-b191-8a9ee069747b"},{"ref":"EIDc3e1b7db-7af8-4d2e-80e4-b688d5f26bc0"}]},"parent":{"ref":"EID6ee160b3-0175-1000-cc93-cdc255242aa6"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:04:25Z","duration":82,"status":"FAILED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:04:25Z","duration":197,"status":"FAILED"},{"id":"EID6ee16181-0175-1000-3b48-9eae56b23be7","testStepResults":{"TestStepResult":[{"id":"EID6ee16181-0175-1000-97eb-3caafda4f440","parent":{"ref":"EID6ee16181-0175-1000-3b48-9eae56b23be7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":586,"status":"PASSED"},{"id":"EID6ee16181-0175-1000-7c11-f59fd5549524","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID5b9b92dd-cb9e-4cca-9236-85d679ffcfc7"},{"ref":"EID35667e14-4868-4aa1-8772-35bb3ee3654b"},{"ref":"EID8dc32529-ae32-4499-b0f6-ad5f40bcc0dd"},{"ref":"EIDd912f946-8b29-49b4-ae92-f4f9e4ce4bd2"},{"ref":"EID71279b5e-50b4-4759-9fc3-41a928731d22"},{"ref":"EIDbb02504b-eedb-43b9-b519-a173af36d060"},{"ref":"EID0267576d-7bd6-402a-9232-618bb99b8946"},{"ref":"EIDe92abe35-3919-47bf-a5fd-2c8bb688c218"},{"ref":"EID00959181-76db-4c3a-ad3d-aee33cd289c0"},{"ref":"EIDbd90ae50-357c-488e-9908-0cf980049018"},{"ref":"EID217a3c5c-b0ac-46a0-870f-7ee9b4c71e40"},{"ref":"EIDf6c0a848-30e2-411f-84b6-6e6aa5da3225"},{"ref":"EID426b2164-c9f5-4137-b967-202b91ece569"},{"ref":"EIDf8edcc85-3b63-4d45-81de-1d4182273437"},{"ref":"EIDe6c073d4-0d88-4c12-b491-042cc90cb911"}]},"parent":{"ref":"EID6ee16181-0175-1000-3b48-9eae56b23be7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:04:25Z","duration":682,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:04:25Z","duration":1029,"status":"SKIPPED"},{"id":"EID6ee16586-0175-1000-4be6-cde4b5b4d158","testStepResults":{"TestStepResult":[{"id":"EID6ee16586-0175-1000-e531-c4da5200affc","parent":{"ref":"EID6ee16586-0175-1000-4be6-cde4b5b4d158"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:04:26Z","duration":586,"status":"PASSED"},{"id":"EID6ee16586-0175-1000-c17c-86f21ad1c070","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee16647-0175-1000-a6b6-ede79dc78569","parent":{"ref":"EID6ee16586-0175-1000-c17c-86f21ad1c070"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:04:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee16647-0175-1000-c79d-d3728add19d3","parent":{"ref":"EID6ee16586-0175-1000-c17c-86f21ad1c070"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:04:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee16647-0175-1000-81ee-47ea1ed6b66f","parent":{"ref":"EID6ee16586-0175-1000-c17c-86f21ad1c070"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:04:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee16647-0175-1000-3435-adbc4ca19d51","messages":{"message":{"ref":"TR.incorrectFeedSelfReference","translationArguments":{"argument":[{"token":"actual","$":"https://www.nationaalgeoregister.nl/geonetwork/opensearch/dut/d2a05dd5-98e8-4f9c-8ba2-7fe2d5c7c507/OpenSearchDescription.xml"},{"token":"element","$":"/os:OpenSearchDescription/os:Url"},{"token":"expected","$":"https://www.nationaalgeoregister.nl:443/geonetwork/opensearch/dut/d2a05dd5-98e8-4f9c-8ba2-7fe2d5c7c507/OpenSearchDescription.xml"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template"}]}}},"parent":{"ref":"EID6ee16586-0175-1000-c17c-86f21ad1c070"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:04:26Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID12a5e753-427c-47e0-ab01-a3ad04e3d6c5"},{"ref":"EIDdf03033d-fa51-4fe1-8e4f-863a9f255701"},{"ref":"EID676e8482-7462-4fe7-af81-87debb80a257"}]},"parent":{"ref":"EID6ee16586-0175-1000-4be6-cde4b5b4d158"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:04:26Z","duration":109,"status":"FAILED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:04:26Z","duration":205,"status":"FAILED"},{"id":"EID6ee16653-0175-1000-31cb-5ba8187a98a5","testStepResults":{"TestStepResult":[{"id":"EID6ee16653-0175-1000-65f6-8b0faea7bc66","parent":{"ref":"EID6ee16653-0175-1000-31cb-5ba8187a98a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:04:26Z","duration":586,"status":"PASSED"},{"id":"EID6ee16653-0175-1000-d718-4ce8b89606f3","parent":{"ref":"EID6ee16653-0175-1000-31cb-5ba8187a98a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:04:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee16653-0175-1000-129e-570f5501e29b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1670b-0175-1000-15aa-850470bffa9c","parent":{"ref":"EID6ee16653-0175-1000-129e-570f5501e29b"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee1670b-0175-1000-57ba-326c1fea602c","parent":{"ref":"EID6ee16653-0175-1000-129e-570f5501e29b"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee1670b-0175-1000-ad9e-f2b705b3307e","parent":{"ref":"EID6ee16653-0175-1000-129e-570f5501e29b"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee1670b-0175-1000-ee5a-e8e1a682daea","parent":{"ref":"EID6ee16653-0175-1000-129e-570f5501e29b"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf4ceb4ac-6454-4fca-9190-00c1970fa1bf"},{"ref":"EID2b93d331-2b04-446a-ae3b-ca5bde9b641a"},{"ref":"EID75a7be8d-0372-4720-a11e-360349e7fc78"}]},"parent":{"ref":"EID6ee16653-0175-1000-31cb-5ba8187a98a5"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:04:26Z","duration":97,"status":"PASSED"},{"id":"EID6ee1670b-0175-1000-8879-f33707bc5e98","attachments":{"attachment":{"ref":"EID9748b08d-721d-4e80-8a17-4d4be45896ac"}},"parent":{"ref":"EID6ee16653-0175-1000-31cb-5ba8187a98a5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee16724-0175-1000-43c6-5267cb9f6962","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee16733-0175-1000-cb34-38874697bdcd","parent":{"ref":"EID6ee16724-0175-1000-43c6-5267cb9f6962"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee16733-0175-1000-d141-13a26485bc3f","parent":{"ref":"EID6ee16724-0175-1000-43c6-5267cb9f6962"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee16733-0175-1000-74ff-410c82f6ebe7","parent":{"ref":"EID6ee16724-0175-1000-43c6-5267cb9f6962"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9a64830b-c0c5-4ae5-a4df-a15e743cdf67"},{"ref":"EIDa238d0a8-85ad-4334-8951-e755d4c7afaf"}]},"parent":{"ref":"EID6ee16653-0175-1000-31cb-5ba8187a98a5"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:04:27Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee15dfd-0175-1000-ebaf-6e0b5747e825"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:04:26Z","duration":224,"status":"PASSED"}]},"parent":{"ref":"EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:04:24Z","duration":2358,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceEndpoint","id":"EID6d5f5f08-3438-4889-b357-0fae05b61285","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID3caf20bd-2dba-48a7-8eb2-ca8eb329d92a","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3caf20bd-2dba-48a7-8eb2-ca8eb329d92a"}},{"type":"ServiceEndpoint","id":"EID7fc0bc31-53d7-4873-a033-be51589e18c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDdca19aec-de42-46d6-9ce0-7c6494acb977","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDdca19aec-de42-46d6-9ce0-7c6494acb977"}},{"type":"ServiceResponse","id":"EIDa864fcdb-461b-4c34-968e-a23535fc5f9c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDa864fcdb-461b-4c34-968e-a23535fc5f9c"}},{"type":"Message","id":"EIDc02438d4-3e4b-4f11-aa54-7fe77426b30d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDc02438d4-3e4b-4f11-aa54-7fe77426b30d"}},{"type":"ServiceEndpoint","id":"EID42e79717-e856-4744-821e-f7de9405bc6c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID00959181-76db-4c3a-ad3d-aee33cd289c0","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID00959181-76db-4c3a-ad3d-aee33cd289c0"}},{"type":"ServiceResponse","id":"EIDc6ca32bc-e42a-42da-9278-1eab3b90e9f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDc6ca32bc-e42a-42da-9278-1eab3b90e9f6"}},{"type":"ServiceEndpoint","id":"EID22b0c120-35d9-404d-ae57-08e4ca4b32db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID56959cd5-4fb0-41cc-9e8b-c9a293928c23","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID35c37589-f9f4-451d-9279-0f2b354c4e00","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID35c37589-f9f4-451d-9279-0f2b354c4e00"}},{"type":"Message","id":"EID7d75bc61-a4ff-46c3-956d-1a82532fd117","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID7d75bc61-a4ff-46c3-956d-1a82532fd117"}},{"type":"ServiceResponse","id":"EID3ec208c8-7eaf-4905-aa2f-8d0958552728","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3ec208c8-7eaf-4905-aa2f-8d0958552728"}},{"type":"Message","id":"EIDaea395d0-63fa-45e7-8e02-20b4900f9475","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDaea395d0-63fa-45e7-8e02-20b4900f9475"}},{"type":"ServiceEndpoint","id":"EID9751c1e4-1b0c-4800-b08b-cb9e5ce63072","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID68d41654-b9f6-461d-a091-44a30d914bc9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID68d41654-b9f6-461d-a091-44a30d914bc9"}},{"type":"GetParameter","id":"EID5d961a5b-61a9-44a2-be91-f64537f6aa35","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID5b9b92dd-cb9e-4cca-9236-85d679ffcfc7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID5b9b92dd-cb9e-4cca-9236-85d679ffcfc7"}},{"type":"GetParameter","id":"EIDcbf936ea-c18e-49a6-8341-0b1e7b5e4f18","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDb8f25626-102a-4223-b850-b6f9f85590e4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDb8f25626-102a-4223-b850-b6f9f85590e4"}},{"type":"ServiceResponse","id":"EID59f1a053-e6d3-48f6-8619-b9624af6160b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID59f1a053-e6d3-48f6-8619-b9624af6160b"}},{"type":"Message","id":"EID5186a1c4-5c83-4810-abce-3f7fadc4f20a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID5186a1c4-5c83-4810-abce-3f7fadc4f20a"}},{"type":"ServiceResponse","id":"EIDebab61d7-c47f-40d5-a805-a8eff21ac49e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDebab61d7-c47f-40d5-a805-a8eff21ac49e"}},{"type":"GetParameter","id":"EID0dd88679-9a30-4b50-84db-9fa8a1148686","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID45df9819-f73f-4d56-9756-7c48b5b2f3fa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID45df9819-f73f-4d56-9756-7c48b5b2f3fa"}},{"type":"GetParameter","id":"EID0233c275-88ab-4ef8-8117-0109c272ba7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDb568e6fe-918a-42be-a4da-ef065021673f","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDb568e6fe-918a-42be-a4da-ef065021673f"}},{"type":"ServiceEndpoint","id":"EIDca3a14a5-2bdb-4a20-a0a7-87c57a2d8546","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID827103ed-980c-469e-88ac-90b27a94caf1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID827103ed-980c-469e-88ac-90b27a94caf1"}},{"type":"Message","id":"EID71279b5e-50b4-4759-9fc3-41a928731d22","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID71279b5e-50b4-4759-9fc3-41a928731d22"}},{"type":"Message","id":"EID5fbdf424-f4a6-4bdd-aa0e-a518d145063b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID5fbdf424-f4a6-4bdd-aa0e-a518d145063b"}},{"type":"Message","id":"EID796ae61f-647f-4c07-af91-6571a898bd13","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID796ae61f-647f-4c07-af91-6571a898bd13"}},{"type":"Message","id":"EID6a5ed8ad-1d0f-402a-ad19-039675a9685a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID6a5ed8ad-1d0f-402a-ad19-039675a9685a"}},{"type":"GetParameter","id":"EID91108f2c-09c0-4907-9fdc-fe448a6b52cf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID4f0150cb-1327-43b3-9d29-bd2798d77c0f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID4f0150cb-1327-43b3-9d29-bd2798d77c0f"}},{"type":"GetParameter","id":"EID46637750-7faa-4dda-8b6e-419c1f4f2531","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EID57bc29fc-0e28-48b0-9d66-5654d2ef0657","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EIDe885b4cc-5fe5-4134-9d2f-44b7ea36ec24","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID764c96b5-b748-4dda-b3b9-db0efb97ae50","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDa426c600-cde9-4ed5-8055-d71086e966d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDcdb749b8-608c-4788-ac29-878367b4d66a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID99f5e321-73d8-4eb6-aed7-97f5e781da5d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID6a3c494d-743b-4858-9dd3-678f248041da","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDc24046d5-f94a-48ec-bac6-197c3b40c858","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID156d642f-f4e7-42c1-8c7d-cc159b99f6c4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EIDc3e1b7db-7af8-4d2e-80e4-b688d5f26bc0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceResponse","id":"EID3f9f02d5-6d9c-40ed-a417-5e27c82b7288","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3f9f02d5-6d9c-40ed-a417-5e27c82b7288"}},{"type":"GetParameter","id":"EID019d2fb3-3211-4ec7-adc4-f63e8f879da2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID75c6ee92-a905-4b89-94db-1953690708d9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDe695df34-8181-4e6e-8bb3-17781550016d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDd32b469d-a261-40ad-9c18-d55273ff026b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDd32b469d-a261-40ad-9c18-d55273ff026b"}},{"type":"ServiceEndpoint","id":"EID9f16872c-454a-4032-b6bc-6f65904a4e6f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID7e92b8b7-3289-4108-9137-bb29ce75a962","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID7e92b8b7-3289-4108-9137-bb29ce75a962"}},{"type":"ServiceResponse","id":"EID64297270-8a01-45bc-ac0f-874910167003","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID64297270-8a01-45bc-ac0f-874910167003"}},{"type":"ServiceEndpoint","id":"EID2f58a1bb-2b5a-4e3b-a4c6-247a66282fea","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID0ed6c6fd-6726-43f7-a070-0b78ff0c338a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID5381ea55-47a8-4f7f-9f47-75a4d833a040","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID1913b19b-fade-4c5a-bbc2-ba5286c4ccc9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceEndpoint","id":"EID096aa9f9-78a3-43c9-a8cc-08e035b2e4db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID6c4e2cff-1b42-4d0c-aab7-fe52579d7177","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID6c4e2cff-1b42-4d0c-aab7-fe52579d7177"}},{"type":"GetParameter","id":"EIDb2396de5-23c1-4faa-8fb1-035b3c67416d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID2e524a72-c56c-48e8-91c1-fb0bdd3644f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID40789e2a-1886-4e75-8e0e-577c4e2ed0c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"LogFile","id":"EID416783ee-16f5-47a4-be37-eb4a8ff61ecd","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID416783ee-16f5-47a4-be37-eb4a8ff61ecd"}},{"type":"GetParameter","id":"EID90007a7b-5bf6-4a14-a291-c3a70b6e135c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID229f757c-6d00-4c75-bc39-8a1b52192f64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDd2b5b26d-954f-4319-a2e1-3e2383cec98d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDd2b5b26d-954f-4319-a2e1-3e2383cec98d"}},{"type":"ServiceResponse","id":"EID4b8bc62c-170c-4a1c-b4ab-7e5571e485bc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID4b8bc62c-170c-4a1c-b4ab-7e5571e485bc"}},{"type":"ServiceEndpoint","id":"EID9798d1be-7691-4971-9b00-b872a15168f2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID0ab45e34-304d-4737-8994-f2ba2ab30d4b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L3htbC5tZXRhZGF0YS5nZXQ="},{"type":"Message","id":"EID1fe27fd4-15b2-4501-9aa2-a0276451aa55","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID1fe27fd4-15b2-4501-9aa2-a0276451aa55"}},{"type":"GetParameter","id":"EIDa520ab06-3152-475f-b3d4-35ec965f28e4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID25f7c9dc-f1fb-4d1a-85c6-809fda7be909","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID25f7c9dc-f1fb-4d1a-85c6-809fda7be909"}},{"type":"ServiceResponse","id":"EID94e5ce89-2ce9-4f82-aeb9-75b28e4bffcd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID94e5ce89-2ce9-4f82-aeb9-75b28e4bffcd"}},{"type":"ServiceResponse","id":"EID3ebd648e-c267-4d8e-8f4a-d6d0be73112a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3ebd648e-c267-4d8e-8f4a-d6d0be73112a"}},{"type":"GetParameter","id":"EIDd86e0dfe-e066-4861-9d7a-a6821a2717ff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID281adf07-d7f5-430f-b70d-d1072526eeef","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID281adf07-d7f5-430f-b70d-d1072526eeef"}},{"type":"ServiceEndpoint","id":"EIDc07c4a29-a85c-4e63-a145-5eec5a6ee6f1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDcc9dee56-aa99-489d-97f6-92472bb0a46f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDcc9dee56-aa99-489d-97f6-92472bb0a46f"}},{"type":"ServiceEndpoint","id":"EIDa5f00215-f307-4429-8356-495ceed2b2e5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDf73060bd-a882-43f6-8bd9-ce3c460b37ab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID9abbe948-ae45-4d03-b4a4-7b441481777e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID676e8482-7462-4fe7-af81-87debb80a257","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EID48cbdc26-e5cf-4c26-b70d-81767729c522","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EIDe6c073d4-0d88-4c12-b491-042cc90cb911","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDe6c073d4-0d88-4c12-b491-042cc90cb911"}},{"type":"ServiceEndpoint","id":"EIDeafdbb1f-da16-49b2-97dc-457cfd26ca24","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID0fe6b394-a07b-40d5-8f84-a034f6394f3e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID0fe6b394-a07b-40d5-8f84-a034f6394f3e"}},{"type":"GetParameter","id":"EID2f01fd83-38f6-4d6c-bcdc-9a0b87d59941","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDd352b9a4-122f-4aac-a5fd-72731b0dff16","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID51c3a33a-3cec-4965-b74a-b198d424195f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID51c3a33a-3cec-4965-b74a-b198d424195f"}},{"type":"ServiceEndpoint","id":"EID3cb7ab63-de60-44fb-ae92-8a4817b34035","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID96a3d1c3-5f81-4612-9a11-6fb25033e5be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID113f0a3b-378f-4a68-9cac-f9a9fc944493","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID113f0a3b-378f-4a68-9cac-f9a9fc944493"}},{"type":"ServiceEndpoint","id":"EIDd3906d24-8d10-4729-a8d6-9a3ddca96ba6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceEndpoint","id":"EIDf4ceb4ac-6454-4fca-9190-00c1970fa1bf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EID9b5f82f3-854d-419b-b47e-4f7a88f37b2d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID9b5f82f3-854d-419b-b47e-4f7a88f37b2d"}},{"type":"GetParameter","id":"EID81be6964-dbdf-4008-bd09-533e2f989aab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID6a10b331-f148-4c84-845a-5aa4d666122b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EIDf76518c5-9b88-4798-8f8f-607ac6b30f5f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2Rvd25sb2Fkcy9pbnZhc2lldmUtZXhvdGVuLmdtbC56aXA="},{"type":"GetParameter","id":"EID2ed476b5-fc73-4487-a572-e738e15b5e24","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID5cfb8555-aac2-4866-b26e-bc2f309eb2d7","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID5cfb8555-aac2-4866-b26e-bc2f309eb2d7"}},{"type":"ServiceEndpoint","id":"EID1b0cce3c-8329-42e8-a594-efbd9dc4bfe2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceResponse","id":"EID9748e7ab-49a1-41bb-8011-2ce0e2f7c652","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID9748e7ab-49a1-41bb-8011-2ce0e2f7c652"}},{"type":"GetParameter","id":"EIDc755edc7-4ca9-4279-a6d2-77a84024cf66","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDdf03033d-fa51-4fe1-8e4f-863a9f255701","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDdf03033d-fa51-4fe1-8e4f-863a9f255701"}},{"type":"ServiceEndpoint","id":"EID9a64830b-c0c5-4ae5-a4df-a15e743cdf67","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EID950cbcce-608d-478b-bfe5-b13c61059fc1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID461fcf8b-4084-4038-9b35-99a5e40dd3d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDbd90ae50-357c-488e-9908-0cf980049018","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDbd90ae50-357c-488e-9908-0cf980049018"}},{"type":"GetParameter","id":"EIDc70d4d07-97ad-433f-b0d6-fafd528421be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID8b227f80-e32d-4ef6-ae62-b1216c859c88","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDb4476642-4d75-4b45-a785-68253fcb84c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID78e0cb32-ad0c-4e36-ab66-16186e39d0a6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID78e0cb32-ad0c-4e36-ab66-16186e39d0a6"}},{"type":"ServiceResponse","id":"EID1684deda-6ed5-4adf-8489-21afc867ff09","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID1684deda-6ed5-4adf-8489-21afc867ff09"}},{"type":"ServiceEndpoint","id":"EIDa5b2805c-9f07-4cf4-8cbf-6fdbd98b7f17","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID4f462f67-010f-41b2-b3be-95e93332008b","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID4f462f67-010f-41b2-b3be-95e93332008b"}},{"type":"ServiceResponse","id":"EID231d2e26-1408-4bbb-8c58-dd74b109d254","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID231d2e26-1408-4bbb-8c58-dd74b109d254"}},{"type":"Message","id":"EIDbb02504b-eedb-43b9-b519-a173af36d060","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDbb02504b-eedb-43b9-b519-a173af36d060"}},{"type":"GetParameter","id":"EID5488de2c-accb-4247-b72d-cff5819bfc7d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L3htbC5tZXRhZGF0YS5nZXQ="},{"type":"ServiceResponse","id":"EID5369ce0e-486b-4d39-85d7-bd0a0fad80a1","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID5369ce0e-486b-4d39-85d7-bd0a0fad80a1"}},{"type":"ServiceEndpoint","id":"EID6e0be2f2-1b8c-4eb2-9e50-0fa9261053b0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDfd1ebaf9-1635-4c4f-9e08-851cee7940fd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDfd1ebaf9-1635-4c4f-9e08-851cee7940fd"}},{"type":"ServiceResponse","id":"EID70bf3a27-9922-4c16-9dec-842221603c9c","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID70bf3a27-9922-4c16-9dec-842221603c9c"}},{"type":"ServiceResponse","id":"EID08f5185f-3b0c-4171-b762-861f7310b2df","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID08f5185f-3b0c-4171-b762-861f7310b2df"}},{"type":"Message","id":"EID35667e14-4868-4aa1-8772-35bb3ee3654b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID35667e14-4868-4aa1-8772-35bb3ee3654b"}},{"type":"ServiceResponse","id":"EIDb45a5ce6-159a-40e3-9924-79ad1f3fab50","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDb45a5ce6-159a-40e3-9924-79ad1f3fab50"}},{"type":"ServiceResponse","id":"EID8767a96c-8a52-4549-a490-42c710ae2cf1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID8767a96c-8a52-4549-a490-42c710ae2cf1"}},{"type":"ServiceResponse","id":"EID2b93d331-2b04-446a-ae3b-ca5bde9b641a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID2b93d331-2b04-446a-ae3b-ca5bde9b641a"}},{"type":"ServiceResponse","id":"EID9a03ecd4-1287-47e7-a1d7-6737c59f8230","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID9a03ecd4-1287-47e7-a1d7-6737c59f8230"}},{"type":"GetParameter","id":"EIDa238d0a8-85ad-4334-8951-e755d4c7afaf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EIDf8edcc85-3b63-4d45-81de-1d4182273437","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDf8edcc85-3b63-4d45-81de-1d4182273437"}},{"type":"ServiceEndpoint","id":"EID12a5e753-427c-47e0-ab01-a3ad04e3d6c5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceEndpoint","id":"EID7126d721-bd3d-4c34-a01b-96bf04bf1524","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID555e4514-3a2e-4dcd-8428-0217f99723cf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID25c83eee-9e8e-4591-bdb7-b755ac5e43d6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID55d4d289-cb13-4ea2-9013-ef7cbc566b88","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID7a7e19d4-3f76-4688-ab61-e025f93bfb2e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb604052f-c747-45cc-9939-5d97051446d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID3d3ab3a1-d120-463f-b191-8a9ee069747b","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3d3ab3a1-d120-463f-b191-8a9ee069747b"}},{"type":"GetParameter","id":"EID3e03a38e-fca6-42f8-a794-06edc55e9a2b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDa0833efb-8db8-4717-92a3-0e5a371aa4a2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDa0833efb-8db8-4717-92a3-0e5a371aa4a2"}},{"type":"ServiceResponse","id":"EID3b25d274-160a-471b-a1f7-d6e0a8a068a0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3b25d274-160a-471b-a1f7-d6e0a8a068a0"}},{"type":"ServiceEndpoint","id":"EID8d2222e5-cf90-403e-94c1-8d81eba4a8e8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID30604ef5-a0ef-48ad-859d-b4d9eac96cc8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID30604ef5-a0ef-48ad-859d-b4d9eac96cc8"}},{"type":"GetParameter","id":"EIDa7d666d4-c569-4619-a2a0-55016d76a080","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDc2e231a0-4d36-48d0-9103-e0d922ddd1ff","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID12e8c77b-9c91-4d4c-ad1a-43d8e260b049","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID12e8c77b-9c91-4d4c-ad1a-43d8e260b049"}},{"type":"ServiceEndpoint","id":"EID0bab5c9b-eddd-4126-9f3d-1d0a537abc7f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb321b99e-016f-4c58-a00c-b139b1ac1a2c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID75a7be8d-0372-4720-a11e-360349e7fc78","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EIDe340ea56-d326-4c38-856d-70d924e147c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDe667273d-0df8-4160-aa0c-b53e6126fa49","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDe667273d-0df8-4160-aa0c-b53e6126fa49"}},{"type":"Message","id":"EIDc38ddbd5-bd2e-48aa-848a-10c27b293a7f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDc38ddbd5-bd2e-48aa-848a-10c27b293a7f"}},{"type":"GetParameter","id":"EID1fab01ea-48a6-4354-8cc4-f833774635b8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDbc7b11bc-a789-4e2b-abdc-1aa28582a7e4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EIDd4cd3c96-d1b5-45b9-8772-f1bbb8cba1ef","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDeafa9b91-dccf-4991-974d-49cab3a9219e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDeafa9b91-dccf-4991-974d-49cab3a9219e"}},{"type":"Message","id":"EIDf6c0a848-30e2-411f-84b6-6e6aa5da3225","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDf6c0a848-30e2-411f-84b6-6e6aa5da3225"}},{"type":"Message","id":"EID135ebbf7-0972-4dbe-8c50-d4826d7f2cb8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID135ebbf7-0972-4dbe-8c50-d4826d7f2cb8"}},{"type":"Message","id":"EIDff60d22b-5fa7-46f3-97e9-bb53798875f5","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDff60d22b-5fa7-46f3-97e9-bb53798875f5"}},{"type":"ServiceResponse","id":"EID81ea17d6-b923-46b7-8be4-ae8ad8e3eec1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID81ea17d6-b923-46b7-8be4-ae8ad8e3eec1"}},{"type":"ServiceResponse","id":"EIDc6e5907e-d91b-49b3-9c0d-d1f45f253eae","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDc6e5907e-d91b-49b3-9c0d-d1f45f253eae"}},{"type":"ServiceEndpoint","id":"EID5e0b65c6-c716-4c06-aad2-0e0956ee4e47","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID3cb336f1-7eae-41b7-afee-9fac5aecb220","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3cb336f1-7eae-41b7-afee-9fac5aecb220"}},{"type":"Message","id":"EID3a454909-4435-4e45-8e9e-1b098d223b25","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3a454909-4435-4e45-8e9e-1b098d223b25"}},{"type":"ServiceEndpoint","id":"EIDd9443b1b-ca16-4ffc-a83c-83be5e730ea2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID157ae48a-07a3-422b-980e-199e9034702c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2Rvd25sb2Fkcy9pbnZhc2lldmUtZXhvdGVuLmdtbC56aXA="},{"type":"ServiceResponse","id":"EID14ff448b-5d84-49c5-8070-60f13f008d90","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID14ff448b-5d84-49c5-8070-60f13f008d90"}},{"type":"Message","id":"EID2f725334-27da-4a9a-bbf9-e4c0bf2ad42d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID2f725334-27da-4a9a-bbf9-e4c0bf2ad42d"}},{"type":"ServiceResponse","id":"EID31f8d8d1-d3fc-475f-b1d0-5ad30111e5e4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID31f8d8d1-d3fc-475f-b1d0-5ad30111e5e4"}},{"type":"Message","id":"EIDd912f946-8b29-49b4-ae92-f4f9e4ce4bd2","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDd912f946-8b29-49b4-ae92-f4f9e4ce4bd2"}},{"type":"ServiceEndpoint","id":"EID1f314814-1369-4613-b880-a3af71d2435f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID76630266-5cca-4dfe-8cb9-94729a9da178","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID76630266-5cca-4dfe-8cb9-94729a9da178"}},{"type":"Message","id":"EIDe92abe35-3919-47bf-a5fd-2c8bb688c218","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDe92abe35-3919-47bf-a5fd-2c8bb688c218"}},{"type":"ServiceEndpoint","id":"EID08692812-ddbd-43ba-9843-86db34db9f58","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EIDf318e935-0ae1-43bd-8edc-85f88b67f59e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID8dc32529-ae32-4499-b0f6-ad5f40bcc0dd","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID8dc32529-ae32-4499-b0f6-ad5f40bcc0dd"}},{"type":"Message","id":"EID0267576d-7bd6-402a-9232-618bb99b8946","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID0267576d-7bd6-402a-9232-618bb99b8946"}},{"type":"Message","id":"EID217a3c5c-b0ac-46a0-870f-7ee9b4c71e40","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID217a3c5c-b0ac-46a0-870f-7ee9b4c71e40"}},{"type":"ServiceResponse","id":"EID80e1e253-c2b3-4003-9d8e-f6f0b263cfc7","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID80e1e253-c2b3-4003-9d8e-f6f0b263cfc7"}},{"type":"ServiceEndpoint","id":"EID37032479-d251-4e0f-aa2f-cfc5e9895bb6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceResponse","id":"EID458a5b83-5552-4232-88df-192e03348d91","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID458a5b83-5552-4232-88df-192e03348d91"}},{"type":"Message","id":"EID61dfa631-3e87-4fb5-933d-fb838021530a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID61dfa631-3e87-4fb5-933d-fb838021530a"}},{"type":"ServiceEndpoint","id":"EID5b283689-bf6a-492c-ba46-9eb2a7cf8e43","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID484b4af1-7b49-44ca-9a27-8a4dad84a151","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID484b4af1-7b49-44ca-9a27-8a4dad84a151"}},{"type":"Message","id":"EIDa4133c53-0238-4849-ba35-611709300ddb","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDa4133c53-0238-4849-ba35-611709300ddb"}},{"type":"ServiceResponse","id":"EID2329e841-7290-4180-9aa6-9fe80e22f96b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID2329e841-7290-4180-9aa6-9fe80e22f96b"}},{"type":"Message","id":"EID79b71b0b-530c-40fb-b5a0-a4a89a6a0812","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID79b71b0b-530c-40fb-b5a0-a4a89a6a0812"}},{"type":"Message","id":"EIDa1d13aca-50aa-4138-a1db-7984df8b3c76","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDa1d13aca-50aa-4138-a1db-7984df8b3c76"}},{"type":"GetParameter","id":"EIDd4839382-ba48-432a-a96c-7e6fa6984186","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID4439b17e-abbc-48e2-9e9d-348ef8e6612e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDd0896923-081c-42e1-9b44-92620e80090a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDd0896923-081c-42e1-9b44-92620e80090a"}},{"type":"Message","id":"EID79bc5629-0515-4c38-a59d-147b0ac5f5f9","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID79bc5629-0515-4c38-a59d-147b0ac5f5f9"}},{"type":"ServiceEndpoint","id":"EIDc47c47e9-4851-4cfc-92ae-d6915825d5b1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID3e9aad3d-30b9-44d6-8d8b-2c2d284c7a46","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID3e9aad3d-30b9-44d6-8d8b-2c2d284c7a46"}},{"type":"ServiceResponse","id":"EIDe7fac740-3502-43bc-bc29-c0be4046c017","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDe7fac740-3502-43bc-bc29-c0be4046c017"}},{"type":"ServiceResponse","id":"EID8c7a1450-2d6c-4e17-a69a-855e463eada9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID8c7a1450-2d6c-4e17-a69a-855e463eada9"}},{"type":"ServiceResponse","id":"EID884b5ea3-a4a5-4e55-884a-7e5b970d3fba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID884b5ea3-a4a5-4e55-884a-7e5b970d3fba"}},{"type":"ServiceEndpoint","id":"EIDb412fcd3-ff13-4116-9682-7cb218af2aa0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID9748b08d-721d-4e80-8a17-4d4be45896ac","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID9748b08d-721d-4e80-8a17-4d4be45896ac"}},{"type":"GetParameter","id":"EID1bea0f75-5691-4545-836c-80e2116d5d4d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID743e929f-13f9-4141-b818-28393447d86e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID743e929f-13f9-4141-b818-28393447d86e"}},{"type":"GetParameter","id":"EIDf5807a26-1d24-48fe-a9c4-14990b4f7431","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDc9a9a159-2cdd-470c-930f-91a29a644b19","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDc9a9a159-2cdd-470c-930f-91a29a644b19"}},{"type":"ServiceResponse","id":"EID0e8f95d5-97db-4bc1-b2c3-34f96dfd32c6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID0e8f95d5-97db-4bc1-b2c3-34f96dfd32c6"}},{"type":"Message","id":"EID426b2164-c9f5-4137-b967-202b91ece569","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EID426b2164-c9f5-4137-b967-202b91ece569"}},{"type":"ServiceEndpoint","id":"EID896412e5-7149-4822-bf66-4c8f023986b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDed8e20a5-2180-45ee-8789-25dcca409d15","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDc57e8d14-6dad-45bb-870e-8751e61dd4f4/Attachments/EIDed8e20a5-2180-45ee-8789-25dcca409d15"}},{"type":"ServiceEndpoint","id":"EIDc80bcf02-e033-4994-a17c-6e566359edf2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:04:11Z","duration":15541,"status":"FAILED"}}}}}
11:04:36.772 [print] EIDa8673546-9bf4-4a75-9d12-dd457d3cec44
11:04:36.783 [print] FAILED
11:04:36.784 [print] FAILED
11:04:36.784 [print] Conformance Class Download Service - Pre-defined Atom
11:04:36.785 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a8673546-9bf4-4a75-9d12-dd457d3cec44.json
11:04:36.785 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a8673546-9bf4-4a75-9d12-dd457d3cec44.json
11:04:36.786 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa8673546-9bf4-4a75-9d12-dd457d3cec44/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:04:37.156 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.incorrectFeedSelfReference" ]
11:04:37.157 [print] [ "TR.incorrectFeedSelfReference", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:13:54.371 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/elu/wfs?request=GetCapabilities
11:13:54.372 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/elu/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:54.776 response time in milliseconds: 403.69 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:54 GMT 1 < ETag: "1a2f9-5af58a1acea00-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:41:28 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:54.786 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/elu/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:55.181 response time in milliseconds: 394.91 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:55 GMT 1 < ETag: "1a2f9-5af58a1acea00-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:41:28 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:55.183 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:10:56.719 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:10:56.720 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:57.115 response time in milliseconds: 395.04 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:10:57 GMT 1 < X-Cnection: [close, close]
11:10:57.119 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:57.506 response time in milliseconds: 387.19 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:10:57 GMT 1 < X-Cnection: [close, close]
11:12:51.547 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml
11:12:51.548 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:52.119 response time in milliseconds: 571.20 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 7165 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:52 GMT 1 < Etag: "a477efe52b464353930e4767fc4d3506-1" 1 < Last-Modified: Tue, 12 Nov 2019 10:10:42 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642239C6A5EA936 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:12:52.125 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:52.530 response time in milliseconds: 405.14 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 7165 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:52 GMT 1 < Etag: "a477efe52b464353930e4767fc4d3506-1" 1 < Last-Modified: Tue, 12 Nov 2019 10:10:42 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642239C87381155 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:12:52.531 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:03.086 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegenetmaal/v1/wfs?request=GetCapabilities&service=WFS"}}}
11:14:03.086 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 315
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegenetmaal/v1/wfs?request=GetCapabilities&service=WFS"}}}
11:14:06.119 response time in milliseconds: 2925.73
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:05 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883645948","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:06.119 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:16.088 [print] testing url:https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getCapabilities&service=WFS
11:15:16.089 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:16.491 response time in milliseconds: 402.30 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:16 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:15:16.494 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bag/wfs/v1_1?request=getCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:16.886 response time in milliseconds: 391.83 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:15:16 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:15:16.887 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:09:55.667 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-wl/wfs?request=GetCapabilities
11:09:55.668 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-wl/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:56.063 response time in milliseconds: 395.43 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:56 GMT 1 < ETag: "1abe8-5af58a6516b63-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:09:56.072 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-wl/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:56.481 response time in milliseconds: 408.31 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:56 GMT 1 < ETag: "1abe8-5af58a6516b63-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:09:56.482 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:05:28.105 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/rce/ps-ch/atom/v1_0/index.xml"}}}
11:05:28.109 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 252
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/rce/ps-ch/atom/v1_0/index.xml"}}}
11:05:58.442 java.net.SocketTimeoutException: Read timed out, http call failed after 30333 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:05:58.443 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:33.567 [print] testing url:https://geodata.nationaalgeoregister.nl/nl/rws/tn-w/wfs?request=GetCapabilities
11:15:33.567 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-w/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:33.978 response time in milliseconds: 410.54 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:33 GMT 1 < ETag: "19397-5af58a6558dff-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:33.984 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-w/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:34.413 response time in milliseconds: 428.40 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:34 GMT 1 < ETag: "19397-5af58a6558dff-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:34.414 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:13:19.216 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/su-grid/wfs?request=GetCapabilities
11:13:19.217 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/su-grid/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:19.644 response time in milliseconds: 426.56 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:19 GMT 1 < ETag: "184b1-5af58a6522eb4-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:19.649 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/su-grid/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:20.044 response time in milliseconds: 393.82 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:19 GMT 1 < ETag: "184b1-5af58a6522eb4-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:20.044 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:12:08.408 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:12:08.408 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:08.810 response time in milliseconds: 401.98 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:08 GMT 1 < X-Cnection: [close, close]
11:12:08.815 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:09.238 response time in milliseconds: 422.31 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:08 GMT 1 < X-Cnection: [close, close]
11:12:19.685 [print] testing url:https://geodata.nationaalgeoregister.nl/wijkenbuurten2016/wfs?request=GetCapabilities
11:12:19.686 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2016/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:20.111 response time in milliseconds: 424.60 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:20 GMT 1 < X-Cnection: [close, close]
11:12:20.119 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2016/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:20.537 response time in milliseconds: 417.89 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:20 GMT 1 < X-Cnection: [close, close]
11:12:20.538 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:36.924 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:06:36.924 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:06:44.434 response time in milliseconds: 6752.46
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:43 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:06:42 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/cc34ea27-265e-49a1-91f7-abac50e9b010.json","testRuns":{"TestRun":{"id":"EIDcc34ea27-265e-49a1-91f7-abac50e9b010","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:41.665Z","testTasks":{"TestTask":{"id":"EIDf9141656-7b35-454f-8f05-7a7187b34cb5","parent":{"ref":"EIDcc34ea27-265e-49a1-91f7-abac50e9b010"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7ddc5e0b-ca6e-4987-8185-571a93e87c72"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7ddc5e0b-ca6e-4987-8185-571a93e87c72","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:37.424Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:40.863Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:06:44.437 [print] EIDcc34ea27-265e-49a1-91f7-abac50e9b010
11:06:44.437 [print] UNDEFINED
11:06:44.437 [print] Conformance Class Download Service - Pre-defined Atom
11:06:44.438 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/cc34ea27-265e-49a1-91f7-abac50e9b010.json
11:06:44.438 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/log
11:06:44.438 [print] statuspath TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010
11:06:44.438 [print] progresspath TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/progress
11:06:44.456 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:44.977 response time in milliseconds: 520.75
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:06:44 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:06:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:41 UTC 2020)","28.10.2020 11:06:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:41 - Preparing 1 Test Task:","28.10.2020 11:06:41 - TestTask 1 (f9141656-7b35-454f-8f05-7a7187b34cb5)","28.10.2020 11:06:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:41 - with parameters: ","28.10.2020 11:06:41 - etf.testcases = *","28.10.2020 11:06:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:41 - Setting state to CREATED","28.10.2020 11:06:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:42 - Starting TestRun.cc34ea27-265e-49a1-91f7-abac50e9b010 at 2020-10-28T11:06:43Z","28.10.2020 11:06:43 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:43 - Project Properties: ","28.10.2020 11:06:43 - etf.testcases - * ","28.10.2020 11:06:43 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:43 - username - ","28.10.2020 11:06:43 - authUser - ","28.10.2020 11:06:43 - authMethod - basic ","28.10.2020 11:06:43 - TestRunTask initialized"]}
11:06:44.978 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:06:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:41 UTC 2020)",
"28.10.2020 11:06:41 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:06:41 - Preparing 1 Test Task:",
"28.10.2020 11:06:41 - TestTask 1 (f9141656-7b35-454f-8f05-7a7187b34cb5)",
"28.10.2020 11:06:41 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:06:41 - with parameters: ",
"28.10.2020 11:06:41 - etf.testcases = *",
"28.10.2020 11:06:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:06:41 - Setting state to CREATED",
"28.10.2020 11:06:41 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:06:42 - Starting TestRun.cc34ea27-265e-49a1-91f7-abac50e9b010 at 2020-10-28T11:06:43Z",
"28.10.2020 11:06:43 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:06:43 - Project Properties: ",
"28.10.2020 11:06:43 - etf.testcases - * ",
"28.10.2020 11:06:43 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:06:43 - username - ",
"28.10.2020 11:06:43 - authUser - ",
"28.10.2020 11:06:43 - authMethod - basic ",
"28.10.2020 11:06:43 - TestRunTask initialized"
]
}
11:06:44.979 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:45.493 response time in milliseconds: 513.60
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:06:45 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:06:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:41 UTC 2020)","28.10.2020 11:06:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:41 - Preparing 1 Test Task:","28.10.2020 11:06:41 - TestTask 1 (f9141656-7b35-454f-8f05-7a7187b34cb5)","28.10.2020 11:06:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:41 - with parameters: ","28.10.2020 11:06:41 - etf.testcases = *","28.10.2020 11:06:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:41 - Setting state to CREATED","28.10.2020 11:06:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:42 - Starting TestRun.cc34ea27-265e-49a1-91f7-abac50e9b010 at 2020-10-28T11:06:43Z","28.10.2020 11:06:43 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:43 - Project Properties: ","28.10.2020 11:06:43 - etf.testcases - * ","28.10.2020 11:06:43 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:43 - username - ","28.10.2020 11:06:43 - authUser - ","28.10.2020 11:06:43 - authMethod - basic ","28.10.2020 11:06:43 - TestRunTask initialized"]}
11:06:45.494 retry condition not satisfied: response.val == response.max
11:06:45.494 sleeping before retry #1
11:06:50.495 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:51.011 response time in milliseconds: 515.21
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:06:50 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"88","max":"89","log":["28.10.2020 11:06:41 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:06:41 UTC 2020)","28.10.2020 11:06:41 - Resolving Executable Test Suite dependencies","28.10.2020 11:06:41 - Preparing 1 Test Task:","28.10.2020 11:06:41 - TestTask 1 (f9141656-7b35-454f-8f05-7a7187b34cb5)","28.10.2020 11:06:41 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:06:41 - with parameters: ","28.10.2020 11:06:41 - etf.testcases = *","28.10.2020 11:06:41 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:06:41 - Setting state to CREATED","28.10.2020 11:06:41 - Changed state from CREATED to INITIALIZING","28.10.2020 11:06:42 - Starting TestRun.cc34ea27-265e-49a1-91f7-abac50e9b010 at 2020-10-28T11:06:43Z","28.10.2020 11:06:43 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:06:43 - Project Properties: ","28.10.2020 11:06:43 - etf.testcases - * ","28.10.2020 11:06:43 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:06:43 - username - ","28.10.2020 11:06:43 - authUser - ","28.10.2020 11:06:43 - authMethod - basic ","28.10.2020 11:06:43 - TestRunTask initialized","28.10.2020 11:06:47 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:06:47 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:06:48 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:06:50 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:06:50 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:06:51.020 retry condition not satisfied: response.val == response.max
11:06:51.020 sleeping before retry #2
11:06:56.021 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:58.038 response time in milliseconds: 2016.69
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:06:57 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:06:58.039 retry condition satisfied
11:06:58.039 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:06:58.040 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:01.556 response time in milliseconds: 2545.72
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:07:00 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:06:58 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/cc34ea27-265e-49a1-91f7-abac50e9b010.json","testRuns":{"TestRun":{"id":"EIDcc34ea27-265e-49a1-91f7-abac50e9b010","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:06:41.665Z","testTasks":{"TestTask":{"id":"EIDf9141656-7b35-454f-8f05-7a7187b34cb5","parent":{"ref":"EIDcc34ea27-265e-49a1-91f7-abac50e9b010"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID7ddc5e0b-ca6e-4987-8185-571a93e87c72"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID7ddc5e0b-ca6e-4987-8185-571a93e87c72","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:06:37.424Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:06:40.863Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b","testObject":{"ref":"EID7ddc5e0b-ca6e-4987-8185-571a93e87c72"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee37c33-0175-1000-dcd6-ba718b841627","testCaseResults":{"TestCaseResult":[{"id":"EID6ee37c33-0175-1000-1991-db1233396f4e","testStepResults":{"TestStepResult":[{"id":"EID6ee37c34-0175-1000-3177-ae68219e05bd","parent":{"ref":"EID6ee37c33-0175-1000-1991-db1233396f4e"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:06:43Z","duration":12,"status":"PASSED"},{"id":"EID6ee37c41-0175-1000-eb8e-6b19c8aea7a2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37d27-0175-1000-f947-7a6209935ae3","parent":{"ref":"EID6ee37c41-0175-1000-eb8e-6b19c8aea7a2"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37d27-0175-1000-3163-23fe5a2aa8dd","parent":{"ref":"EID6ee37c41-0175-1000-eb8e-6b19c8aea7a2"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37d27-0175-1000-8105-b89a836d4646","parent":{"ref":"EID6ee37c41-0175-1000-eb8e-6b19c8aea7a2"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee37d27-0175-1000-646a-02967308a4f3","parent":{"ref":"EID6ee37c41-0175-1000-eb8e-6b19c8aea7a2"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:06:43Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID91e18ff7-8086-47e2-922d-93c59a9077e5"},{"ref":"EID6d424729-1554-40ac-a168-a2ae8fb0acc0"},{"ref":"EID13415609-06d0-43e8-9ad8-0574718b1ce1"}]},"parent":{"ref":"EID6ee37c33-0175-1000-1991-db1233396f4e"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:06:43Z","duration":45,"status":"PASSED"}]},"parent":{"ref":"EID6ee37c33-0175-1000-dcd6-ba718b841627"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:06:43Z","duration":244,"status":"PASSED"},{"id":"EID6ee37d27-0175-1000-1935-0b39cd826684","testStepResults":{"TestStepResult":{"id":"EID6ee37d32-0175-1000-a5a2-92f0ce29524f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37e12-0175-1000-8ef0-04f88f512e00","parent":{"ref":"EID6ee37d32-0175-1000-a5a2-92f0ce29524f"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37e12-0175-1000-2b9b-c39cf100f7c2","parent":{"ref":"EID6ee37d32-0175-1000-a5a2-92f0ce29524f"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37e12-0175-1000-6c91-78080a3a51f5","parent":{"ref":"EID6ee37d32-0175-1000-a5a2-92f0ce29524f"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDeb6f04ce-3b17-4c35-8f8b-25f6fb2c522c"},{"ref":"EID8dc434c2-04cc-40ff-80cb-75921d248ed6"},{"ref":"EID3baed7fc-62dd-4b6d-8146-d74e949c0b5d"}]},"parent":{"ref":"EID6ee37d27-0175-1000-1935-0b39cd826684"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:06:43Z","duration":113,"status":"PASSED"}},"parent":{"ref":"EID6ee37c33-0175-1000-dcd6-ba718b841627"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:06:43Z","duration":236,"status":"PASSED"}]},"parent":{"ref":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:06:43Z","duration":480,"status":"PASSED"},{"id":"EID6ee37e13-0175-1000-4011-292527e5c3b8","testCaseResults":{"TestCaseResult":[{"id":"EID6ee37e13-0175-1000-4558-4f2fe88a96cd","testStepResults":{"TestStepResult":[{"id":"EID6ee37e13-0175-1000-6a1a-75d9828fe2ac","parent":{"ref":"EID6ee37e13-0175-1000-4558-4f2fe88a96cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":132,"status":"PASSED"},{"id":"EID6ee37e26-0175-1000-970d-5539ca648db3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee37eda-0175-1000-8a74-29d5e8e008dd","parent":{"ref":"EID6ee37e26-0175-1000-970d-5539ca648db3"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37eda-0175-1000-0c33-8e8fc0101766","parent":{"ref":"EID6ee37e26-0175-1000-970d-5539ca648db3"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37eda-0175-1000-d254-bf3c80186341","parent":{"ref":"EID6ee37e26-0175-1000-970d-5539ca648db3"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37eda-0175-1000-76b2-0924f33ec050","parent":{"ref":"EID6ee37e26-0175-1000-970d-5539ca648db3"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee37eda-0175-1000-7ab1-d6c65aff23ba","parent":{"ref":"EID6ee37e26-0175-1000-970d-5539ca648db3"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID547c9a45-a127-4d69-9d29-aea85b2b7ad1"},{"ref":"EID8d09580e-e47e-479a-b0e3-db32abdf1be1"},{"ref":"EIDfc0dffcd-697c-40da-93e6-fdb84e3553e7"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4558-4f2fe88a96cd"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:06:44Z","duration":63,"status":"PASSED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:06:44Z","duration":199,"status":"PASSED"},{"id":"EID6ee37edb-0175-1000-3070-4692623149d7","testStepResults":{"TestStepResult":[{"id":"EID6ee37edb-0175-1000-9e0d-287943211c87","attachments":{"attachment":[{"ref":"EID1a88b553-8c62-4a0c-b697-854d5fe57c7f"},{"ref":"EID658a0a9e-a907-442c-bd27-4521f203d441"}]},"parent":{"ref":"EID6ee37edb-0175-1000-3070-4692623149d7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":77,"status":"PASSED"},{"id":"EID6ee37f51-0175-1000-8b4c-a480e19bf4f2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38058-0175-1000-3a19-3cba71de1efc","parent":{"ref":"EID6ee37f51-0175-1000-8b4c-a480e19bf4f2"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee38058-0175-1000-1e66-674d91ec61fe","parent":{"ref":"EID6ee37f51-0175-1000-8b4c-a480e19bf4f2"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee38058-0175-1000-1502-318564501175","parent":{"ref":"EID6ee37f51-0175-1000-8b4c-a480e19bf4f2"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee38058-0175-1000-722b-4ae99b6d19d1","parent":{"ref":"EID6ee37f51-0175-1000-8b4c-a480e19bf4f2"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:06:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8f1a0caa-c5b4-45f3-9f42-e45d40535a99"},{"ref":"EIDe2ab73f5-1f63-4073-b37f-f3a71c5c8ef6"},{"ref":"EID3085dfe0-085e-476d-96e4-c3d888df4bbb"}]},"parent":{"ref":"EID6ee37edb-0175-1000-3070-4692623149d7"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:06:44Z","duration":66,"status":"PASSED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:06:44Z","duration":381,"status":"PASSED"},{"id":"EID6ee38059-0175-1000-7c27-0ff9e0b8f088","testStepResults":{"TestStepResult":[{"id":"EID6ee38059-0175-1000-5932-be02b7f0140f","attachments":{"attachment":[{"ref":"EID4b3e2578-a1fb-446e-86a1-adf3a684d3a4"},{"ref":"EID206a94bf-f42d-4ffd-9d7d-d8773365dbc1"}]},"parent":{"ref":"EID6ee38059-0175-1000-7c27-0ff9e0b8f088"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:06:44Z","duration":119,"status":"PASSED"},{"id":"EID6ee38106-0175-1000-c3d4-761b86332f79","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee381b9-0175-1000-17ef-2b60c16acebc","parent":{"ref":"EID6ee38106-0175-1000-c3d4-761b86332f79"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee381b9-0175-1000-5159-98d54b232bf2","parent":{"ref":"EID6ee38106-0175-1000-c3d4-761b86332f79"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee381b9-0175-1000-eadf-f592f083cb12","parent":{"ref":"EID6ee38106-0175-1000-c3d4-761b86332f79"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee381b9-0175-1000-46dc-e23c8b9fa8f3","parent":{"ref":"EID6ee38106-0175-1000-c3d4-761b86332f79"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee381b9-0175-1000-f875-08c985ba8395","parent":{"ref":"EID6ee38106-0175-1000-c3d4-761b86332f79"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa5bf70ac-edbf-4b7b-928e-1bbd6129b2b1"},{"ref":"EIDe0fce02e-e421-4b2f-b66e-895e5d066c26"},{"ref":"EID1ab712fe-09db-4f4f-a2f1-5ed3118059d3"}]},"parent":{"ref":"EID6ee38059-0175-1000-7c27-0ff9e0b8f088"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:06:44Z","duration":52,"status":"PASSED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:06:44Z","duration":352,"status":"PASSED"},{"id":"EID6ee381ba-0175-1000-a2e5-b01b51f28507","testStepResults":{"TestStepResult":[{"id":"EID6ee381ba-0175-1000-e37f-270470d02f64","attachments":{"attachment":[{"ref":"EIDcfa10e12-b474-4cd7-9580-c38fe9dd947d"},{"ref":"EIDa7b7f9c0-4b2d-419f-ac2c-e03cedf44d32"}]},"parent":{"ref":"EID6ee381ba-0175-1000-a2e5-b01b51f28507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:06:45Z","duration":247,"status":"PASSED"},{"id":"EID6ee382d4-0175-1000-90e4-f6ab67b21fb8","parent":{"ref":"EID6ee381ba-0175-1000-a2e5-b01b51f28507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:06:45Z","duration":1,"status":"PASSED"},{"id":"EID6ee382d5-0175-1000-0316-526beda8e6d0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee383af-0175-1000-8c5e-cba141072243","parent":{"ref":"EID6ee382d5-0175-1000-0316-526beda8e6d0"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee383af-0175-1000-5f91-f9ff9141fd32","parent":{"ref":"EID6ee382d5-0175-1000-0316-526beda8e6d0"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee383af-0175-1000-e1f3-1d6cacb99f8f","parent":{"ref":"EID6ee382d5-0175-1000-0316-526beda8e6d0"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee383af-0175-1000-7fc4-cc738dd3a3f8","parent":{"ref":"EID6ee382d5-0175-1000-0316-526beda8e6d0"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6c64ce86-898c-4ff0-a478-d9f5ff39cd4c"},{"ref":"EID67af464e-2766-4f17-9710-932b10bbe941"},{"ref":"EID27dcd268-4a3f-43cb-b78b-b86c8c3652dc"}]},"parent":{"ref":"EID6ee381ba-0175-1000-a2e5-b01b51f28507"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:06:45Z","duration":111,"status":"PASSED"},{"id":"EID6ee383b0-0175-1000-98a4-1ac14ddbbf5b","attachments":{"attachment":{"ref":"EID0295b212-4a2c-4722-934a-b892841340fa"}},"parent":{"ref":"EID6ee381ba-0175-1000-a2e5-b01b51f28507"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:06:45Z","duration":1,"status":"PASSED"},{"id":"EID6ee383bd-0175-1000-7868-555508012b01","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38476-0175-1000-369d-0e4e9e9768b7","parent":{"ref":"EID6ee383bd-0175-1000-7868-555508012b01"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38476-0175-1000-9fc2-c871c15c722b","parent":{"ref":"EID6ee383bd-0175-1000-7868-555508012b01"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38476-0175-1000-7fa4-b2d6aa079fb5","parent":{"ref":"EID6ee383bd-0175-1000-7868-555508012b01"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38476-0175-1000-7353-9f7683b66029","parent":{"ref":"EID6ee383bd-0175-1000-7868-555508012b01"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee38476-0175-1000-d492-435fd45d8a5f","parent":{"ref":"EID6ee383bd-0175-1000-7868-555508012b01"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:06:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf734862c-844a-47da-ab94-8e219eea7a06"},{"ref":"EID0e260ccd-48b4-4061-8145-e896d7745241"},{"ref":"EIDeb4db861-f00c-43fa-9d3e-a59e7141c26a"}]},"parent":{"ref":"EID6ee381ba-0175-1000-a2e5-b01b51f28507"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:06:45Z","duration":46,"status":"PASSED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:06:45Z","duration":713,"status":"PASSED"},{"id":"EID6ee38483-0175-1000-3af9-edd915ff7299","testStepResults":{"TestStepResult":[{"id":"EID6ee38483-0175-1000-62cc-cbc5281c50eb","attachments":{"attachment":[{"ref":"EID17a3208b-c449-44a0-8a9a-c15dcb9391a3"},{"ref":"EIDf175083f-026d-42a2-ad0a-f46dc9037b19"}]},"parent":{"ref":"EID6ee38483-0175-1000-3af9-edd915ff7299"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:06:45Z","duration":120,"status":"PASSED"},{"id":"EID6ee3852e-0175-1000-7ed1-8ef8e418bb55","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee386b8-0175-1000-bd50-7d7364364d2d","parent":{"ref":"EID6ee3852e-0175-1000-7ed1-8ef8e418bb55"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee386b8-0175-1000-9932-92834826df08","parent":{"ref":"EID6ee3852e-0175-1000-7ed1-8ef8e418bb55"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee386b8-0175-1000-ae2e-0c6ed4893d4c","parent":{"ref":"EID6ee3852e-0175-1000-7ed1-8ef8e418bb55"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee386b8-0175-1000-4f10-8b17c2fde904","parent":{"ref":"EID6ee3852e-0175-1000-7ed1-8ef8e418bb55"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID18703854-1f65-4dd9-be9a-f0f818399820"},{"ref":"EID0b14f9a9-ad5c-4596-b678-a0482887b9df"},{"ref":"EID76d9e683-fc03-41e9-a5a1-3e2236b5bcc6"}]},"parent":{"ref":"EID6ee38483-0175-1000-3af9-edd915ff7299"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:06:45Z","duration":62,"status":"PASSED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:06:45Z","duration":565,"status":"PASSED"},{"id":"EID6ee386b8-0175-1000-3c34-589e2bde6db8","testStepResults":{"TestStepResult":[{"id":"EID6ee386b8-0175-1000-0cad-a32bb3560853","attachments":{"attachment":[{"ref":"EID14791756-9a12-4f55-b70b-8dddfa07943e"},{"ref":"EID15391eb4-4a05-4b78-8f71-750deca49948"}]},"parent":{"ref":"EID6ee386b8-0175-1000-3c34-589e2bde6db8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:06:46Z","duration":123,"status":"PASSED"},{"id":"EID6ee38766-0175-1000-b4b4-e73faf6f0e5b","parent":{"ref":"EID6ee386b8-0175-1000-3c34-589e2bde6db8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee38766-0175-1000-f56f-9c2fdde68a0b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3882b-0175-1000-7957-f0bd073c270e","parent":{"ref":"EID6ee38766-0175-1000-f56f-9c2fdde68a0b"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee3882b-0175-1000-91e3-1bf18c85a4e6","parent":{"ref":"EID6ee38766-0175-1000-f56f-9c2fdde68a0b"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee3882b-0175-1000-d5fd-06a3a78cdf4e","parent":{"ref":"EID6ee38766-0175-1000-f56f-9c2fdde68a0b"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee3882b-0175-1000-60db-ec443540ea11","parent":{"ref":"EID6ee38766-0175-1000-f56f-9c2fdde68a0b"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:06:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID37ba3243-5c5f-4ef6-99a9-660b285f0b75"},{"ref":"EID6325f624-1367-4965-a74a-b0c07ec21570"},{"ref":"EID0aaa6ca0-1200-4ac4-8ee0-76a9eed8c9e6"}]},"parent":{"ref":"EID6ee386b8-0175-1000-3c34-589e2bde6db8"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:06:46Z","duration":49,"status":"PASSED"},{"id":"EID6ee38835-0175-1000-f6f1-95efaddd0d2f","attachments":{"attachment":{"ref":"EID4335695d-675c-4f9a-b52c-ade8c28f9fd0"}},"parent":{"ref":"EID6ee386b8-0175-1000-3c34-589e2bde6db8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:06:46Z","duration":1,"status":"PASSED"},{"id":"EID6ee3885c-0175-1000-9e67-10db954b6f44","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38966-0175-1000-7c96-c98c11b13f90","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee3885c-0175-1000-9e67-10db954b6f44"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:06:47Z","duration":19,"status":"FAILED"},{"id":"EID6ee38979-0175-1000-0f2d-d77a63dc0612","parent":{"ref":"EID6ee3885c-0175-1000-9e67-10db954b6f44"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38979-0175-1000-2324-91187f64b78f","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee3885c-0175-1000-9e67-10db954b6f44"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID8dbd5f7d-2f4e-43e0-924c-1138e3c3ab11"},{"ref":"EID8fdc6ffb-11c1-4e35-86f9-a2d43d4b1562"},{"ref":"EIDcafe9af8-73fb-469a-b399-720b63b90b16"}]},"parent":{"ref":"EID6ee386b8-0175-1000-3c34-589e2bde6db8"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:06:46Z","duration":204,"status":"FAILED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:06:46Z","duration":705,"status":"FAILED"},{"id":"EID6ee38979-0175-1000-c737-464f37e71482","testStepResults":{"TestStepResult":[{"id":"EID6ee38979-0175-1000-8bcf-cfed1b59053f","attachments":{"attachment":[{"ref":"EID6f87a8fd-e466-4166-8643-ff6828408f62"},{"ref":"EIDd93bbf99-7a8d-45e1-9425-ac7b05991718"}]},"parent":{"ref":"EID6ee38979-0175-1000-c737-464f37e71482"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:06:47Z","duration":124,"status":"PASSED"},{"id":"EID6ee38a4c-0175-1000-99e7-8c9cc644e2dd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38b69-0175-1000-b475-f85dbe363b98","parent":{"ref":"EID6ee38a4c-0175-1000-99e7-8c9cc644e2dd"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38b69-0175-1000-ecf3-599a258e72c9","parent":{"ref":"EID6ee38a4c-0175-1000-99e7-8c9cc644e2dd"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38b69-0175-1000-e450-97412265efaf","parent":{"ref":"EID6ee38a4c-0175-1000-99e7-8c9cc644e2dd"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38b69-0175-1000-f2f7-3d9987083396","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee38a4c-0175-1000-99e7-8c9cc644e2dd"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID215fa88d-43fa-4150-9e81-d6f49effceea"},{"ref":"EIDbb303e8b-804e-4c4f-97f4-f31c66dc9325"},{"ref":"EID961a274c-3fb8-4ca0-b9d3-cf032452f319"}]},"parent":{"ref":"EID6ee38979-0175-1000-c737-464f37e71482"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:06:47Z","duration":60,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:06:47Z","duration":497,"status":"PASSED_MANUAL"},{"id":"EID6ee38b6b-0175-1000-5b57-93ac96e27726","testStepResults":{"TestStepResult":{"id":"EID6ee38b6b-0175-1000-2ac1-796ba19327d7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38c61-0175-1000-7f21-27046f1719e5","parent":{"ref":"EID6ee38b6b-0175-1000-2ac1-796ba19327d7"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c61-0175-1000-585e-e0028a125034","parent":{"ref":"EID6ee38b6b-0175-1000-2ac1-796ba19327d7"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c61-0175-1000-6f7a-d132da252b09","parent":{"ref":"EID6ee38b6b-0175-1000-2ac1-796ba19327d7"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38c61-0175-1000-dae1-ae579d3b6f7e","parent":{"ref":"EID6ee38b6b-0175-1000-2ac1-796ba19327d7"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID743eea24-b408-4f02-b54b-efabaa5e906e"},{"ref":"EIDd58e8063-63cd-4851-abd4-ba73ae8c7df5"},{"ref":"EIDeaafe1f2-3672-486e-b4c5-d0bea434c521"}]},"parent":{"ref":"EID6ee38b6b-0175-1000-5b57-93ac96e27726"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:06:47Z","duration":111,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:06:47Z","duration":247,"status":"PASSED"},{"id":"EID6ee38c62-0175-1000-3ee6-cd3788ad3d1c","testStepResults":{"TestStepResult":{"id":"EID6ee38c62-0175-1000-3fe3-7d8f7ea77c04","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee38d3b-0175-1000-a3dd-c9e47e7ae586","parent":{"ref":"EID6ee38c62-0175-1000-3fe3-7d8f7ea77c04"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38d3b-0175-1000-a231-b357a9685224","parent":{"ref":"EID6ee38c62-0175-1000-3fe3-7d8f7ea77c04"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38d3b-0175-1000-ff6c-eae24064c344","parent":{"ref":"EID6ee38c62-0175-1000-3fe3-7d8f7ea77c04"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee38d3b-0175-1000-be26-149814ae7c24","parent":{"ref":"EID6ee38c62-0175-1000-3fe3-7d8f7ea77c04"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:06:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc863a893-738a-4f11-8ba4-4dfc07fed172"},{"ref":"EID2db56f1c-7c65-4e05-9d49-5d80c23a9d5c"},{"ref":"EID938aa210-2ec8-43b8-9a5a-b7e37de49005"}]},"parent":{"ref":"EID6ee38c62-0175-1000-3ee6-cd3788ad3d1c"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:06:47Z","duration":52,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:06:47Z","duration":226,"status":"PASSED"},{"id":"EID6ee38d44-0175-1000-78c4-55f6d599bcd7","testStepResults":{"TestStepResult":{"id":"EID6ee38d44-0175-1000-9a23-5e468c632342","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EIDb370a515-862f-471c-8273-023f3bd977bb"},{"ref":"EIDaff926a4-0658-4b98-a4a6-52cd613b4053"},{"ref":"EIDa567ccc6-0983-4135-a13c-c5db4d223a2f"},{"ref":"EID9bd42647-23bf-4535-830a-8189e4a4f98b"},{"ref":"EID353fb4ae-1e32-4f52-a532-5d783fb4b9bc"},{"ref":"EID9d1bb8a8-d95a-4fb7-a71c-6ba9a075c5d1"},{"ref":"EID69579b05-ccbb-4569-a2b2-a0841ab4f66a"},{"ref":"EID6786b2be-ab62-4741-8d7e-6d93e19f6071"},{"ref":"EIDdc032220-b32f-4f6b-9016-725963d44381"}]},"parent":{"ref":"EID6ee38d44-0175-1000-78c4-55f6d599bcd7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:06:48Z","duration":680,"status":"SKIPPED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:06:48Z","duration":847,"status":"SKIPPED"},{"id":"EID6ee39093-0175-1000-9bca-d08999afa97e","testStepResults":{"TestStepResult":{"id":"EID6ee39093-0175-1000-36c8-089b6f477e09","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee391b3-0175-1000-170f-3166e156d9a6","parent":{"ref":"EID6ee39093-0175-1000-36c8-089b6f477e09"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee391b3-0175-1000-5ee7-9865fb6c4fe6","parent":{"ref":"EID6ee39093-0175-1000-36c8-089b6f477e09"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee391b3-0175-1000-9bb8-aabee9d932a1","parent":{"ref":"EID6ee39093-0175-1000-36c8-089b6f477e09"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee391b3-0175-1000-757d-22bb73e94dfa","parent":{"ref":"EID6ee39093-0175-1000-36c8-089b6f477e09"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID910e81b3-7550-4413-9931-b648e4ad1ccb"},{"ref":"EIDaf572255-188b-4c21-b216-d756af4eb5eb"},{"ref":"EID859df24d-b82b-4128-a3b2-cc22a4c5bb3f"}]},"parent":{"ref":"EID6ee39093-0175-1000-9bca-d08999afa97e"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:06:48Z","duration":180,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:06:48Z","duration":288,"status":"PASSED"},{"id":"EID6ee391b3-0175-1000-7ca3-30735ac2d196","testStepResults":{"TestStepResult":{"id":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3929b-0175-1000-f8e5-7e90e47d69b8","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3929b-0175-1000-aa2d-223e827edd92","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3929b-0175-1000-65d2-841dcd86d1ba","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3929b-0175-1000-7e28-83249930f6d8","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3929b-0175-1000-f560-3614cd7e7482","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee3929b-0175-1000-2486-dd10783f1a42","parent":{"ref":"EID6ee391b3-0175-1000-fdcf-e6d790e57d30"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfddba5d6-ef04-4246-8a74-7596c10cbc3a"},{"ref":"EID910606e4-3c61-4694-8a0d-0f3783161f01"},{"ref":"EID3afaf194-86fb-4656-a566-c9e34579a4a4"}]},"parent":{"ref":"EID6ee391b3-0175-1000-7ca3-30735ac2d196"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:06:49Z","duration":91,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:06:49Z","duration":246,"status":"PASSED"},{"id":"EID6ee392a9-0175-1000-2bfa-0eaea0cc991c","testStepResults":{"TestStepResult":{"id":"EID6ee392a9-0175-1000-050d-03bab9a06da7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39369-0175-1000-4c65-bce4b461b5f1","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-15a6-f03b9c3913cc","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-e5c4-c832063b4338","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-62f9-9467c60d05f9","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-1f26-2c9d703ec0ab","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-10b4-007639ce72c9","parent":{"ref":"EID6ee392a9-0175-1000-050d-03bab9a06da7"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID66139a35-4294-4b5b-a26f-d19fbe5689b7"},{"ref":"EIDbf49b797-f48d-4aaa-ba22-2ef294092282"},{"ref":"EID33456ec8-0e1a-4bee-a7f2-608f31d15082"}]},"parent":{"ref":"EID6ee392a9-0175-1000-2bfa-0eaea0cc991c"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:06:49Z","duration":64,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:06:49Z","duration":192,"status":"PASSED"},{"id":"EID6ee39369-0175-1000-71c7-32f58ed2e27e","testStepResults":{"TestStepResult":{"id":"EID6ee39369-0175-1000-301a-bee152f2b642","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee393f8-0175-1000-df53-095f0eaa198c","parent":{"ref":"EID6ee39369-0175-1000-301a-bee152f2b642"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee393f8-0175-1000-7d92-8a933a963f24","parent":{"ref":"EID6ee39369-0175-1000-301a-bee152f2b642"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee393f8-0175-1000-b864-e00d94b0ead3","parent":{"ref":"EID6ee39369-0175-1000-301a-bee152f2b642"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee393f8-0175-1000-7a9d-c33eb328f585","parent":{"ref":"EID6ee39369-0175-1000-301a-bee152f2b642"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:06:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1020c25d-6cd6-46ed-a312-8639320eb2c8"},{"ref":"EID1fca3f8c-737d-460e-b1f5-619f7ba94f6f"},{"ref":"EID782b92af-c90c-4abe-ab39-611167e3934c"}]},"parent":{"ref":"EID6ee39369-0175-1000-71c7-32f58ed2e27e"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:06:49Z","duration":40,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:06:49Z","duration":143,"status":"PASSED"},{"id":"EID6ee393f8-0175-1000-2188-8e4f8b45ca22","testStepResults":{"TestStepResult":[{"id":"EID6ee393f8-0175-1000-b312-440e0661f69d","attachments":{"attachment":[{"ref":"EIDf5b873e1-7cdf-40ca-ad60-14b5b85192d7"},{"ref":"EID43cdb495-bf5d-4194-83e5-107190876353"},{"ref":"EIDdcb5cb8e-94ca-4d57-ac9e-d6693cd76980"},{"ref":"EIDfa2ff913-12a4-422c-8ae1-2c55ab5d70c4"}]},"parent":{"ref":"EID6ee393f8-0175-1000-2188-8e4f8b45ca22"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:06:49Z","duration":336,"status":"PASSED"},{"id":"EID6ee3958a-0175-1000-5e32-03cfc0076c10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3965f-0175-1000-7083-807d1992b9de","parent":{"ref":"EID6ee3958a-0175-1000-5e32-03cfc0076c10"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee3965f-0175-1000-b1e4-0a18f0e1c330","parent":{"ref":"EID6ee3958a-0175-1000-5e32-03cfc0076c10"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee3965f-0175-1000-f837-0b854d5ef348","parent":{"ref":"EID6ee3958a-0175-1000-5e32-03cfc0076c10"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee3965f-0175-1000-5443-1a57acd11c82","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee3958a-0175-1000-5e32-03cfc0076c10"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf0c0c48e-95c2-4ce7-8aa9-0b9d6ba07c39"},{"ref":"EID266ab1fe-eba7-4bc9-a5e3-fc8ef9c3d66a"},{"ref":"EID62c72fa4-1c78-4622-a264-c7d2374da846"}]},"parent":{"ref":"EID6ee393f8-0175-1000-2188-8e4f8b45ca22"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:06:50Z","duration":113,"status":"FAILED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:06:49Z","duration":615,"status":"FAILED"},{"id":"EID6ee3965f-0175-1000-5cb7-ecfa885fc6fa","testStepResults":{"TestStepResult":{"id":"EID6ee3965f-0175-1000-7d59-4b6678560f2b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee396f2-0175-1000-3e7f-6939258e220b","parent":{"ref":"EID6ee3965f-0175-1000-7d59-4b6678560f2b"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee396f2-0175-1000-301c-9c061e0c3368","parent":{"ref":"EID6ee3965f-0175-1000-7d59-4b6678560f2b"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee396f2-0175-1000-c570-1efe10b94c9a","parent":{"ref":"EID6ee3965f-0175-1000-7d59-4b6678560f2b"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee396f2-0175-1000-e299-1d69d480d4c0","parent":{"ref":"EID6ee3965f-0175-1000-7d59-4b6678560f2b"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID19cf9d9b-209a-4db9-a896-8d5d206f2455"},{"ref":"EID70f01b58-582a-469d-b931-ee925de3bd90"},{"ref":"EID963179c1-b670-406d-9dea-7a7704c11fa1"}]},"parent":{"ref":"EID6ee3965f-0175-1000-5cb7-ecfa885fc6fa"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:06:50Z","duration":52,"status":"PASSED"}},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:06:50Z","duration":164,"status":"PASSED"},{"id":"EID6ee39703-0175-1000-014a-9f92120c0923","testStepResults":{"TestStepResult":[{"id":"EID6ee39703-0175-1000-f934-c1fc3a861379","parent":{"ref":"EID6ee39703-0175-1000-014a-9f92120c0923"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee39703-0175-1000-7810-e52ca6f3d514","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee397a6-0175-1000-c59a-d4599e12294c","parent":{"ref":"EID6ee39703-0175-1000-7810-e52ca6f3d514"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee397a6-0175-1000-58c0-4b991fe31e9f","parent":{"ref":"EID6ee39703-0175-1000-7810-e52ca6f3d514"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee397a6-0175-1000-2639-5aa10681c55b","parent":{"ref":"EID6ee39703-0175-1000-7810-e52ca6f3d514"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee397a6-0175-1000-d51f-ef1678a083d2","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee39703-0175-1000-7810-e52ca6f3d514"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID555af60b-d15f-46d7-99ee-93b5e2db89c0"},{"ref":"EID76e2ae78-3583-4125-a24e-8c09479c1474"},{"ref":"EIDcd153ae5-bd4e-4e94-98ab-cb5d122e4351"}]},"parent":{"ref":"EID6ee39703-0175-1000-014a-9f92120c0923"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:06:50Z","duration":57,"status":"FAILED"}]},"parent":{"ref":"EID6ee37e13-0175-1000-4011-292527e5c3b8"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:06:50Z","duration":163,"status":"FAILED"}]},"parent":{"ref":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:06:44Z","duration":6547,"status":"FAILED"},{"id":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362","testCaseResults":{"TestCaseResult":[{"id":"EID6ee397a6-0175-1000-f8db-957d41626ee4","testStepResults":{"TestStepResult":[{"id":"EID6ee397af-0175-1000-d88b-ae1facc3422d","parent":{"ref":"EID6ee397a6-0175-1000-f8db-957d41626ee4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee397af-0175-1000-bd01-85a74317a3d0","parent":{"ref":"EID6ee397a6-0175-1000-f8db-957d41626ee4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:06:50Z","duration":52,"status":"PASSED"},{"id":"EID6ee397af-0175-1000-a9a0-a9e2c13a1d49","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3986b-0175-1000-877b-f10f76329327","parent":{"ref":"EID6ee397af-0175-1000-a9a0-a9e2c13a1d49"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee3986b-0175-1000-00a4-72ea30c98dfe","parent":{"ref":"EID6ee397af-0175-1000-a9a0-a9e2c13a1d49"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee3986b-0175-1000-1484-d3b4a2568622","parent":{"ref":"EID6ee397af-0175-1000-a9a0-a9e2c13a1d49"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID32a4517a-2ebe-4039-94bd-932252a4cd10"},{"ref":"EIDa4757c20-2d48-4920-9dfb-f278f8b59516"},{"ref":"EID1a627511-3eca-43e3-b490-9297b867f932"}]},"parent":{"ref":"EID6ee397a6-0175-1000-f8db-957d41626ee4"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:06:50Z","duration":68,"status":"PASSED"},{"id":"EID6ee3986b-0175-1000-f5dc-ee7b55be577c","attachments":{"attachment":{"ref":"EIDef7fbd4e-e94e-4d4f-b5ca-45dac34df7b8"}},"parent":{"ref":"EID6ee397a6-0175-1000-f8db-957d41626ee4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee39877-0175-1000-6e9d-6e451ba2f7f6","parent":{"ref":"EID6ee397a6-0175-1000-f8db-957d41626ee4"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:06:50Z","duration":26,"status":"PASSED"}]},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:06:50Z","duration":236,"status":"PASSED"},{"id":"EID6ee39892-0175-1000-fa51-d22fd341a253","testStepResults":{"TestStepResult":[{"id":"EID6ee39892-0175-1000-f680-be77b14ab06c","parent":{"ref":"EID6ee39892-0175-1000-fa51-d22fd341a253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:06:50Z","duration":113,"status":"PASSED"},{"id":"EID6ee39892-0175-1000-0873-ecfa5fdcab28","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee398e8-0175-1000-121a-99b9f5e973b0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39892-0175-1000-0873-ecfa5fdcab28"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:06:50Z","duration":12,"status":"FAILED"},{"id":"EID6ee398f4-0175-1000-5c01-7c68c8fc28a5","parent":{"ref":"EID6ee39892-0175-1000-0873-ecfa5fdcab28"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee398f4-0175-1000-4e03-4e0c9de45b68","parent":{"ref":"EID6ee39892-0175-1000-0873-ecfa5fdcab28"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee398f4-0175-1000-a784-122ae36f9cb1","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee39892-0175-1000-0873-ecfa5fdcab28"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"FAILED"},{"id":"EID6ee398f4-0175-1000-1a99-ed2c204e2d08","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee39892-0175-1000-0873-ecfa5fdcab28"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:06:50Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3895d0f4-00b5-4ae4-9491-cc4ba3875129"},{"ref":"EIDcd9e4749-4744-4bbf-9c98-5c3cfa368451"},{"ref":"EID099d2c0b-18ba-45c6-b8c5-fc177a8f61da"}]},"parent":{"ref":"EID6ee39892-0175-1000-fa51-d22fd341a253"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:06:50Z","duration":25,"status":"FAILED"}]},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:06:50Z","duration":99,"status":"FAILED"},{"id":"EID6ee398f5-0175-1000-2888-cdd1e3f004e1","testStepResults":{"TestStepResult":{"id":"EID6ee398f5-0175-1000-c2d5-a5f3048a4164","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39951-0175-1000-e67b-eeda7b7c9e2d","parent":{"ref":"EID6ee398f5-0175-1000-c2d5-a5f3048a4164"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39951-0175-1000-5988-cffd177dd186","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee398f5-0175-1000-c2d5-a5f3048a4164"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:06:51Z","duration":10,"status":"FAILED"},{"id":"EID6ee3995c-0175-1000-4f1d-02e97513afe6","parent":{"ref":"EID6ee398f5-0175-1000-c2d5-a5f3048a4164"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID823ab470-f4fc-4101-9cb3-04b20244864b"},{"ref":"EID80961ac1-b628-4f99-b9b3-e2c64d557955"},{"ref":"EID0b3ef28a-63f2-4d2b-9954-7c3d4beae942"}]},"parent":{"ref":"EID6ee398f5-0175-1000-2888-cdd1e3f004e1"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:06:50Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:06:50Z","duration":103,"status":"FAILED"},{"id":"EID6ee3995c-0175-1000-9856-8d8dffc8bcc1","testStepResults":{"TestStepResult":{"id":"EID6ee3995c-0175-1000-4711-3458103891e7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee399c0-0175-1000-a446-27b37e7c1c06","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee3995c-0175-1000-4711-3458103891e7"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"},{"id":"EID6ee399c0-0175-1000-696d-7cf1fd17620a","parent":{"ref":"EID6ee3995c-0175-1000-4711-3458103891e7"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:06:51Z","duration":1,"status":"PASSED"},{"id":"EID6ee399c1-0175-1000-5ced-88a7da563675","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee3995c-0175-1000-4711-3458103891e7"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:06:51Z","duration":10,"status":"FAILED"},{"id":"EID6ee399cb-0175-1000-5e6a-c0fa772a1cde","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee3995c-0175-1000-4711-3458103891e7"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5a7fa202-0a0c-4cfc-8f70-08728c47066f"},{"ref":"EIDa0ef7e19-b49b-4551-a21b-a490bf499c64"},{"ref":"EIDe91cefba-2b5d-43cf-9bc6-8c2c763509a2"}]},"parent":{"ref":"EID6ee3995c-0175-1000-9856-8d8dffc8bcc1"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:06:51Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:06:51Z","duration":111,"status":"FAILED"},{"id":"EID6ee399cc-0175-1000-e6de-787913f0ab36","testStepResults":{"TestStepResult":{"id":"EID6ee399cc-0175-1000-f412-1672394a0d96","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39a41-0175-1000-0e98-7feb3ac6e48a","parent":{"ref":"EID6ee399cc-0175-1000-f412-1672394a0d96"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39a41-0175-1000-8bcf-bc99d553c943","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee399cc-0175-1000-f412-1672394a0d96"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:06:51Z","duration":11,"status":"FAILED"},{"id":"EID6ee39a4c-0175-1000-98fb-959b8ac8281c","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee399cc-0175-1000-f412-1672394a0d96"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID96c89765-4ee9-46d9-a202-9fb2e5f45407"},{"ref":"EID3e0f1e45-9f24-491b-8e74-c607cf1a0813"},{"ref":"EIDc2c34307-b549-4589-b8be-9c76a97bf867"}]},"parent":{"ref":"EID6ee399cc-0175-1000-e6de-787913f0ab36"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:06:51Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:06:51Z","duration":135,"status":"FAILED"},{"id":"EID6ee39a53-0175-1000-d1bf-87b5b9332945","testStepResults":{"TestStepResult":{"id":"EID6ee39a53-0175-1000-a755-f9687189d89d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39aa5-0175-1000-e66d-c513ee8ff8ff","parent":{"ref":"EID6ee39a53-0175-1000-a755-f9687189d89d"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39aa5-0175-1000-b1e9-e20d9e63bc8f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39a53-0175-1000-a755-f9687189d89d"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:06:51Z","duration":10,"status":"FAILED"},{"id":"EID6ee39aaf-0175-1000-c5f3-db4d70ab4ac9","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee39a53-0175-1000-a755-f9687189d89d"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4b4fd024-81c4-4ef8-ab68-0e01ea84a494"},{"ref":"EIDe5fe116f-5678-4da6-b608-9ecdb1fe2163"},{"ref":"EID4030f437-9294-41f1-a356-e8bd53bbba53"}]},"parent":{"ref":"EID6ee39a53-0175-1000-d1bf-87b5b9332945"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:06:51Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:06:51Z","duration":92,"status":"FAILED"},{"id":"EID6ee39aaf-0175-1000-da6d-e1134b095e5f","testStepResults":{"TestStepResult":{"id":"EID6ee39aaf-0175-1000-e808-2aca0888a82a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39b20-0175-1000-32d5-20e4c7d0d9b9","parent":{"ref":"EID6ee39aaf-0175-1000-e808-2aca0888a82a"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39b20-0175-1000-b80c-f289a97d9146","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39aaf-0175-1000-e808-2aca0888a82a"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:06:51Z","duration":11,"status":"FAILED"},{"id":"EID6ee39b2b-0175-1000-29da-e1446908aa18","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee39aaf-0175-1000-e808-2aca0888a82a"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"},{"id":"EID6ee39b2b-0175-1000-82a2-3d20aaf4ff95","parent":{"ref":"EID6ee39aaf-0175-1000-e808-2aca0888a82a"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39b2b-0175-1000-609e-d5dd6ec34e9b","parent":{"ref":"EID6ee39aaf-0175-1000-e808-2aca0888a82a"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3a2cb4c0-48c0-455e-95f0-a697ceed1ba8"},{"ref":"EIDd14e8296-843e-4ad1-895b-eea20ddd6676"},{"ref":"EID47fcd249-8bd5-4e59-9e5c-f755edbe151c"}]},"parent":{"ref":"EID6ee39aaf-0175-1000-da6d-e1134b095e5f"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:06:51Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:06:51Z","duration":124,"status":"FAILED"},{"id":"EID6ee39b2b-0175-1000-fbfb-1a034edbdfd5","testStepResults":{"TestStepResult":{"id":"EID6ee39b2b-0175-1000-6156-4b36af98d71f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39ba7-0175-1000-3f76-a7025206b741","parent":{"ref":"EID6ee39b2b-0175-1000-6156-4b36af98d71f"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39ba7-0175-1000-d0f0-35d24e4bae89","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39b2b-0175-1000-6156-4b36af98d71f"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:06:51Z","duration":10,"status":"FAILED"},{"id":"EID6ee39bb1-0175-1000-9201-ae14cc2fe803","parent":{"ref":"EID6ee39b2b-0175-1000-6156-4b36af98d71f"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID78658bd9-8f58-442f-a467-db1300cd292d"},{"ref":"EID02c2df25-64db-455d-a20f-074056dced01"},{"ref":"EIDe2be9dcd-a772-41d5-977d-024b42dac9d2"}]},"parent":{"ref":"EID6ee39b2b-0175-1000-fbfb-1a034edbdfd5"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:06:51Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:06:51Z","duration":134,"status":"FAILED"},{"id":"EID6ee39bb1-0175-1000-f2c8-8f8cc33f3663","testStepResults":{"TestStepResult":{"id":"EID6ee39bb2-0175-1000-bdcd-db5a1b3148e6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39c04-0175-1000-8069-a7480a8407aa","parent":{"ref":"EID6ee39bb2-0175-1000-bdcd-db5a1b3148e6"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39c04-0175-1000-4b37-cf5ca013044f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39bb2-0175-1000-bdcd-db5a1b3148e6"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:06:51Z","duration":12,"status":"FAILED"},{"id":"EID6ee39c10-0175-1000-a620-46c8ef26ece5","parent":{"ref":"EID6ee39bb2-0175-1000-bdcd-db5a1b3148e6"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3bd186e0-4bef-4f22-b498-441c057f419f"},{"ref":"EID9f384e4d-7463-4cbf-8be6-3bead02e2802"},{"ref":"EIDe6cf3605-8981-4b19-9425-7a531d09cd01"}]},"parent":{"ref":"EID6ee39bb1-0175-1000-f2c8-8f8cc33f3663"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:06:51Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:06:51Z","duration":95,"status":"FAILED"},{"id":"EID6ee39c10-0175-1000-6885-91998fb4f26d","testStepResults":{"TestStepResult":{"id":"EID6ee39c10-0175-1000-4211-d2e2a1ace979","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39c78-0175-1000-04bb-27405376e2af","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39c10-0175-1000-4211-d2e2a1ace979"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:06:51Z","duration":13,"status":"FAILED"},{"id":"EID6ee39c85-0175-1000-8cd1-c9d40b77e23b","parent":{"ref":"EID6ee39c10-0175-1000-4211-d2e2a1ace979"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee39c85-0175-1000-815b-5236f3978876","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee39c10-0175-1000-4211-d2e2a1ace979"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"},{"id":"EID6ee39c85-0175-1000-fa66-43ef7874bb47","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee39c10-0175-1000-4211-d2e2a1ace979"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:06:51Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDeee48913-9acc-410b-a161-5cb34a19e466"},{"ref":"EID30ad64dc-b1e7-4069-86bd-f8deaa6ca1be"},{"ref":"EIDd2fd1fb5-1393-4ed5-87ce-ef25726fd3cf"}]},"parent":{"ref":"EID6ee39c10-0175-1000-6885-91998fb4f26d"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:06:51Z","duration":38,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:06:51Z","duration":117,"status":"FAILED"},{"id":"EID6ee39c85-0175-1000-b7c6-bc63bc48ff0b","testStepResults":{"TestStepResult":{"id":"EID6ee39c85-0175-1000-2f81-5a7a252cff0f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39ce8-0175-1000-b14c-132aeaf518d3","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39c85-0175-1000-2f81-5a7a252cff0f"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:06:52Z","duration":12,"status":"FAILED"},{"id":"EID6ee39cf4-0175-1000-42af-98d93e6362b6","parent":{"ref":"EID6ee39c85-0175-1000-2f81-5a7a252cff0f"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39cf4-0175-1000-f11f-d735521aedc1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee39c85-0175-1000-2f81-5a7a252cff0f"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"FAILED"},{"id":"EID6ee39cf4-0175-1000-7a99-dbeaba03bb9e","parent":{"ref":"EID6ee39c85-0175-1000-2f81-5a7a252cff0f"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfec26891-52f5-4684-b9b4-06f3f1ee0497"},{"ref":"EID9eff53f0-8c37-4b3b-8574-c701f1819924"},{"ref":"EIDd3b58ae8-3252-49a4-928c-3dd9e4c4b4d8"}]},"parent":{"ref":"EID6ee39c85-0175-1000-b7c6-bc63bc48ff0b"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:06:51Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:06:51Z","duration":111,"status":"FAILED"},{"id":"EID6ee39cf4-0175-1000-259a-e471dad25d0b","testStepResults":{"TestStepResult":[{"id":"EID6ee39cf4-0175-1000-437b-43b2cca43a3f","parent":{"ref":"EID6ee39cf4-0175-1000-259a-e471dad25d0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39cf4-0175-1000-5e8a-f660e2997620","parent":{"ref":"EID6ee39cf4-0175-1000-259a-e471dad25d0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:06:52Z","duration":176,"status":"PASSED"},{"id":"EID6ee39cf4-0175-1000-04d2-1b3b545efe3a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39dc3-0175-1000-e150-ac8e25dafcd8","parent":{"ref":"EID6ee39cf4-0175-1000-04d2-1b3b545efe3a"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39dc3-0175-1000-cf5c-dab46ea857ad","parent":{"ref":"EID6ee39cf4-0175-1000-04d2-1b3b545efe3a"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39dc3-0175-1000-853a-d35c22dc7ced","parent":{"ref":"EID6ee39cf4-0175-1000-04d2-1b3b545efe3a"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39dc3-0175-1000-e8e2-a7e1343749c9","parent":{"ref":"EID6ee39cf4-0175-1000-04d2-1b3b545efe3a"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDad17f911-5a67-457a-8bc2-f89c6f025264"},{"ref":"EID847a6c4f-f90e-4aaa-9671-038ad7266121"},{"ref":"EIDfee52f71-0f64-4be8-a3dc-9af5043166fc"}]},"parent":{"ref":"EID6ee39cf4-0175-1000-259a-e471dad25d0b"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:06:52Z","duration":56,"status":"PASSED"},{"id":"EID6ee39dc4-0175-1000-5346-f50448b5a0a9","attachments":{"attachment":{"ref":"EIDe55f6090-ffed-4511-847e-58ca774ed792"}},"parent":{"ref":"EID6ee39cf4-0175-1000-259a-e471dad25d0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:06:52Z","duration":4,"status":"PASSED"},{"id":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39e3a-0175-1000-606b-76dd71d9bee1","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e3a-0175-1000-91ee-3c3c7b723c43","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:06:52Z","duration":12,"status":"FAILED"},{"id":"EID6ee39e46-0175-1000-710f-c6dce4d7d421","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e46-0175-1000-2c9b-adb732e33b0c","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e46-0175-1000-9b9b-5d5e9f845b28","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e46-0175-1000-885e-b609053b5d37","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e46-0175-1000-8f4c-9725fc03b896","parent":{"ref":"EID6ee39dd2-0175-1000-0958-f8b5b95b22a0"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID780b1a0f-ace9-47b5-ad5b-74a8e83a1e5e"},{"ref":"EIDc0461eb7-d79f-4352-9531-caf9f9dec92b"},{"ref":"EID2e171123-e068-4524-8349-c1f50564397b"}]},"parent":{"ref":"EID6ee39cf4-0175-1000-259a-e471dad25d0b"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:06:52Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:06:52Z","duration":338,"status":"FAILED"},{"id":"EID6ee39e46-0175-1000-5d5c-7f579229afb7","testStepResults":{"TestStepResult":[{"id":"EID6ee39e46-0175-1000-5814-aba0b3632de3","parent":{"ref":"EID6ee39e46-0175-1000-5d5c-7f579229afb7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39e46-0175-1000-8338-9eeda9383c47","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee39f3c-0175-1000-f046-436ff9d98793","parent":{"ref":"EID6ee39e46-0175-1000-8338-9eeda9383c47"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39f3c-0175-1000-c511-f9614aa184be","parent":{"ref":"EID6ee39e46-0175-1000-8338-9eeda9383c47"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39f3c-0175-1000-f1b8-73267ca7faa7","parent":{"ref":"EID6ee39e46-0175-1000-8338-9eeda9383c47"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee39f3c-0175-1000-c027-44f32cb1dfa7","parent":{"ref":"EID6ee39e46-0175-1000-8338-9eeda9383c47"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1ac23234-6ff7-45fe-b503-884a415b146a"},{"ref":"EIDbc6fba12-013f-4dd5-8eb0-b6b582d9a214"},{"ref":"EID701ec4ad-5ab0-440e-8fee-0a28fc13f304"}]},"parent":{"ref":"EID6ee39e46-0175-1000-5d5c-7f579229afb7"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:06:52Z","duration":145,"status":"PASSED"},{"id":"EID6ee39f48-0175-1000-89d8-1e4fac26e556","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee39f59-0175-1000-9125-457ae660d03a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3a042-0175-1000-b20b-671df1222a25","parent":{"ref":"EID6ee39f59-0175-1000-9125-457ae660d03a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a042-0175-1000-61ca-f9cc3bb82afe","parent":{"ref":"EID6ee39f59-0175-1000-9125-457ae660d03a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a042-0175-1000-c5f3-3da624948072","parent":{"ref":"EID6ee39f59-0175-1000-9125-457ae660d03a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID74199133-c1a0-4752-a99b-23b6654a8a76"},{"ref":"EIDe868e43b-4a05-409a-9ac1-5b8ff884f651"},{"ref":"EID140c89a3-7dc3-41cb-90ab-610567b0e9b5"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:52Z","duration":150,"status":"PASSED"},{"id":"EID6ee3a044-0175-1000-5167-a5f6021c850c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3a110-0175-1000-65f4-c272ee2198ac","parent":{"ref":"EID6ee3a044-0175-1000-5167-a5f6021c850c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a110-0175-1000-ac40-6c89f5c4afd0","parent":{"ref":"EID6ee3a044-0175-1000-5167-a5f6021c850c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a110-0175-1000-a7ce-7ed628ecf3f1","parent":{"ref":"EID6ee3a044-0175-1000-5167-a5f6021c850c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6d18a340-f43c-4130-bbfb-3d9afde2518f"},{"ref":"EID56f075a6-2cb4-43c2-aecb-90968d51c4b2"},{"ref":"EIDac388227-d8d1-4b02-b68c-ab8f4a7582b2"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:52Z","duration":150,"status":"PASSED"},{"id":"EID6ee3a111-0175-1000-9d67-6a06c569aaf8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3a1d6-0175-1000-f61b-17b65c00e14c","parent":{"ref":"EID6ee3a111-0175-1000-9d67-6a06c569aaf8"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a1d6-0175-1000-4537-99d657e23ec5","parent":{"ref":"EID6ee3a111-0175-1000-9d67-6a06c569aaf8"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a1d6-0175-1000-f5bc-37fdd13e27b0","parent":{"ref":"EID6ee3a111-0175-1000-9d67-6a06c569aaf8"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa95bca3f-9d1c-4ab3-88a9-512ceb67c3db"},{"ref":"EIDaa06fe03-477c-43b0-b221-beb4332e636f"},{"ref":"EIDeff735b1-5687-448b-b217-50c03bef67b2"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:06:53Z","duration":148,"status":"PASSED"}]},"parent":{"ref":"EID6ee39e46-0175-1000-5d5c-7f579229afb7"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:06:52Z","duration":655,"status":"PASSED"},{"id":"EID6ee3a1d7-0175-1000-9e56-ce3b6e098a10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3a254-0175-1000-033e-06b62d1166fc","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee3a1d7-0175-1000-9e56-ce3b6e098a10"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:06:53Z","duration":11,"status":"FAILED"},{"id":"EID6ee3a25f-0175-1000-eac3-63038d0d82a2","parent":{"ref":"EID6ee3a1d7-0175-1000-9e56-ce3b6e098a10"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a25f-0175-1000-d400-0bdff5de0353","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee3a1d7-0175-1000-9e56-ce3b6e098a10"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"FAILED"},{"id":"EID6ee3a25f-0175-1000-3f22-8773ab2281f1","parent":{"ref":"EID6ee3a1d7-0175-1000-9e56-ce3b6e098a10"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf8a4ef19-20a1-4cff-869c-b265abc45d9c"},{"ref":"EIDc0c9a1f1-414f-4d31-a171-a883f6793ce8"},{"ref":"EID0ccb3f56-849c-4f44-9148-8ef197669570"}]},"parent":{"ref":"EID6ee39e46-0175-1000-5d5c-7f579229afb7"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:06:53Z","duration":32,"status":"FAILED"}]},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:06:52Z","duration":1050,"status":"FAILED"},{"id":"EID6ee3a260-0175-1000-fe58-5edb5f21c4e0","testStepResults":{"TestStepResult":{"id":"EID6ee3a260-0175-1000-a9d6-596fa02ea415","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3a2e1-0175-1000-89a5-ae3cdbde92af","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee3a260-0175-1000-a9d6-596fa02ea415"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:06:53Z","duration":18,"status":"FAILED"},{"id":"EID6ee3a2f3-0175-1000-a237-c63f55939779","parent":{"ref":"EID6ee3a260-0175-1000-a9d6-596fa02ea415"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee3a2f3-0175-1000-0873-8e64af74ad41","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee3a260-0175-1000-a9d6-596fa02ea415"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"FAILED"},{"id":"EID6ee3a2f3-0175-1000-3f9b-f66d409c64f2","parent":{"ref":"EID6ee3a260-0175-1000-a9d6-596fa02ea415"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID92c868d6-a91f-46ca-a661-a8d97ba3afc2"},{"ref":"EIDbab1fa12-9057-4c0d-b67e-b62e0fc5daf0"},{"ref":"EID2fb58d5e-3469-48b2-a8c3-0881bc676aab"}]},"parent":{"ref":"EID6ee3a260-0175-1000-fe58-5edb5f21c4e0"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:06:53Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee397a6-0175-1000-511a-e9ecbd0fb362"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:06:53Z","duration":174,"status":"FAILED"}]},"parent":{"ref":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:06:50Z","duration":2920,"status":"FAILED"},{"id":"EID6ee3a30e-0175-1000-256a-a20685fa86c5","testCaseResults":{"TestCaseResult":[{"id":"EID6ee3a30e-0175-1000-6aea-13f0f0772513","testStepResults":{"TestStepResult":{"id":"EID6ee3a30e-0175-1000-70fc-46e6803d6a86","parent":{"ref":"EID6ee3a30e-0175-1000-6aea-13f0f0772513"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee3a30e-0175-1000-8844-ce915c8436bf","testStepResults":{"TestStepResult":{"id":"EID6ee3a30e-0175-1000-8c95-cae3f1e0a7a5","parent":{"ref":"EID6ee3a30e-0175-1000-8844-ce915c8436bf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee3a30e-0175-1000-e09d-4284aa49cafe","testStepResults":{"TestStepResult":{"id":"EID6ee3a30e-0175-1000-0263-6d3695383307","parent":{"ref":"EID6ee3a30e-0175-1000-e09d-4284aa49cafe"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee3a30e-0175-1000-083b-255a47f3da14","testStepResults":{"TestStepResult":{"id":"EID6ee3a30e-0175-1000-ca6b-affc60d6f490","parent":{"ref":"EID6ee3a30e-0175-1000-083b-255a47f3da14"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee3a30f-0175-1000-e9a0-5d189635d5cf","testStepResults":{"TestStepResult":{"id":"EID6ee3a31a-0175-1000-a34f-bdf1f5983390","parent":{"ref":"EID6ee3a30f-0175-1000-e9a0-5d189635d5cf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:06:53Z","duration":11,"status":"SKIPPED"},{"id":"EID6ee3a31a-0175-1000-a9ec-65a7a3e4ad21","testStepResults":{"TestStepResult":{"id":"EID6ee3a31a-0175-1000-f685-e87dfc6ed67d","parent":{"ref":"EID6ee3a31a-0175-1000-a9ec-65a7a3e4ad21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:06:53Z","duration":1,"status":"SKIPPED"},{"id":"EID6ee3a31b-0175-1000-9f46-286f33f4f4ed","testStepResults":{"TestStepResult":{"id":"EID6ee3a31b-0175-1000-39af-81f4e8bc69e3","parent":{"ref":"EID6ee3a31b-0175-1000-9f46-286f33f4f4ed"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:06:53Z","duration":367,"status":"SKIPPED"}},"parent":{"ref":"EID6ee3a30e-0175-1000-256a-a20685fa86c5"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:06:53Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:06:53Z","duration":13,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EIDaf572255-188b-4c21-b216-d756af4eb5eb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDaf572255-188b-4c21-b216-d756af4eb5eb"}},{"type":"Error","id":"EID7b3d9727-c9cb-4536-bac2-d4aa8aa25ad0","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID7b3d9727-c9cb-4536-bac2-d4aa8aa25ad0"}},{"type":"LogFile","id":"EID90def791-4375-4ac9-8bbd-fcaceaaf5637","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID90def791-4375-4ac9-8bbd-fcaceaaf5637"}},{"type":"ServiceEndpoint","id":"EIDfddba5d6-ef04-4246-8a74-7596c10cbc3a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID9bd42647-23bf-4535-830a-8189e4a4f98b","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID9bd42647-23bf-4535-830a-8189e4a4f98b"}},{"type":"GetParameter","id":"EIDe6cf3605-8981-4b19-9425-7a531d09cd01","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID9eff53f0-8c37-4b3b-8574-c701f1819924","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID9eff53f0-8c37-4b3b-8574-c701f1819924"}},{"type":"ServiceEndpoint","id":"EID1020c25d-6cd6-46ed-a312-8639320eb2c8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID76e2ae78-3583-4125-a24e-8c09479c1474","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID76e2ae78-3583-4125-a24e-8c09479c1474"}},{"type":"ServiceEndpoint","id":"EIDa5bf70ac-edbf-4b7b-928e-1bbd6129b2b1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf0c0c48e-95c2-4ce7-8aa9-0b9d6ba07c39","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID7d8bd063-5443-4647-8ae2-4a51bb7fafb2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID7d8bd063-5443-4647-8ae2-4a51bb7fafb2"}},{"type":"ServiceEndpoint","id":"EIDf8a4ef19-20a1-4cff-869c-b265abc45d9c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID963179c1-b670-406d-9dea-7a7704c11fa1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6c64ce86-898c-4ff0-a478-d9f5ff39cd4c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5a7fa202-0a0c-4cfc-8f70-08728c47066f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID353fb4ae-1e32-4f52-a532-5d783fb4b9bc","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID353fb4ae-1e32-4f52-a532-5d783fb4b9bc"}},{"type":"GetParameter","id":"EID2e171123-e068-4524-8349-c1f50564397b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID74199133-c1a0-4752-a99b-23b6654a8a76","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Error","id":"EID101894f0-eafc-43ad-9944-efb65e785352","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID101894f0-eafc-43ad-9944-efb65e785352"}},{"type":"ServiceResponse","id":"EID56f075a6-2cb4-43c2-aecb-90968d51c4b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID56f075a6-2cb4-43c2-aecb-90968d51c4b2"}},{"type":"Message","id":"EID6786b2be-ab62-4741-8d7e-6d93e19f6071","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID6786b2be-ab62-4741-8d7e-6d93e19f6071"}},{"type":"ServiceResponse","id":"EIDe5fe116f-5678-4da6-b608-9ecdb1fe2163","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDe5fe116f-5678-4da6-b608-9ecdb1fe2163"}},{"type":"GetParameter","id":"EID3baed7fc-62dd-4b6d-8146-d74e949c0b5d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfc0dffcd-697c-40da-93e6-fdb84e3553e7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID15391eb4-4a05-4b78-8f71-750deca49948","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID15391eb4-4a05-4b78-8f71-750deca49948"}},{"type":"ServiceEndpoint","id":"EID780b1a0f-ace9-47b5-ad5b-74a8e83a1e5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID19cf9d9b-209a-4db9-a896-8d5d206f2455","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID96c89765-4ee9-46d9-a202-9fb2e5f45407","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID30ad64dc-b1e7-4069-86bd-f8deaa6ca1be","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID30ad64dc-b1e7-4069-86bd-f8deaa6ca1be"}},{"type":"ServiceResponse","id":"EIDcd9e4749-4744-4bbf-9c98-5c3cfa368451","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDcd9e4749-4744-4bbf-9c98-5c3cfa368451"}},{"type":"ServiceResponse","id":"EIDd58e8063-63cd-4851-abd4-ba73ae8c7df5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDd58e8063-63cd-4851-abd4-ba73ae8c7df5"}},{"type":"ServiceResponse","id":"EID0b14f9a9-ad5c-4596-b678-a0482887b9df","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID0b14f9a9-ad5c-4596-b678-a0482887b9df"}},{"type":"Message","id":"EIDaff926a4-0658-4b98-a4a6-52cd613b4053","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDaff926a4-0658-4b98-a4a6-52cd613b4053"}},{"type":"ServiceResponse","id":"EID2db56f1c-7c65-4e05-9d49-5d80c23a9d5c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID2db56f1c-7c65-4e05-9d49-5d80c23a9d5c"}},{"type":"GetParameter","id":"EIDeff735b1-5687-448b-b217-50c03bef67b2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID1ab712fe-09db-4f4f-a2f1-5ed3118059d3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe91cefba-2b5d-43cf-9bc6-8c2c763509a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd3b58ae8-3252-49a4-928c-3dd9e4c4b4d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDfec26891-52f5-4684-b9b4-06f3f1ee0497","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID910e81b3-7550-4413-9931-b648e4ad1ccb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID3bd186e0-4bef-4f22-b498-441c057f419f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDeee48913-9acc-410b-a161-5cb34a19e466","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDd14e8296-843e-4ad1-895b-eea20ddd6676","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDd14e8296-843e-4ad1-895b-eea20ddd6676"}},{"type":"GetParameter","id":"EID13415609-06d0-43e8-9ad8-0574718b1ce1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID67af464e-2766-4f17-9710-932b10bbe941","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID67af464e-2766-4f17-9710-932b10bbe941"}},{"type":"Message","id":"EIDf5b873e1-7cdf-40ca-ad60-14b5b85192d7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDf5b873e1-7cdf-40ca-ad60-14b5b85192d7"}},{"type":"ServiceEndpoint","id":"EID547c9a45-a127-4d69-9d29-aea85b2b7ad1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDdc032220-b32f-4f6b-9016-725963d44381","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDdc032220-b32f-4f6b-9016-725963d44381"}},{"type":"ServiceResponse","id":"EIDbf49b797-f48d-4aaa-ba22-2ef294092282","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDbf49b797-f48d-4aaa-ba22-2ef294092282"}},{"type":"Message","id":"EID6f87a8fd-e466-4166-8643-ff6828408f62","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID6f87a8fd-e466-4166-8643-ff6828408f62"}},{"type":"Message","id":"EID4b3e2578-a1fb-446e-86a1-adf3a684d3a4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID4b3e2578-a1fb-446e-86a1-adf3a684d3a4"}},{"type":"ServiceResponse","id":"EIDc0c9a1f1-414f-4d31-a171-a883f6793ce8","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDc0c9a1f1-414f-4d31-a171-a883f6793ce8"}},{"type":"GetParameter","id":"EID099d2c0b-18ba-45c6-b8c5-fc177a8f61da","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID206a94bf-f42d-4ffd-9d7d-d8773365dbc1","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID206a94bf-f42d-4ffd-9d7d-d8773365dbc1"}},{"type":"Message","id":"EIDd93bbf99-7a8d-45e1-9425-ac7b05991718","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDd93bbf99-7a8d-45e1-9425-ac7b05991718"}},{"type":"ServiceEndpoint","id":"EID8dbd5f7d-2f4e-43e0-924c-1138e3c3ab11","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID76d9e683-fc03-41e9-a5a1-3e2236b5bcc6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID66139a35-4294-4b5b-a26f-d19fbe5689b7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe868e43b-4a05-409a-9ac1-5b8ff884f651","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDe868e43b-4a05-409a-9ac1-5b8ff884f651"}},{"type":"Error","id":"EIDccf17cdc-c31d-4765-b256-538a55899036","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDccf17cdc-c31d-4765-b256-538a55899036"}},{"type":"GetParameter","id":"EID33456ec8-0e1a-4bee-a7f2-608f31d15082","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDc863a893-738a-4f11-8ba4-4dfc07fed172","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3085dfe0-085e-476d-96e4-c3d888df4bbb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID21129a57-897b-45f3-b76e-2065549ae93a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID21129a57-897b-45f3-b76e-2065549ae93a"}},{"type":"ServiceEndpoint","id":"EID92c868d6-a91f-46ca-a661-a8d97ba3afc2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID859df24d-b82b-4128-a3b2-cc22a4c5bb3f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0295b212-4a2c-4722-934a-b892841340fa","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID0295b212-4a2c-4722-934a-b892841340fa"}},{"type":"Error","id":"EIDfa1ac4f7-2e5b-4aa4-b8e0-5d6e2c5ba2be","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDfa1ac4f7-2e5b-4aa4-b8e0-5d6e2c5ba2be"}},{"type":"ServiceEndpoint","id":"EID823ab470-f4fc-4101-9cb3-04b20244864b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID555af60b-d15f-46d7-99ee-93b5e2db89c0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID18703854-1f65-4dd9-be9a-f0f818399820","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID701ec4ad-5ab0-440e-8fee-0a28fc13f304","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID4030f437-9294-41f1-a356-e8bd53bbba53","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDcafe9af8-73fb-469a-b399-720b63b90b16","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID78658bd9-8f58-442f-a467-db1300cd292d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd2fd1fb5-1393-4ed5-87ce-ef25726fd3cf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID140c89a3-7dc3-41cb-90ab-610567b0e9b5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Error","id":"EID16a0c515-2494-4f3b-b998-5deed9367df7","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID16a0c515-2494-4f3b-b998-5deed9367df7"}},{"type":"Message","id":"EIDb370a515-862f-471c-8273-023f3bd977bb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDb370a515-862f-471c-8273-023f3bd977bb"}},{"type":"Message","id":"EID9d1bb8a8-d95a-4fb7-a71c-6ba9a075c5d1","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID9d1bb8a8-d95a-4fb7-a71c-6ba9a075c5d1"}},{"type":"ServiceResponse","id":"EID70f01b58-582a-469d-b931-ee925de3bd90","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID70f01b58-582a-469d-b931-ee925de3bd90"}},{"type":"Message","id":"EIDa7b7f9c0-4b2d-419f-ac2c-e03cedf44d32","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDa7b7f9c0-4b2d-419f-ac2c-e03cedf44d32"}},{"type":"GetParameter","id":"EIDeb4db861-f00c-43fa-9d3e-a59e7141c26a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Error","id":"EID2adc3419-0c2d-4957-a55f-9f870638db8c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID2adc3419-0c2d-4957-a55f-9f870638db8c"}},{"type":"ServiceResponse","id":"EID266ab1fe-eba7-4bc9-a5e3-fc8ef9c3d66a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID266ab1fe-eba7-4bc9-a5e3-fc8ef9c3d66a"}},{"type":"ServiceResponse","id":"EIDbc6fba12-013f-4dd5-8eb0-b6b582d9a214","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDbc6fba12-013f-4dd5-8eb0-b6b582d9a214"}},{"type":"GetParameter","id":"EID3afaf194-86fb-4656-a566-c9e34579a4a4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID3e0f1e45-9f24-491b-8e74-c607cf1a0813","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID3e0f1e45-9f24-491b-8e74-c607cf1a0813"}},{"type":"ServiceResponse","id":"EID80961ac1-b628-4f99-b9b3-e2c64d557955","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID80961ac1-b628-4f99-b9b3-e2c64d557955"}},{"type":"ServiceEndpoint","id":"EID32a4517a-2ebe-4039-94bd-932252a4cd10","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDef7fbd4e-e94e-4d4f-b5ca-45dac34df7b8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDef7fbd4e-e94e-4d4f-b5ca-45dac34df7b8"}},{"type":"Message","id":"EIDa567ccc6-0983-4135-a13c-c5db4d223a2f","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDa567ccc6-0983-4135-a13c-c5db4d223a2f"}},{"type":"ServiceResponse","id":"EIDa4757c20-2d48-4920-9dfb-f278f8b59516","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDa4757c20-2d48-4920-9dfb-f278f8b59516"}},{"type":"GetParameter","id":"EID2fb58d5e-3469-48b2-a8c3-0881bc676aab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID961a274c-3fb8-4ca0-b9d3-cf032452f319","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID4b4fd024-81c4-4ef8-ab68-0e01ea84a494","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDeb6f04ce-3b17-4c35-8f8b-25f6fb2c522c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDfa2ff913-12a4-422c-8ae1-2c55ab5d70c4","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDfa2ff913-12a4-422c-8ae1-2c55ab5d70c4"}},{"type":"GetParameter","id":"EIDcd153ae5-bd4e-4e94-98ab-cb5d122e4351","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID910606e4-3c61-4694-8a0d-0f3783161f01","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID910606e4-3c61-4694-8a0d-0f3783161f01"}},{"type":"GetParameter","id":"EID62c72fa4-1c78-4622-a264-c7d2374da846","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDdcb5cb8e-94ca-4d57-ac9e-d6693cd76980","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDdcb5cb8e-94ca-4d57-ac9e-d6693cd76980"}},{"type":"ServiceEndpoint","id":"EID3895d0f4-00b5-4ae4-9491-cc4ba3875129","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID8d09580e-e47e-479a-b0e3-db32abdf1be1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID8d09580e-e47e-479a-b0e3-db32abdf1be1"}},{"type":"ServiceEndpoint","id":"EID743eea24-b408-4f02-b54b-efabaa5e906e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID91e18ff7-8086-47e2-922d-93c59a9077e5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc2c34307-b549-4589-b8be-9c76a97bf867","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID02c2df25-64db-455d-a20f-074056dced01","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID02c2df25-64db-455d-a20f-074056dced01"}},{"type":"GetParameter","id":"EID27dcd268-4a3f-43cb-b78b-b86c8c3652dc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1a627511-3eca-43e3-b490-9297b867f932","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6d424729-1554-40ac-a168-a2ae8fb0acc0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID6d424729-1554-40ac-a168-a2ae8fb0acc0"}},{"type":"ServiceResponse","id":"EIDe0fce02e-e421-4b2f-b66e-895e5d066c26","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDe0fce02e-e421-4b2f-b66e-895e5d066c26"}},{"type":"Error","id":"EIDa637ef9f-2f6d-4839-b486-c790ac26665f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDa637ef9f-2f6d-4839-b486-c790ac26665f"}},{"type":"Error","id":"EIDb9435eac-e06d-4dc8-8bdb-2c3598823f93","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDb9435eac-e06d-4dc8-8bdb-2c3598823f93"}},{"type":"ServiceEndpoint","id":"EID215fa88d-43fa-4150-9e81-d6f49effceea","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf734862c-844a-47da-ab94-8e219eea7a06","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Error","id":"EID2a985607-6efe-4092-be50-4a7b432a4997","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID2a985607-6efe-4092-be50-4a7b432a4997"}},{"type":"ServiceResponse","id":"EIDaa06fe03-477c-43b0-b221-beb4332e636f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDaa06fe03-477c-43b0-b221-beb4332e636f"}},{"type":"GetParameter","id":"EIDac388227-d8d1-4b02-b68c-ab8f4a7582b2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID8f1a0caa-c5b4-45f3-9f42-e45d40535a99","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc0461eb7-d79f-4352-9531-caf9f9dec92b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDc0461eb7-d79f-4352-9531-caf9f9dec92b"}},{"type":"ServiceResponse","id":"EIDbab1fa12-9057-4c0d-b67e-b62e0fc5daf0","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDbab1fa12-9057-4c0d-b67e-b62e0fc5daf0"}},{"type":"Message","id":"EID14791756-9a12-4f55-b70b-8dddfa07943e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID14791756-9a12-4f55-b70b-8dddfa07943e"}},{"type":"ServiceResponse","id":"EIDa0ef7e19-b49b-4551-a21b-a490bf499c64","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDa0ef7e19-b49b-4551-a21b-a490bf499c64"}},{"type":"GetParameter","id":"EIDfee52f71-0f64-4be8-a3dc-9af5043166fc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID19273994-ecd2-42ae-86ca-f4d9a644b374","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID19273994-ecd2-42ae-86ca-f4d9a644b374"}},{"type":"Message","id":"EIDcfa10e12-b474-4cd7-9580-c38fe9dd947d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDcfa10e12-b474-4cd7-9580-c38fe9dd947d"}},{"type":"ServiceEndpoint","id":"EID1ac23234-6ff7-45fe-b503-884a415b146a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID47fcd249-8bd5-4e59-9e5c-f755edbe151c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID658a0a9e-a907-442c-bd27-4521f203d441","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID658a0a9e-a907-442c-bd27-4521f203d441"}},{"type":"GetParameter","id":"EIDe2be9dcd-a772-41d5-977d-024b42dac9d2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDe2ab73f5-1f63-4073-b37f-f3a71c5c8ef6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDe2ab73f5-1f63-4073-b37f-f3a71c5c8ef6"}},{"type":"ServiceResponse","id":"EIDbb303e8b-804e-4c4f-97f4-f31c66dc9325","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDbb303e8b-804e-4c4f-97f4-f31c66dc9325"}},{"type":"GetParameter","id":"EID782b92af-c90c-4abe-ab39-611167e3934c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID9f384e4d-7463-4cbf-8be6-3bead02e2802","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID9f384e4d-7463-4cbf-8be6-3bead02e2802"}},{"type":"Message","id":"EID1a88b553-8c62-4a0c-b697-854d5fe57c7f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID1a88b553-8c62-4a0c-b697-854d5fe57c7f"}},{"type":"ServiceEndpoint","id":"EID37ba3243-5c5f-4ef6-99a9-660b285f0b75","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDad17f911-5a67-457a-8bc2-f89c6f025264","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa95bca3f-9d1c-4ab3-88a9-512ceb67c3db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EID6d18a340-f43c-4130-bbfb-3d9afde2518f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID6325f624-1367-4965-a74a-b0c07ec21570","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID6325f624-1367-4965-a74a-b0c07ec21570"}},{"type":"ServiceResponse","id":"EID8fdc6ffb-11c1-4e35-86f9-a2d43d4b1562","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID8fdc6ffb-11c1-4e35-86f9-a2d43d4b1562"}},{"type":"ServiceResponse","id":"EID1fca3f8c-737d-460e-b1f5-619f7ba94f6f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID1fca3f8c-737d-460e-b1f5-619f7ba94f6f"}},{"type":"Message","id":"EID43cdb495-bf5d-4194-83e5-107190876353","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID43cdb495-bf5d-4194-83e5-107190876353"}},{"type":"Error","id":"EIDbe386912-aac2-4407-bd6d-76680368cf16","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDbe386912-aac2-4407-bd6d-76680368cf16"}},{"type":"Message","id":"EID17a3208b-c449-44a0-8a9a-c15dcb9391a3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID17a3208b-c449-44a0-8a9a-c15dcb9391a3"}},{"type":"GetParameter","id":"EID0aaa6ca0-1200-4ac4-8ee0-76a9eed8c9e6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0e260ccd-48b4-4061-8145-e896d7745241","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID0e260ccd-48b4-4061-8145-e896d7745241"}},{"type":"Error","id":"EIDb9eab29c-16aa-4e7c-91de-eaa920372e60","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDb9eab29c-16aa-4e7c-91de-eaa920372e60"}},{"type":"Message","id":"EIDf175083f-026d-42a2-ad0a-f46dc9037b19","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDf175083f-026d-42a2-ad0a-f46dc9037b19"}},{"type":"GetParameter","id":"EIDeaafe1f2-3672-486e-b4c5-d0bea434c521","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDe55f6090-ffed-4511-847e-58ca774ed792","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EIDe55f6090-ffed-4511-847e-58ca774ed792"}},{"type":"GetParameter","id":"EID0ccb3f56-849c-4f44-9148-8ef197669570","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID8dc434c2-04cc-40ff-80cb-75921d248ed6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID8dc434c2-04cc-40ff-80cb-75921d248ed6"}},{"type":"ServiceResponse","id":"EID847a6c4f-f90e-4aaa-9671-038ad7266121","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID847a6c4f-f90e-4aaa-9671-038ad7266121"}},{"type":"GetParameter","id":"EID938aa210-2ec8-43b8-9a5a-b7e37de49005","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0b3ef28a-63f2-4d2b-9954-7c3d4beae942","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID4335695d-675c-4f9a-b52c-ade8c28f9fd0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID4335695d-675c-4f9a-b52c-ade8c28f9fd0"}},{"type":"ServiceEndpoint","id":"EID3a2cb4c0-48c0-455e-95f0-a697ceed1ba8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID69579b05-ccbb-4569-a2b2-a0841ab4f66a","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID8b70bc7c-83b1-4b3e-b336-f9bc98f93f2b/Attachments/EID69579b05-ccbb-4569-a2b2-a0841ab4f66a"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:06:43Z","duration":9998,"status":"FAILED"}}}}}
11:07:01.560 [print] EIDcc34ea27-265e-49a1-91f7-abac50e9b010
11:07:01.561 [print] FAILED
11:07:01.561 [print] FAILED
11:07:01.561 [print] Conformance Class Download Service - Pre-defined Atom
11:07:01.561 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/cc34ea27-265e-49a1-91f7-abac50e9b010.json
11:07:01.561 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/cc34ea27-265e-49a1-91f7-abac50e9b010.json
11:07:01.561 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDcc34ea27-265e-49a1-91f7-abac50e9b010/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:07:01.586 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:07:01.586 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:10:43.472 [print] testing url:https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs?
11:10:43.473 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs? 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:43.871 response time in milliseconds: 398.04 1 < 400 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:43 GMT 1 < X-Cnection: [close, close]
11:10:43.871 status code was: 400, expected: 200, response time: 398, url: https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs?, response:
11:10:43.876 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs? 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:44.286 response time in milliseconds: 408.95 1 < 400 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:10:43 GMT 1 < X-Cnection: [close, close]
11:10:44.290 status code was: 400, expected: 200, response time: 409, url: https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs?, response:
11:11:01.373 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn/wfs?request=GetCapabilities
11:11:01.373 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:01.768 response time in milliseconds: 394.42 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:11:01 GMT 1 < ETag: "18e6e-5af58ad5256ff-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:11:01.777 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:11:02.178 response time in milliseconds: 401.27 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:11:02 GMT 1 < ETag: "18e6e-5af58ad5256ff-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:11:02.180 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:12:12.970 [print] testing url:https://geodata.nationaalgeoregister.nl/cbsvierkanten500mv2/wfs?request=GetCapabilities
11:12:12.973 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/cbsvierkanten500mv2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:13.394 response time in milliseconds: 420.89 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:13 GMT 1 < X-Cnection: [close, close]
11:12:13.419 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/cbsvierkanten500mv2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:13.852 response time in milliseconds: 432.23 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:13 GMT 1 < X-Cnection: [close, close]
11:12:13.852 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:17.514 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/su-grid/wfs?request=GetCapabilities"}}}
11:13:17.515 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 282
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/su-grid/wfs?request=GetCapabilities"}}}
11:13:19.197 response time in milliseconds: 1576.88
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:19 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883599024","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:19.204 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:51.503 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn-a/wfs?request=GetCapabilities
11:16:51.504 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-a/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:51.922 response time in milliseconds: 418.17 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:51 GMT 1 < ETag: "19a18-5af58a652f9d5-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:51.928 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-a/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:52.320 response time in milliseconds: 391.46 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:52 GMT 1 < ETag: "19a18-5af58ad529196-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:16:52.322 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:16:35.017 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml
11:16:35.017 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:35.418 response time in milliseconds: 401.11 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4277 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:35 GMT 1 < Etag: "5c262b5c1b0f1bdc5a11f94b82d3a6c1-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:12:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223D06C5F03E6 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:16:35.423 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:35.816 response time in milliseconds: 392.52 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4277 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:35 GMT 1 < Etag: "5c262b5c1b0f1bdc5a11f94b82d3a6c1-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:12:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223D084863208 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:57.325 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:09:57.326 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:10:28.040 response time in milliseconds: 29986.75
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:27 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:10:11 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/79694b8d-d89e-4ab6-b867-eaa5799017ee.json","testRuns":{"TestRun":{"id":"EID79694b8d-d89e-4ab6-b867-eaa5799017ee","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:08.551Z","testTasks":{"TestTask":{"id":"EIDf40d70f0-5d7a-4630-8ed4-5d40af02a8c6","parent":{"ref":"EID79694b8d-d89e-4ab6-b867-eaa5799017ee"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID0f96ec4d-e691-4b70-8972-702363fa76cc"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID0f96ec4d-e691-4b70-8972-702363fa76cc","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:57.774Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:05.877Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:10:28.044 [print] EID79694b8d-d89e-4ab6-b867-eaa5799017ee
11:10:28.045 [print] UNDEFINED
11:10:28.045 [print] Conformance Class Download Service - Pre-defined Atom
11:10:28.045 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/79694b8d-d89e-4ab6-b867-eaa5799017ee.json
11:10:28.045 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/log
11:10:28.046 [print] statuspath TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee
11:10:28.046 [print] progresspath TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/progress
11:10:28.049 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:28.563 response time in milliseconds: 513.75
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:10:28 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:10:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:08 UTC 2020)","28.10.2020 11:10:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:08 - Preparing 1 Test Task:","28.10.2020 11:10:08 - TestTask 1 (f40d70f0-5d7a-4630-8ed4-5d40af02a8c6)","28.10.2020 11:10:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:08 - with parameters: ","28.10.2020 11:10:08 - etf.testcases = *","28.10.2020 11:10:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:08 - Setting state to CREATED","28.10.2020 11:10:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.79694b8d-d89e-4ab6-b867-eaa5799017ee at 2020-10-28T11:10:12Z","28.10.2020 11:10:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:12 - Project Properties: ","28.10.2020 11:10:12 - etf.testcases - * ","28.10.2020 11:10:12 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:10:12 - username - ","28.10.2020 11:10:12 - authUser - ","28.10.2020 11:10:12 - authMethod - basic ","28.10.2020 11:10:12 - TestRunTask initialized","28.10.2020 11:10:16 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:10:16 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:18 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:19 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:22 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:10:28.563 [print] {
"val": "148",
"max": "149",
"log": [
"28.10.2020 11:10:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:08 UTC 2020)",
"28.10.2020 11:10:08 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:10:08 - Preparing 1 Test Task:",
"28.10.2020 11:10:08 - TestTask 1 (f40d70f0-5d7a-4630-8ed4-5d40af02a8c6)",
"28.10.2020 11:10:08 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:10:08 - with parameters: ",
"28.10.2020 11:10:08 - etf.testcases = *",
"28.10.2020 11:10:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:10:08 - Setting state to CREATED",
"28.10.2020 11:10:08 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:10:11 - Starting TestRun.79694b8d-d89e-4ab6-b867-eaa5799017ee at 2020-10-28T11:10:12Z",
"28.10.2020 11:10:12 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:10:12 - Project Properties: ",
"28.10.2020 11:10:12 - etf.testcases - * ",
"28.10.2020 11:10:12 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:10:12 - username - ",
"28.10.2020 11:10:12 - authUser - ",
"28.10.2020 11:10:12 - authMethod - basic ",
"28.10.2020 11:10:12 - TestRunTask initialized",
"28.10.2020 11:10:16 ERROR Response status code:500 is not in acceptable list of status codes",
"28.10.2020 11:10:16 ERROR Assertion failed with error 'TR.unexpectedHtml'",
"28.10.2020 11:10:18 ERROR Assertion failed with error 'TR.unexpectedHtml'",
"28.10.2020 11:10:19 ERROR Assertion failed with error 'TR.uniqueDatasetIdentifiers'",
"28.10.2020 11:10:20 ERROR Assertion failed with error 'TR.missingLinkToMetadataRecordForDownloadService'",
"28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:20 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:10:20 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingOneFeedEntryWithDlFile'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingFeedUpdatedInformation'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingLinkToRegistry'",
"28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:21 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:10:22 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:23 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:10:23 ERROR Assertion failed with error 'TR.missingFeedRootElement'"
]
}
11:10:28.564 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:29.077 response time in milliseconds: 512.44
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:10:29 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:10:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:08 UTC 2020)","28.10.2020 11:10:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:08 - Preparing 1 Test Task:","28.10.2020 11:10:08 - TestTask 1 (f40d70f0-5d7a-4630-8ed4-5d40af02a8c6)","28.10.2020 11:10:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:08 - with parameters: ","28.10.2020 11:10:08 - etf.testcases = *","28.10.2020 11:10:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:08 - Setting state to CREATED","28.10.2020 11:10:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.79694b8d-d89e-4ab6-b867-eaa5799017ee at 2020-10-28T11:10:12Z","28.10.2020 11:10:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:12 - Project Properties: ","28.10.2020 11:10:12 - etf.testcases - * ","28.10.2020 11:10:12 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:10:12 - username - ","28.10.2020 11:10:12 - authUser - ","28.10.2020 11:10:12 - authMethod - basic ","28.10.2020 11:10:12 - TestRunTask initialized","28.10.2020 11:10:16 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:10:16 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:18 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:19 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:22 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:10:29.077 retry condition not satisfied: response.val == response.max
11:10:29.077 sleeping before retry #1
11:10:34.078 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:34.598 response time in milliseconds: 519.28
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:10:34 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:10:08 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:08 UTC 2020)","28.10.2020 11:10:08 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:08 - Preparing 1 Test Task:","28.10.2020 11:10:08 - TestTask 1 (f40d70f0-5d7a-4630-8ed4-5d40af02a8c6)","28.10.2020 11:10:08 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:08 - with parameters: ","28.10.2020 11:10:08 - etf.testcases = *","28.10.2020 11:10:08 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:08 - Setting state to CREATED","28.10.2020 11:10:08 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:11 - Starting TestRun.79694b8d-d89e-4ab6-b867-eaa5799017ee at 2020-10-28T11:10:12Z","28.10.2020 11:10:12 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:12 - Project Properties: ","28.10.2020 11:10:12 - etf.testcases - * ","28.10.2020 11:10:12 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:10:12 - username - ","28.10.2020 11:10:12 - authUser - ","28.10.2020 11:10:12 - authMethod - basic ","28.10.2020 11:10:12 - TestRunTask initialized","28.10.2020 11:10:16 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:10:16 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:18 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:10:19 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:20 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:10:21 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:21 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:22 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:10:23 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:10:23 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:10:34.598 retry condition not satisfied: response.val == response.max
11:10:34.598 sleeping before retry #2
11:10:39.599 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:40.125 response time in milliseconds: 525.47
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:10:40 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:10:40.125 retry condition satisfied
11:10:40.125 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:10:40.126 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:53.963 response time in milliseconds: 12868.33
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:10:52 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:10:37 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/79694b8d-d89e-4ab6-b867-eaa5799017ee.json","testRuns":{"TestRun":{"id":"EID79694b8d-d89e-4ab6-b867-eaa5799017ee","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:08.551Z","testTasks":{"TestTask":{"id":"EIDf40d70f0-5d7a-4630-8ed4-5d40af02a8c6","parent":{"ref":"EID79694b8d-d89e-4ab6-b867-eaa5799017ee"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID0f96ec4d-e691-4b70-8972-702363fa76cc"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID25b017db-1c8c-4a2d-975b-464e8abba882"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID0f96ec4d-e691-4b70-8972-702363fa76cc","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:09:57.774Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:05.877Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID25b017db-1c8c-4a2d-975b-464e8abba882","testObject":{"ref":"EID0f96ec4d-e691-4b70-8972-702363fa76cc"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee6ad0d-0175-1000-e92d-3b97d892afdf","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6ad0d-0175-1000-3429-d3a61b8b655a","testStepResults":{"TestStepResult":[{"id":"EID6ee6ad0e-0175-1000-c20b-02d4617120e2","parent":{"ref":"EID6ee6ad0d-0175-1000-3429-d3a61b8b655a"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:10:12Z","duration":33,"status":"PASSED"},{"id":"EID6ee6ad30-0175-1000-8731-97dee4d1d80b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ae9d-0175-1000-48f7-c6d8fe423d89","parent":{"ref":"EID6ee6ad30-0175-1000-8731-97dee4d1d80b"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae9e-0175-1000-97a1-093ac9a94b47","parent":{"ref":"EID6ee6ad30-0175-1000-8731-97dee4d1d80b"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae9e-0175-1000-8459-ca2cc24cf6ce","parent":{"ref":"EID6ee6ad30-0175-1000-8731-97dee4d1d80b"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ae9e-0175-1000-c10c-10397d9feded","parent":{"ref":"EID6ee6ad30-0175-1000-8731-97dee4d1d80b"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDee3c1803-2ce8-4c92-8564-aa8e36da91b9"},{"ref":"EIDdad7b2ef-eea8-43f0-8868-d7cd96ee3a66"},{"ref":"EIDd3d5be19-4b16-4cf6-b705-77c0c9dd3ec4"}]},"parent":{"ref":"EID6ee6ad0d-0175-1000-3429-d3a61b8b655a"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:10:12Z","duration":184,"status":"PASSED"}]},"parent":{"ref":"EID6ee6ad0d-0175-1000-e92d-3b97d892afdf"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:10:12Z","duration":401,"status":"PASSED"},{"id":"EID6ee6aea1-0175-1000-b2d5-ddc0ce6ebcfb","testStepResults":{"TestStepResult":{"id":"EID6ee6aea1-0175-1000-3957-63e2cd2f1539","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6afaf-0175-1000-6f1e-efbd9f6f6114","parent":{"ref":"EID6ee6aea1-0175-1000-3957-63e2cd2f1539"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6afaf-0175-1000-35ed-c03020713d58","parent":{"ref":"EID6ee6aea1-0175-1000-3957-63e2cd2f1539"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6afaf-0175-1000-bc69-42840e2d1994","parent":{"ref":"EID6ee6aea1-0175-1000-3957-63e2cd2f1539"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaee85f80-0004-4eea-b728-5b1f0ff9c6cc"},{"ref":"EID317752a3-bb1b-42e9-886e-58c34e67bfd2"},{"ref":"EID16dd7660-2168-4e99-ae78-8f0ff85178f4"}]},"parent":{"ref":"EID6ee6aea1-0175-1000-b2d5-ddc0ce6ebcfb"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:10:13Z","duration":88,"status":"PASSED"}},"parent":{"ref":"EID6ee6ad0d-0175-1000-e92d-3b97d892afdf"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:10:13Z","duration":270,"status":"PASSED"}]},"parent":{"ref":"EID25b017db-1c8c-4a2d-975b-464e8abba882"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:10:12Z","duration":674,"status":"PASSED"},{"id":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6afb0-0175-1000-ec2b-8fee23379e5c","testStepResults":{"TestStepResult":[{"id":"EID6ee6afb0-0175-1000-a0e3-554ff6850fb7","parent":{"ref":"EID6ee6afb0-0175-1000-ec2b-8fee23379e5c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:10:13Z","duration":88,"status":"PASSED"},{"id":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b07a-0175-1000-4cc5-bfbbfdb29bbc","parent":{"ref":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b07a-0175-1000-a7e0-00e9b5969dc3","parent":{"ref":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b07a-0175-1000-1b79-d687d6409608","parent":{"ref":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b07b-0175-1000-926d-26840334203d","parent":{"ref":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b07b-0175-1000-6dc7-d8edf687c9e9","parent":{"ref":"EID6ee6afb0-0175-1000-37b8-9cdaed6c8fe8"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:10:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbdb32183-f335-49c1-a7cb-7fd8433ac38a"},{"ref":"EIDdd4d8b3f-313c-469f-8335-5f5b929c2237"},{"ref":"EIDc46a602e-1d38-4927-b945-04e124db708a"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-ec2b-8fee23379e5c"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:10:13Z","duration":49,"status":"PASSED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:10:13Z","duration":203,"status":"PASSED"},{"id":"EID6ee6b07b-0175-1000-ed47-c71db7a1195a","testStepResults":{"TestStepResult":[{"id":"EID6ee6b07c-0175-1000-acc2-ecadd724c75b","attachments":{"attachment":[{"ref":"EID96064ab0-c858-4b14-8b1f-6e767e8ce0ac"},{"ref":"EID71b57d79-d97a-4f2b-a8d0-6400a659b78a"}]},"parent":{"ref":"EID6ee6b07b-0175-1000-ed47-c71db7a1195a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:10:13Z","duration":182,"status":"PASSED"},{"id":"EID6ee6b181-0175-1000-d969-67bf082bd10c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b31b-0175-1000-60d6-58347705fc52","parent":{"ref":"EID6ee6b181-0175-1000-d969-67bf082bd10c"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b31b-0175-1000-b90f-99bfc45a80a5","parent":{"ref":"EID6ee6b181-0175-1000-d969-67bf082bd10c"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b31b-0175-1000-5c69-baf8c2318f56","parent":{"ref":"EID6ee6b181-0175-1000-d969-67bf082bd10c"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b31b-0175-1000-8ccb-03d23f1bc186","parent":{"ref":"EID6ee6b181-0175-1000-d969-67bf082bd10c"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd82bca6f-e1a8-4316-81a7-0d2234d9d6e3"},{"ref":"EIDc27ffbb4-79d1-4488-b62e-00e2380faf5b"},{"ref":"EIDbee807fb-ac19-460d-9123-c54a6a79208a"}]},"parent":{"ref":"EID6ee6b07b-0175-1000-ed47-c71db7a1195a"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:10:13Z","duration":111,"status":"PASSED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:10:13Z","duration":672,"status":"PASSED"},{"id":"EID6ee6b31b-0175-1000-aee5-e8292e75cf55","testStepResults":{"TestStepResult":[{"id":"EID6ee6b31b-0175-1000-1e87-77457702b31c","attachments":{"attachment":[{"ref":"EIDdf8523d5-592d-49f2-a293-119dbe19b339"},{"ref":"EID1835506f-b02a-4e79-9b90-cf9655102dce"}]},"parent":{"ref":"EID6ee6b31b-0175-1000-aee5-e8292e75cf55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:10:14Z","duration":115,"status":"PASSED"},{"id":"EID6ee6b3b8-0175-1000-655a-478561104cb4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b4de-0175-1000-20a9-9587064b0c0d","parent":{"ref":"EID6ee6b3b8-0175-1000-655a-478561104cb4"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4de-0175-1000-579c-e089cc84efa6","parent":{"ref":"EID6ee6b3b8-0175-1000-655a-478561104cb4"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4de-0175-1000-0e22-c9e9b6708aad","parent":{"ref":"EID6ee6b3b8-0175-1000-655a-478561104cb4"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4de-0175-1000-51bd-73d2df9f9fc1","parent":{"ref":"EID6ee6b3b8-0175-1000-655a-478561104cb4"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b4de-0175-1000-7f24-9ba8bfe878b6","parent":{"ref":"EID6ee6b3b8-0175-1000-655a-478561104cb4"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:10:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0f73d0e5-01e4-4dce-a3bd-6c8eb2da4af7"},{"ref":"EIDa688b9f0-7144-4a49-a461-c4806ab06804"},{"ref":"EID43659396-7e47-4225-9706-d3d1b812e8d1"}]},"parent":{"ref":"EID6ee6b31b-0175-1000-aee5-e8292e75cf55"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:10:14Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:10:14Z","duration":452,"status":"PASSED"},{"id":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce","testStepResults":{"TestStepResult":[{"id":"EID6ee6b4df-0175-1000-4928-9c2c2c433638","attachments":{"attachment":[{"ref":"EIDa61519e7-f336-4e22-8730-306d08756538"},{"ref":"EIDdce576ea-42cf-478e-992e-c05320d5fef8"}]},"parent":{"ref":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:10:14Z","duration":200,"status":"PASSED"},{"id":"EID6ee6b5e4-0175-1000-804b-85458cba88e0","parent":{"ref":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b5e4-0175-1000-2092-758a1ae6ffce","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b6b1-0175-1000-58f4-5e3fae4eb3a7","parent":{"ref":"EID6ee6b5e4-0175-1000-2092-758a1ae6ffce"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b6b1-0175-1000-5285-dd4fddf46412","parent":{"ref":"EID6ee6b5e4-0175-1000-2092-758a1ae6ffce"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b6b1-0175-1000-d137-3da64854d705","parent":{"ref":"EID6ee6b5e4-0175-1000-2092-758a1ae6ffce"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b6b1-0175-1000-56e2-6f7fc8f81c52","parent":{"ref":"EID6ee6b5e4-0175-1000-2092-758a1ae6ffce"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4daa1f86-8b02-4bac-a6ee-20c444b55b63"},{"ref":"EID55c9aac5-8915-4f19-a75c-b68e3b946ee5"},{"ref":"EID6ebf4941-f40b-4d21-8fe0-044a26c5dc3a"}]},"parent":{"ref":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:10:15Z","duration":52,"status":"PASSED"},{"id":"EID6ee6b6b1-0175-1000-a434-c944be757ce2","attachments":{"attachment":{"ref":"EID5e347b8c-14dc-42c2-a15c-a2b54f422a7a"}},"parent":{"ref":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":2,"status":"PASSED"},{"id":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b789-0175-1000-ff33-83a0d646e63c","parent":{"ref":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b789-0175-1000-3983-df63d98dee75","parent":{"ref":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b789-0175-1000-17f8-39170231db81","parent":{"ref":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b789-0175-1000-aae3-ec1c63402c48","parent":{"ref":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b789-0175-1000-7755-9b451e62ae20","parent":{"ref":"EID6ee6b6c9-0175-1000-78f3-b5dbd5153c83"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcf4ab4d0-77a7-4028-aeb6-d42bb28e7bd1"},{"ref":"EID6e74e409-f5a7-4e81-9520-9bbac6df0305"},{"ref":"EIDa289910d-c994-4c8d-8b47-c7fdbe909d6c"}]},"parent":{"ref":"EID6ee6b4df-0175-1000-6446-46bb5b3050ce"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:10:15Z","duration":31,"status":"PASSED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:10:14Z","duration":682,"status":"PASSED"},{"id":"EID6ee6b789-0175-1000-3764-5111450f2e1e","testStepResults":{"TestStepResult":[{"id":"EID6ee6b789-0175-1000-688f-aea97dd03f5d","attachments":{"attachment":[{"ref":"EIDae05c67b-6afe-4bc6-8181-4a26cb425636"},{"ref":"EID75f0de1e-c0ec-4d8c-8ef2-6e74aad4b873"}]},"parent":{"ref":"EID6ee6b789-0175-1000-3764-5111450f2e1e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":156,"status":"PASSED"},{"id":"EID6ee6b86f-0175-1000-a0e5-589dd5897f11","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6b96a-0175-1000-58d5-ee881bac2064","parent":{"ref":"EID6ee6b86f-0175-1000-a0e5-589dd5897f11"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b96a-0175-1000-b4d6-c2eaaea6ed67","parent":{"ref":"EID6ee6b86f-0175-1000-a0e5-589dd5897f11"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b96a-0175-1000-a8e1-4b104f2c1fa1","parent":{"ref":"EID6ee6b86f-0175-1000-a0e5-589dd5897f11"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee6b96a-0175-1000-0f72-6ab65a78ca04","parent":{"ref":"EID6ee6b86f-0175-1000-a0e5-589dd5897f11"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:10:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0813b6d3-c08e-4928-a73c-eb49cea6b106"},{"ref":"EIDe9045e75-497a-4a91-a679-50d333648834"},{"ref":"EIDf04755ff-1f38-4531-85d5-e6a15ab2131f"}]},"parent":{"ref":"EID6ee6b789-0175-1000-3764-5111450f2e1e"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:10:15Z","duration":108,"status":"PASSED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:10:15Z","duration":481,"status":"PASSED"},{"id":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e","testStepResults":{"TestStepResult":[{"id":"EID6ee6b96a-0175-1000-4375-f255065a2b1f","attachments":{"attachment":[{"ref":"EIDc737b51a-d062-4170-b048-7b21e31121a8"},{"ref":"EID2c386c07-bff7-4c93-9c4a-4ed43b06b748"}]},"parent":{"ref":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:10:15Z","duration":205,"status":"PASSED"},{"id":"EID6ee6ba6a-0175-1000-bd36-b006f042114d","parent":{"ref":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ba6a-0175-1000-fd5b-bcfb74d52638","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6bb66-0175-1000-856d-502a892b1437","parent":{"ref":"EID6ee6ba6a-0175-1000-fd5b-bcfb74d52638"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bb66-0175-1000-f253-b838804d3549","parent":{"ref":"EID6ee6ba6a-0175-1000-fd5b-bcfb74d52638"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bb66-0175-1000-c846-f06c487e2db4","parent":{"ref":"EID6ee6ba6a-0175-1000-fd5b-bcfb74d52638"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bb66-0175-1000-1040-b9c794ce3b3b","parent":{"ref":"EID6ee6ba6a-0175-1000-fd5b-bcfb74d52638"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6972b1c1-0ef0-46fc-8a85-77a1bc823fdb"},{"ref":"EID7b9cbe21-6a3a-4381-8dae-2786a7eea46e"},{"ref":"EIDfbb8ca8d-9522-4003-9bc1-c9bbfa250c09"}]},"parent":{"ref":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:10:16Z","duration":100,"status":"PASSED"},{"id":"EID6ee6bb66-0175-1000-1a7f-dc68b3140e0c","attachments":{"attachment":{"ref":"EIDcca1aaab-3fa9-44e8-b81f-e53c380c5671"}},"parent":{"ref":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:10:16Z","duration":2,"status":"PASSED"},{"id":"EID6ee6bb73-0175-1000-ed07-75854962db9b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6bce6-0175-1000-a85e-10c0ea00c8fe","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6bb73-0175-1000-ed07-75854962db9b"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:10:16Z","duration":11,"status":"FAILED"},{"id":"EID6ee6bcf1-0175-1000-9cc8-4fbc584c198d","parent":{"ref":"EID6ee6bb73-0175-1000-ed07-75854962db9b"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bcf1-0175-1000-ff1f-20fbd1198fd0","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee6bb73-0175-1000-ed07-75854962db9b"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:10:16Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf5907d73-391e-46b8-8dfe-7b68a60199f2"},{"ref":"EID80c5d6e6-5190-4546-bbee-582b42043ff3"},{"ref":"EIDe6431b12-aeb2-440f-89e6-09e74606cc34"}]},"parent":{"ref":"EID6ee6b96a-0175-1000-a3f1-65bfddced74e"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:10:16Z","duration":293,"status":"FAILED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:10:15Z","duration":903,"status":"FAILED"},{"id":"EID6ee6bcf1-0175-1000-206d-8fa87c9f7200","testStepResults":{"TestStepResult":[{"id":"EID6ee6bcf1-0175-1000-b4c4-17ab855378a7","attachments":{"attachment":[{"ref":"EID0306b981-fd3d-4576-9d53-3aef0d67c407"},{"ref":"EID0c052eb0-165d-4c37-8565-efc7840f96dc"}]},"parent":{"ref":"EID6ee6bcf1-0175-1000-206d-8fa87c9f7200"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:10:16Z","duration":166,"status":"PASSED"},{"id":"EID6ee6bdca-0175-1000-8c8b-b639826fe523","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6beb2-0175-1000-76f8-b4ceb376e718","parent":{"ref":"EID6ee6bdca-0175-1000-8c8b-b639826fe523"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6beb2-0175-1000-e429-fd191ff9a316","parent":{"ref":"EID6ee6bdca-0175-1000-8c8b-b639826fe523"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6beb2-0175-1000-0dc5-ae76b34869fe","parent":{"ref":"EID6ee6bdca-0175-1000-8c8b-b639826fe523"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6beb2-0175-1000-b7e5-41e9f18f4fe5","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6bdca-0175-1000-8c8b-b639826fe523"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID9093344f-00bd-435a-baf6-3be8496c4b66"},{"ref":"EID6e4d0a94-1696-42ea-96f1-eb4bdb3c80b9"},{"ref":"EID6381e6e9-95b3-4777-a522-a720106262ee"}]},"parent":{"ref":"EID6ee6bcf1-0175-1000-206d-8fa87c9f7200"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:10:17Z","duration":57,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:10:16Z","duration":450,"status":"PASSED_MANUAL"},{"id":"EID6ee6beb3-0175-1000-0793-d7ac2c01228d","testStepResults":{"TestStepResult":{"id":"EID6ee6beb3-0175-1000-b83f-e1d15a8312b1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6bf7b-0175-1000-fc00-5190b1fe08a7","parent":{"ref":"EID6ee6beb3-0175-1000-b83f-e1d15a8312b1"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bf7b-0175-1000-2615-4935ba34e42f","parent":{"ref":"EID6ee6beb3-0175-1000-b83f-e1d15a8312b1"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bf7b-0175-1000-e860-2ac4142ea06e","parent":{"ref":"EID6ee6beb3-0175-1000-b83f-e1d15a8312b1"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6bf7b-0175-1000-fe50-3bcaa912d056","parent":{"ref":"EID6ee6beb3-0175-1000-b83f-e1d15a8312b1"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID832d9056-9152-43f5-89b0-ab1af5ccb75e"},{"ref":"EIDf8607571-0611-4121-a6f4-1f8e4d7090f6"},{"ref":"EID3f064c1e-09e5-4160-903a-bf1c963baf4c"}]},"parent":{"ref":"EID6ee6beb3-0175-1000-0793-d7ac2c01228d"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:10:17Z","duration":97,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:10:17Z","duration":200,"status":"PASSED"},{"id":"EID6ee6bf7b-0175-1000-0dd4-11099740f519","testStepResults":{"TestStepResult":{"id":"EID6ee6bf7b-0175-1000-c26f-18ce14ef1f54","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c021-0175-1000-c3b2-f92bde11ed0b","parent":{"ref":"EID6ee6bf7b-0175-1000-c26f-18ce14ef1f54"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c021-0175-1000-3651-9f8a91db99c1","parent":{"ref":"EID6ee6bf7b-0175-1000-c26f-18ce14ef1f54"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c021-0175-1000-dc1c-e11ac7c64b21","parent":{"ref":"EID6ee6bf7b-0175-1000-c26f-18ce14ef1f54"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c021-0175-1000-797f-f823fbf85c16","parent":{"ref":"EID6ee6bf7b-0175-1000-c26f-18ce14ef1f54"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:10:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcca5b888-4259-4166-aadd-6b517373c82c"},{"ref":"EID00ff4bdf-f8bf-43df-aef5-6edad22ea4b4"},{"ref":"EIDa893051b-d569-482d-bbbc-a15857fcc6d7"}]},"parent":{"ref":"EID6ee6bf7b-0175-1000-0dd4-11099740f519"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:10:17Z","duration":36,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:10:17Z","duration":166,"status":"PASSED"},{"id":"EID6ee6c021-0175-1000-e1f5-1059bd61f14b","testStepResults":{"TestStepResult":{"id":"EID6ee6c021-0175-1000-aed3-04943a97ed60","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID2a7cd215-a5b7-43ad-ab7f-290ed31ec6e4"},{"ref":"EIDcfa62734-0b55-4626-b336-eb9ece019c96"},{"ref":"EIDfcbd199a-3a1f-4f95-a38a-a0937e4ed890"},{"ref":"EID42efd07a-e6fd-40c5-9b9a-ce913fc69d7a"},{"ref":"EIDb5c0c208-16f4-4b1e-9dfd-9c10095a6af0"},{"ref":"EID11542187-2602-4977-8e1f-9e6f1e954e3e"},{"ref":"EIDf834874a-1e41-4a13-b68b-ece2b67e29d6"},{"ref":"EID8de072b1-c3ea-4293-9077-0344be43625d"},{"ref":"EIDe2b554e2-bc8d-4616-911c-17839feb7d91"}]},"parent":{"ref":"EID6ee6c021-0175-1000-e1f5-1059bd61f14b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:10:17Z","duration":596,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:10:17Z","duration":719,"status":"SKIPPED"},{"id":"EID6ee6c2f0-0175-1000-a195-7a9c37f8385e","testStepResults":{"TestStepResult":{"id":"EID6ee6c2f0-0175-1000-5d62-3df12d018d30","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c3a9-0175-1000-fe83-28ac3ee97127","parent":{"ref":"EID6ee6c2f0-0175-1000-5d62-3df12d018d30"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c3a9-0175-1000-c91b-a1f15035ecd5","parent":{"ref":"EID6ee6c2f0-0175-1000-5d62-3df12d018d30"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c3a9-0175-1000-1a85-cb8c184ee2c2","parent":{"ref":"EID6ee6c2f0-0175-1000-5d62-3df12d018d30"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c3a9-0175-1000-64ae-74adc2a9c7cc","parent":{"ref":"EID6ee6c2f0-0175-1000-5d62-3df12d018d30"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0ec97693-9c11-46ed-b863-28617d0e415c"},{"ref":"EID525e4ee6-331e-41c0-9194-1a4e882f3a84"},{"ref":"EID49b6ab9b-fdee-490f-af2c-0bb247c10f9a"}]},"parent":{"ref":"EID6ee6c2f0-0175-1000-a195-7a9c37f8385e"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:10:18Z","duration":79,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:10:18Z","duration":185,"status":"PASSED"},{"id":"EID6ee6c3a9-0175-1000-b402-dde0d5f7da2c","testStepResults":{"TestStepResult":{"id":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c4cb-0175-1000-749e-f78e146f9f17","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c4cb-0175-1000-93bc-8f1bc06c9e0d","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c4cb-0175-1000-a42e-379c80ad61fd","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c4cb-0175-1000-ee53-3a5b2ee7a4d2","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c4cb-0175-1000-7126-e866398c7778","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c4cb-0175-1000-e427-2cbcbb114987","parent":{"ref":"EID6ee6c3a9-0175-1000-e9b9-daace22d0f77"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID04d73f82-2973-4fc0-a2ff-0e4d94b36c0f"},{"ref":"EIDcff3971b-ab3d-4c34-8218-bd04026cea1f"},{"ref":"EID62814f09-6520-4970-9b60-fc01634c8441"}]},"parent":{"ref":"EID6ee6c3a9-0175-1000-b402-dde0d5f7da2c"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:10:18Z","duration":134,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:10:18Z","duration":291,"status":"PASSED"},{"id":"EID6ee6c4cc-0175-1000-3d57-c1ea253c74cf","testStepResults":{"TestStepResult":{"id":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c56d-0175-1000-3dd5-6e7eedbe01d3","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-0ac2-ee583ee4a5c2","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-4629-35b1b37a73ec","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-37f8-c261efa25ddc","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-f304-f1681f51866e","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-507b-da78b447faba","parent":{"ref":"EID6ee6c4cc-0175-1000-89c7-818de1ea2722"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:10:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID15cee3ba-dd40-48ec-92ac-c129aeaac38e"},{"ref":"EID5e616899-1468-4b5a-b4f6-95039dcf4f69"},{"ref":"EID9a3a115d-e281-474e-8fbd-90321c190ef8"}]},"parent":{"ref":"EID6ee6c4cc-0175-1000-3d57-c1ea253c74cf"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:10:18Z","duration":32,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:10:18Z","duration":161,"status":"PASSED"},{"id":"EID6ee6c56d-0175-1000-265e-b1466759c431","testStepResults":{"TestStepResult":{"id":"EID6ee6c56d-0175-1000-92ca-8cf20e085026","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c67d-0175-1000-1818-b051f845765f","parent":{"ref":"EID6ee6c56d-0175-1000-92ca-8cf20e085026"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c67d-0175-1000-0eca-d1ee4a5e9762","parent":{"ref":"EID6ee6c56d-0175-1000-92ca-8cf20e085026"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c67d-0175-1000-3980-80d9c2272c8f","parent":{"ref":"EID6ee6c56d-0175-1000-92ca-8cf20e085026"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c67d-0175-1000-b22a-2bdec47b075a","parent":{"ref":"EID6ee6c56d-0175-1000-92ca-8cf20e085026"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4874b72b-b97c-428e-9930-e1412c6acf32"},{"ref":"EIDc846e184-5050-42bd-80f8-990a833675b0"},{"ref":"EID224c2d91-d639-49d0-b473-d0e597949193"}]},"parent":{"ref":"EID6ee6c56d-0175-1000-265e-b1466759c431"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:10:18Z","duration":83,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:10:18Z","duration":272,"status":"PASSED"},{"id":"EID6ee6c67d-0175-1000-093a-9293ef6e3213","testStepResults":{"TestStepResult":[{"id":"EID6ee6c67d-0175-1000-04b5-144adee43c1c","attachments":{"attachment":[{"ref":"EIDf424fcb0-453a-4c2c-8b77-c1832a0691d8"},{"ref":"EID2c75e953-4481-49d5-9907-913d7f4b5587"},{"ref":"EIDc6dbc213-1672-409d-be25-f20104163910"},{"ref":"EIDecf381a7-d961-4694-89a3-0aaab800cf98"}]},"parent":{"ref":"EID6ee6c67d-0175-1000-093a-9293ef6e3213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:10:19Z","duration":260,"status":"PASSED"},{"id":"EID6ee6c7b1-0175-1000-56dd-7705f1a4848d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c8d8-0175-1000-e931-f0d030832187","parent":{"ref":"EID6ee6c7b1-0175-1000-56dd-7705f1a4848d"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c8d8-0175-1000-9bd2-882805fd1fc8","parent":{"ref":"EID6ee6c7b1-0175-1000-56dd-7705f1a4848d"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c8d8-0175-1000-a587-d466f1765542","parent":{"ref":"EID6ee6c7b1-0175-1000-56dd-7705f1a4848d"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c8d8-0175-1000-2047-d546655ab2c4","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee6c7b1-0175-1000-56dd-7705f1a4848d"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:10:19Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa7cd8c8f-4543-4f34-a08c-0081a34e9028"},{"ref":"EID8f760dd9-7890-47d9-b3cd-161b4297626f"},{"ref":"EID23549271-237c-4dd3-b50d-1da45652a67a"}]},"parent":{"ref":"EID6ee6c67d-0175-1000-093a-9293ef6e3213"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:10:19Z","duration":63,"status":"FAILED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:10:19Z","duration":604,"status":"FAILED"},{"id":"EID6ee6c8d9-0175-1000-a2b9-90ebe86533f0","testStepResults":{"TestStepResult":{"id":"EID6ee6c8e1-0175-1000-e959-7a2b5d641212","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6c9c0-0175-1000-b6c1-dcdd6fda05a1","parent":{"ref":"EID6ee6c8e1-0175-1000-e959-7a2b5d641212"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c9c0-0175-1000-9756-c47b43bcfb62","parent":{"ref":"EID6ee6c8e1-0175-1000-e959-7a2b5d641212"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c9c0-0175-1000-57e5-9160d7adfd8b","parent":{"ref":"EID6ee6c8e1-0175-1000-e959-7a2b5d641212"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c9c0-0175-1000-ba69-cb6016cefe5a","parent":{"ref":"EID6ee6c8e1-0175-1000-e959-7a2b5d641212"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID57b588ee-9632-4fc1-a336-360688959847"},{"ref":"EIDb26b7cb7-7a17-4f7b-a63e-813bd6278dfc"},{"ref":"EID16fcc161-563e-44ce-88f8-e0dad2ec4abf"}]},"parent":{"ref":"EID6ee6c8d9-0175-1000-a2b9-90ebe86533f0"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:10:19Z","duration":87,"status":"PASSED"}},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:10:19Z","duration":232,"status":"PASSED"},{"id":"EID6ee6c9c1-0175-1000-0edd-448b900900f9","testStepResults":{"TestStepResult":[{"id":"EID6ee6c9c1-0175-1000-ef2e-5d6949f79ea8","parent":{"ref":"EID6ee6c9c1-0175-1000-0edd-448b900900f9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6c9c1-0175-1000-9b87-c3e08d226982","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cab6-0175-1000-a62f-68ad9aae035a","parent":{"ref":"EID6ee6c9c1-0175-1000-9b87-c3e08d226982"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cab6-0175-1000-0aeb-3317fc0f367e","parent":{"ref":"EID6ee6c9c1-0175-1000-9b87-c3e08d226982"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cab6-0175-1000-8f10-41376283c76c","parent":{"ref":"EID6ee6c9c1-0175-1000-9b87-c3e08d226982"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cab6-0175-1000-fd62-d32034bd61b6","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee6c9c1-0175-1000-9b87-c3e08d226982"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDcb109b91-ae5a-4e83-bc54-3853ca10040f"},{"ref":"EID232f4a7f-cce1-4067-972f-16b14753f01e"},{"ref":"EIDb44e7667-95b5-4d6c-b932-0fef8aa88c32"}]},"parent":{"ref":"EID6ee6c9c1-0175-1000-0edd-448b900900f9"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:10:20Z","duration":102,"status":"FAILED"}]},"parent":{"ref":"EID6ee6afb0-0175-1000-f8a7-9ea998deff3f"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:10:20Z","duration":245,"status":"FAILED"}]},"parent":{"ref":"EID25b017db-1c8c-4a2d-975b-464e8abba882"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:10:13Z","duration":6918,"status":"FAILED"},{"id":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a","testStepResults":{"TestStepResult":[{"id":"EID6ee6cab6-0175-1000-c036-c1f1e7dac998","parent":{"ref":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cab6-0175-1000-18a2-df5763a57137","parent":{"ref":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:10:20Z","duration":87,"status":"PASSED"},{"id":"EID6ee6cab6-0175-1000-3bef-40de289bf817","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cbc5-0175-1000-2b4b-a22421a3e528","parent":{"ref":"EID6ee6cab6-0175-1000-3bef-40de289bf817"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cbc5-0175-1000-8fbc-9b0919e2b0a9","parent":{"ref":"EID6ee6cab6-0175-1000-3bef-40de289bf817"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cbc5-0175-1000-791d-2ac3ef4436cd","parent":{"ref":"EID6ee6cab6-0175-1000-3bef-40de289bf817"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0868b252-52bd-4150-9e96-8419672a8239"},{"ref":"EIDd85e0ecb-204e-4fae-a43c-737710bc8da2"},{"ref":"EID70c318f3-970b-40e4-8764-555b58c63215"}]},"parent":{"ref":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:10:20Z","duration":124,"status":"PASSED"},{"id":"EID6ee6cbc5-0175-1000-04ab-7cbffbe68e6e","attachments":{"attachment":{"ref":"EID630e9e62-09f0-4c73-bd85-72cea0cd8eda"}},"parent":{"ref":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cbe5-0175-1000-0e52-8e3e5c63c47b","parent":{"ref":"EID6ee6cab6-0175-1000-5d33-b5664b034b5a"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:10:20Z","duration":68,"status":"PASSED"}]},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:10:20Z","duration":371,"status":"PASSED"},{"id":"EID6ee6cc29-0175-1000-0393-39d1c5ee1e30","testStepResults":{"TestStepResult":[{"id":"EID6ee6cc29-0175-1000-2328-d62843e9a772","parent":{"ref":"EID6ee6cc29-0175-1000-0393-39d1c5ee1e30"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:10:20Z","duration":88,"status":"PASSED"},{"id":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cc88-0175-1000-6c4a-d16a53eeaf55","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:10:20Z","duration":10,"status":"FAILED"},{"id":"EID6ee6cc92-0175-1000-dfc9-960382697855","parent":{"ref":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cc92-0175-1000-7222-ad4712a520d6","parent":{"ref":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cc92-0175-1000-f598-58e8a222e2cb","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"FAILED"},{"id":"EID6ee6cc92-0175-1000-cdbd-9a9da4712bb0","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee6cc29-0175-1000-38be-17bb18c2c7b5"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID10cae637-06f9-4ae5-97eb-f31ef0b303de"},{"ref":"EIDb5ae349d-8216-41a5-8ac4-08276f1a9a1f"},{"ref":"EID8c8d1b32-eeb0-44b2-ba13-b301d0811bf7"}]},"parent":{"ref":"EID6ee6cc29-0175-1000-0393-39d1c5ee1e30"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:10:20Z","duration":24,"status":"FAILED"}]},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:10:20Z","duration":106,"status":"FAILED"},{"id":"EID6ee6cc93-0175-1000-dfa5-9a3b288f684f","testStepResults":{"TestStepResult":{"id":"EID6ee6cc9b-0175-1000-b1ee-036bb93e4bda","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cd04-0175-1000-e2a4-448788fffee3","parent":{"ref":"EID6ee6cc9b-0175-1000-b1ee-036bb93e4bda"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cd04-0175-1000-471d-1493df2d09f9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cc9b-0175-1000-b1ee-036bb93e4bda"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:10:20Z","duration":28,"status":"FAILED"},{"id":"EID6ee6cd20-0175-1000-7452-1c7867bea8ed","parent":{"ref":"EID6ee6cc9b-0175-1000-b1ee-036bb93e4bda"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:10:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcae0cfc5-30b4-40c3-9880-ce130c62566c"},{"ref":"EID87ab643a-ffda-4f86-87e3-7ed2fd490573"},{"ref":"EID5a07b971-2f82-42de-84b5-5085589b65f4"}]},"parent":{"ref":"EID6ee6cc93-0175-1000-dfa5-9a3b288f684f"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:10:20Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:10:20Z","duration":141,"status":"FAILED"},{"id":"EID6ee6cd20-0175-1000-5004-9fe27a77cf15","testStepResults":{"TestStepResult":{"id":"EID6ee6cd20-0175-1000-a009-9c792aae5205","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cd81-0175-1000-c996-9a4d3524bf8f","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee6cd20-0175-1000-a009-9c792aae5205"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee6cd81-0175-1000-d123-669e674b2510","parent":{"ref":"EID6ee6cd20-0175-1000-a009-9c792aae5205"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cd81-0175-1000-c0e7-ba7c7805d152","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cd20-0175-1000-a009-9c792aae5205"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:10:21Z","duration":14,"status":"FAILED"},{"id":"EID6ee6cd8f-0175-1000-fbe2-70c46811af8d","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee6cd20-0175-1000-a009-9c792aae5205"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf012b2fe-f961-4ead-a6e1-c45a402ce046"},{"ref":"EID101d9f48-2308-4d1b-b153-06f7f153ebee"},{"ref":"EIDe1f7f84e-bd21-40ab-92fb-39926911984f"}]},"parent":{"ref":"EID6ee6cd20-0175-1000-5004-9fe27a77cf15"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:10:20Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:10:20Z","duration":111,"status":"FAILED"},{"id":"EID6ee6cd8f-0175-1000-3346-fb8b78e79149","testStepResults":{"TestStepResult":{"id":"EID6ee6cd8f-0175-1000-4bb4-4ef66ce4662e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ce11-0175-1000-3f04-080e62e24c10","parent":{"ref":"EID6ee6cd8f-0175-1000-4bb4-4ef66ce4662e"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ce11-0175-1000-d641-4012336c5eaa","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cd8f-0175-1000-4bb4-4ef66ce4662e"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:10:21Z","duration":12,"status":"FAILED"},{"id":"EID6ee6ce1d-0175-1000-4302-d154ccc88ded","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee6cd8f-0175-1000-4bb4-4ef66ce4662e"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID619ab382-b5a9-4f44-bde5-21c4cc2ca50d"},{"ref":"EID18f9431b-6e8f-487d-ba68-2827348d7458"},{"ref":"EIDbe86dec5-b0d2-43fb-a337-e9700b80cf7c"}]},"parent":{"ref":"EID6ee6cd8f-0175-1000-3346-fb8b78e79149"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:10:21Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:10:21Z","duration":142,"status":"FAILED"},{"id":"EID6ee6ce1d-0175-1000-dc5d-e0ac66eb52d1","testStepResults":{"TestStepResult":{"id":"EID6ee6ce1d-0175-1000-585a-d6f101e92e01","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6ce84-0175-1000-86aa-a830cfc240e0","parent":{"ref":"EID6ee6ce1d-0175-1000-585a-d6f101e92e01"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6ce84-0175-1000-2824-e276f20a58ba","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6ce1d-0175-1000-585a-d6f101e92e01"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:10:21Z","duration":10,"status":"FAILED"},{"id":"EID6ee6ce8e-0175-1000-d9cb-944f0b513d16","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee6ce1d-0175-1000-585a-d6f101e92e01"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4cca0831-3a18-4e08-88a9-1349796b49d4"},{"ref":"EID2491a1a3-3d51-4cc7-8324-5b1b455d5469"},{"ref":"EIDa8b55277-fe8d-4f7b-b80b-71f25ca9e377"}]},"parent":{"ref":"EID6ee6ce1d-0175-1000-dc5d-e0ac66eb52d1"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:10:21Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:10:21Z","duration":113,"status":"FAILED"},{"id":"EID6ee6ce8f-0175-1000-d882-3b8301e64d8b","testStepResults":{"TestStepResult":{"id":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cf03-0175-1000-4314-97ff74c9c3df","parent":{"ref":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cf03-0175-1000-e0ae-1854f4da412f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:10:21Z","duration":14,"status":"FAILED"},{"id":"EID6ee6cf11-0175-1000-fcce-4ca4fd7f2b4a","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee6cf11-0175-1000-293d-68d081a83f49","parent":{"ref":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cf11-0175-1000-cf76-81c0dfb13b01","parent":{"ref":"EID6ee6ce8f-0175-1000-87e4-a693a20a4887"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa898e712-045a-404a-9202-046083b100af"},{"ref":"EID2fad90ee-ae33-423a-97a7-3ded157d56c4"},{"ref":"EID7c94c2d5-f8e1-4889-a7c5-12c449eaf82e"}]},"parent":{"ref":"EID6ee6ce8f-0175-1000-d882-3b8301e64d8b"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:10:21Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:10:21Z","duration":130,"status":"FAILED"},{"id":"EID6ee6cf12-0175-1000-36ce-a994c9dcf3e1","testStepResults":{"TestStepResult":{"id":"EID6ee6cf12-0175-1000-08b5-703b4ea2848c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cf69-0175-1000-06ab-ad20eae8dca8","parent":{"ref":"EID6ee6cf12-0175-1000-08b5-703b4ea2848c"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cf69-0175-1000-9d38-ead3b9befdb9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cf12-0175-1000-08b5-703b4ea2848c"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:10:21Z","duration":11,"status":"FAILED"},{"id":"EID6ee6cf74-0175-1000-df04-fbcb00d96107","parent":{"ref":"EID6ee6cf12-0175-1000-08b5-703b4ea2848c"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9ac47281-52db-44b0-af4e-8eedacead36d"},{"ref":"EIDeaf4abff-56c0-46df-aa83-1751d943f1b8"},{"ref":"EID23f45a03-c5d7-4dbe-aa85-c25b1660539a"}]},"parent":{"ref":"EID6ee6cf12-0175-1000-36ce-a994c9dcf3e1"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:10:21Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:10:21Z","duration":98,"status":"FAILED"},{"id":"EID6ee6cf75-0175-1000-40c1-b7af0667b5d3","testStepResults":{"TestStepResult":{"id":"EID6ee6cf75-0175-1000-136a-b2e3537a2c76","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6cfca-0175-1000-b1ee-7e134fa82a14","parent":{"ref":"EID6ee6cf75-0175-1000-136a-b2e3537a2c76"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6cfcb-0175-1000-01d1-b21748815a0d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cf75-0175-1000-136a-b2e3537a2c76"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:10:21Z","duration":11,"status":"FAILED"},{"id":"EID6ee6cfd6-0175-1000-0aa1-4c6f5b87ed57","parent":{"ref":"EID6ee6cf75-0175-1000-136a-b2e3537a2c76"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67a6a9d3-184e-4221-afa6-5514b94c695f"},{"ref":"EID49922062-a2c8-441f-9aa8-4c00724f3d97"},{"ref":"EIDf11225ec-4c4d-4db1-b671-f65c42190c07"}]},"parent":{"ref":"EID6ee6cf75-0175-1000-40c1-b7af0667b5d3"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:10:21Z","duration":23,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:10:21Z","duration":97,"status":"FAILED"},{"id":"EID6ee6cfd7-0175-1000-14f3-bb19261a455a","testStepResults":{"TestStepResult":{"id":"EID6ee6cfd7-0175-1000-a828-fa9d31a29711","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d037-0175-1000-449f-677df20c1475","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6cfd7-0175-1000-a828-fa9d31a29711"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:10:21Z","duration":16,"status":"FAILED"},{"id":"EID6ee6d047-0175-1000-7127-ec6afadb2d82","parent":{"ref":"EID6ee6cfd7-0175-1000-a828-fa9d31a29711"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d047-0175-1000-8677-18e897f64f52","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6cfd7-0175-1000-a828-fa9d31a29711"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee6d047-0175-1000-e6c5-f855dd9f7f26","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee6cfd7-0175-1000-a828-fa9d31a29711"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID730905c1-1bd9-4c55-bb5a-628d183f5ba6"},{"ref":"EID071a5ce6-088e-40d7-9e4d-f8c9bbc6e103"},{"ref":"EID4e5685a6-74af-47d4-9524-de559dbfe60d"}]},"parent":{"ref":"EID6ee6cfd7-0175-1000-14f3-bb19261a455a"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:10:21Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:10:21Z","duration":112,"status":"FAILED"},{"id":"EID6ee6d048-0175-1000-27ec-4767fdef1856","testStepResults":{"TestStepResult":{"id":"EID6ee6d048-0175-1000-9353-7697e8831f72","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d0a6-0175-1000-ff36-d21c9f73da2c","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6d048-0175-1000-9353-7697e8831f72"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:10:21Z","duration":15,"status":"FAILED"},{"id":"EID6ee6d0b5-0175-1000-565f-bc644540fabc","parent":{"ref":"EID6ee6d048-0175-1000-9353-7697e8831f72"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d0b5-0175-1000-8ade-361f94567ed8","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6d048-0175-1000-9353-7697e8831f72"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee6d0b5-0175-1000-95a5-876f0badb57a","parent":{"ref":"EID6ee6d048-0175-1000-9353-7697e8831f72"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:10:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8b201aa4-6993-42be-8c47-766bfe3f360b"},{"ref":"EID72083b60-a738-4a65-8d27-e2ec36d43f32"},{"ref":"EID7d3d1fce-008a-405a-b477-91894056789b"}]},"parent":{"ref":"EID6ee6d048-0175-1000-27ec-4767fdef1856"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:10:21Z","duration":23,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:10:21Z","duration":109,"status":"FAILED"},{"id":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b","testStepResults":{"TestStepResult":[{"id":"EID6ee6d0b5-0175-1000-0f54-1db1be144aae","parent":{"ref":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:10:21Z","duration":1,"status":"PASSED"},{"id":"EID6ee6d0b6-0175-1000-0103-8957c3f680b9","parent":{"ref":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:10:21Z","duration":137,"status":"PASSED"},{"id":"EID6ee6d0b6-0175-1000-8564-256e12199da1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d1e0-0175-1000-4166-9e0eceb3efe8","parent":{"ref":"EID6ee6d0b6-0175-1000-8564-256e12199da1"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:10:22Z","duration":1,"status":"PASSED"},{"id":"EID6ee6d1e1-0175-1000-9713-797071daf2ce","parent":{"ref":"EID6ee6d0b6-0175-1000-8564-256e12199da1"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d1e1-0175-1000-bd42-50a25b1054cb","parent":{"ref":"EID6ee6d0b6-0175-1000-8564-256e12199da1"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d1e1-0175-1000-3d93-7d9613c68421","parent":{"ref":"EID6ee6d0b6-0175-1000-8564-256e12199da1"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8ab4aa3f-1aa7-4298-9aa8-40431000200e"},{"ref":"EIDef335cd2-9b8b-401d-82e4-d701ce4bd324"},{"ref":"EID8c177789-9fb1-4f42-bae2-f53ed53c5cb0"}]},"parent":{"ref":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:10:21Z","duration":89,"status":"PASSED"},{"id":"EID6ee6d1e1-0175-1000-4ba0-be143a880c0f","attachments":{"attachment":{"ref":"EID56bab626-addf-491c-bdf6-2504e527f984"}},"parent":{"ref":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:10:22Z","duration":4,"status":"PASSED"},{"id":"EID6ee6d214-0175-1000-a7a9-b79093eca461","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d29b-0175-1000-7338-2df68fc45e73","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d29b-0175-1000-c5ba-afeb427b25e9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:10:22Z","duration":11,"status":"FAILED"},{"id":"EID6ee6d2a6-0175-1000-792b-850ee4bba89e","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d2a6-0175-1000-28b3-5f4b77fbf89e","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d2a6-0175-1000-b68c-be33f60bac2c","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d2a6-0175-1000-d2c5-abf7fc0b331c","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d2a6-0175-1000-7413-8d7bf37f5e09","parent":{"ref":"EID6ee6d214-0175-1000-a7a9-b79093eca461"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd1cd0f24-1978-47c0-bc16-ec1f67b24f93"},{"ref":"EID10850869-3db9-41bd-a445-d92446503107"},{"ref":"EID0e52c0a5-fcf5-4e4e-94d3-ea9d20ba2b47"}]},"parent":{"ref":"EID6ee6d0b5-0175-1000-6064-cfa3d15e840b"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:10:22Z","duration":27,"status":"FAILED"}]},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:10:21Z","duration":498,"status":"FAILED"},{"id":"EID6ee6d2a7-0175-1000-f530-bb9b25c7fb32","testStepResults":{"TestStepResult":[{"id":"EID6ee6d2a7-0175-1000-0df8-9197f2f2c602","parent":{"ref":"EID6ee6d2a7-0175-1000-f530-bb9b25c7fb32"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d2a7-0175-1000-0a96-1d47c9870190","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d39f-0175-1000-a607-b77e5adcc399","parent":{"ref":"EID6ee6d2a7-0175-1000-0a96-1d47c9870190"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d39f-0175-1000-45e9-0fbe2c8484be","parent":{"ref":"EID6ee6d2a7-0175-1000-0a96-1d47c9870190"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d39f-0175-1000-2602-b44875efcc18","parent":{"ref":"EID6ee6d2a7-0175-1000-0a96-1d47c9870190"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d39f-0175-1000-6b15-67ee30bf0f50","parent":{"ref":"EID6ee6d2a7-0175-1000-0a96-1d47c9870190"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4760268d-930c-4bdd-8574-18f61f15853a"},{"ref":"EID775c17b4-8ba1-4a19-8c51-775205ce88f9"},{"ref":"EID4db20dfc-a984-427d-b6ac-977d7a7c38da"}]},"parent":{"ref":"EID6ee6d2a7-0175-1000-f530-bb9b25c7fb32"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:10:22Z","duration":149,"status":"PASSED"},{"id":"EID6ee6d39f-0175-1000-e296-b95bdebff5e8","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee6d3b2-0175-1000-5915-24d840a8b987","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d4c3-0175-1000-3d9b-041b3aa0fdd2","parent":{"ref":"EID6ee6d3b2-0175-1000-5915-24d840a8b987"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4c3-0175-1000-7bf2-5e0dcf31f2e9","parent":{"ref":"EID6ee6d3b2-0175-1000-5915-24d840a8b987"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d4c3-0175-1000-4f3a-3d713eccd2e3","parent":{"ref":"EID6ee6d3b2-0175-1000-5915-24d840a8b987"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9cbed30f-0ff9-469c-9eb8-6e393f0e7cba"},{"ref":"EID9b683a86-f3e0-4ce2-a0de-c4e5532f9634"},{"ref":"EIDe4cf1017-5c5c-4772-82ce-a854dd77d120"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:22Z","duration":156,"status":"PASSED"},{"id":"EID6ee6d4c5-0175-1000-09fe-9ce930e20689","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d5c0-0175-1000-8c5d-fc822cb72066","parent":{"ref":"EID6ee6d4c5-0175-1000-09fe-9ce930e20689"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d5c0-0175-1000-f4e2-12bea7fc40a9","parent":{"ref":"EID6ee6d4c5-0175-1000-09fe-9ce930e20689"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d5c0-0175-1000-698b-e4949e5ad7b4","parent":{"ref":"EID6ee6d4c5-0175-1000-09fe-9ce930e20689"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7283ffda-3eb2-47f1-a373-6c5402e4bbd0"},{"ref":"EID68066950-6a87-4c5e-bb67-db2b087189e4"},{"ref":"EID8504e80f-6dcb-4b68-b4cc-dcf16f4b510e"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:22Z","duration":153,"status":"PASSED"},{"id":"EID6ee6d5d5-0175-1000-3d73-877aa2d615b1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d650-0175-1000-dfe5-7e86cc083621","parent":{"ref":"EID6ee6d5d5-0175-1000-3d73-877aa2d615b1"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d650-0175-1000-ecbf-82ae465b3f10","parent":{"ref":"EID6ee6d5d5-0175-1000-3d73-877aa2d615b1"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d650-0175-1000-faca-2a0e3daa2d4d","parent":{"ref":"EID6ee6d5d5-0175-1000-3d73-877aa2d615b1"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9a450a90-4d26-43c2-8990-b1deb505a2fe"},{"ref":"EID2ac69680-1925-439b-ad98-4c17c8067134"},{"ref":"EID097fcbe9-249e-46d3-929e-93a0d47c6620"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:10:23Z","duration":42,"status":"PASSED"}]},"parent":{"ref":"EID6ee6d2a7-0175-1000-f530-bb9b25c7fb32"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:10:22Z","duration":690,"status":"PASSED"},{"id":"EID6ee6d652-0175-1000-1c4f-dbb948036557","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d6c4-0175-1000-4db6-c6cc426de522","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6d652-0175-1000-1c4f-dbb948036557"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:10:23Z","duration":11,"status":"FAILED"},{"id":"EID6ee6d6cf-0175-1000-bdd9-b4fdc0c5551a","parent":{"ref":"EID6ee6d652-0175-1000-1c4f-dbb948036557"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d6cf-0175-1000-f85e-3ffe313b6d66","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6d652-0175-1000-1c4f-dbb948036557"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"FAILED"},{"id":"EID6ee6d6cf-0175-1000-d61e-30d2e0e85f06","parent":{"ref":"EID6ee6d652-0175-1000-1c4f-dbb948036557"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1790ad3b-5854-41b9-be7f-a89c26e953d9"},{"ref":"EID887b7c57-2bc3-46e1-a454-39ffb222a7ea"},{"ref":"EID12695f76-30d7-4dea-8770-55a196115eed"}]},"parent":{"ref":"EID6ee6d2a7-0175-1000-f530-bb9b25c7fb32"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:10:23Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:10:22Z","duration":1064,"status":"FAILED"},{"id":"EID6ee6d6cf-0175-1000-add5-a68f7ce7fceb","testStepResults":{"TestStepResult":{"id":"EID6ee6d6cf-0175-1000-51b0-0f116d5668e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee6d72b-0175-1000-dfcd-9f747c0024d7","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee6d6cf-0175-1000-51b0-0f116d5668e2"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:10:23Z","duration":13,"status":"FAILED"},{"id":"EID6ee6d738-0175-1000-2612-16159071f046","parent":{"ref":"EID6ee6d6cf-0175-1000-51b0-0f116d5668e2"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee6d738-0175-1000-7942-a661802cd2d1","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee6d6cf-0175-1000-51b0-0f116d5668e2"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"FAILED"},{"id":"EID6ee6d738-0175-1000-4b9d-8ec52054704d","parent":{"ref":"EID6ee6d6cf-0175-1000-51b0-0f116d5668e2"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8e36a2c3-767c-4dc1-a9f8-243054d8c8b6"},{"ref":"EID9665c4e8-c915-4e63-a202-8cfd3ed8bf4d"},{"ref":"EIDc907df86-63b5-4be6-8b8c-6ab98227d560"}]},"parent":{"ref":"EID6ee6d6cf-0175-1000-add5-a68f7ce7fceb"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:10:23Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee6cab6-0175-1000-9c99-699dfc09bfa2"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:10:23Z","duration":105,"status":"FAILED"}]},"parent":{"ref":"EID25b017db-1c8c-4a2d-975b-464e8abba882"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:10:20Z","duration":3202,"status":"FAILED"},{"id":"EID6ee6d738-0175-1000-b05e-136ec9440fd3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee6d738-0175-1000-0a85-fcd097a0ee89","testStepResults":{"TestStepResult":{"id":"EID6ee6d738-0175-1000-abaf-56f938a65844","parent":{"ref":"EID6ee6d738-0175-1000-0a85-fcd097a0ee89"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-c129-973b63bde337","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-ff62-8fc64d90e145","parent":{"ref":"EID6ee6d739-0175-1000-c129-973b63bde337"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-fed2-4517a8c8f0b3","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-c9c7-df6c64be5f4a","parent":{"ref":"EID6ee6d739-0175-1000-fed2-4517a8c8f0b3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-7603-229729ca1e2e","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-cdd1-20f2893521ed","parent":{"ref":"EID6ee6d739-0175-1000-7603-229729ca1e2e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-90aa-d24279d3899d","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-7c61-e5b822ba98fe","parent":{"ref":"EID6ee6d739-0175-1000-90aa-d24279d3899d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-8753-1e840415c4f4","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-b4a7-dc93955196de","parent":{"ref":"EID6ee6d739-0175-1000-8753-1e840415c4f4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee6d739-0175-1000-b6ea-af6b54c05293","testStepResults":{"TestStepResult":{"id":"EID6ee6d739-0175-1000-ce70-073c25a9e40d","parent":{"ref":"EID6ee6d739-0175-1000-b6ea-af6b54c05293"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:10:23Z","duration":600,"status":"SKIPPED"}},"parent":{"ref":"EID6ee6d738-0175-1000-b05e-136ec9440fd3"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:10:23Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID25b017db-1c8c-4a2d-975b-464e8abba882"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:10:23Z","duration":1,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"Error","id":"EID7cbb3f56-437d-4c0c-8ddd-e451b640e3bb","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID7cbb3f56-437d-4c0c-8ddd-e451b640e3bb"}},{"type":"ServiceResponse","id":"EID887b7c57-2bc3-46e1-a454-39ffb222a7ea","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID887b7c57-2bc3-46e1-a454-39ffb222a7ea"}},{"type":"Error","id":"EID5cb231d3-98a2-46a7-9448-34cb498d1f52","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID5cb231d3-98a2-46a7-9448-34cb498d1f52"}},{"type":"ServiceEndpoint","id":"EID1790ad3b-5854-41b9-be7f-a89c26e953d9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID2491a1a3-3d51-4cc7-8324-5b1b455d5469","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2491a1a3-3d51-4cc7-8324-5b1b455d5469"}},{"type":"Error","id":"EID3d10b2e0-2fd0-45f4-bce1-83f618a785b2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID3d10b2e0-2fd0-45f4-bce1-83f618a785b2"}},{"type":"ServiceResponse","id":"EID775c17b4-8ba1-4a19-8c51-775205ce88f9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID775c17b4-8ba1-4a19-8c51-775205ce88f9"}},{"type":"ServiceEndpoint","id":"EID04d73f82-2973-4fc0-a2ff-0e4d94b36c0f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf8607571-0611-4121-a6f4-1f8e4d7090f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDf8607571-0611-4121-a6f4-1f8e4d7090f6"}},{"type":"Error","id":"EID0e9cea32-617d-4ab6-81de-ab3bdea7753c","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID0e9cea32-617d-4ab6-81de-ab3bdea7753c"}},{"type":"GetParameter","id":"EID16dd7660-2168-4e99-ae78-8f0ff85178f4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0c052eb0-165d-4c37-8565-efc7840f96dc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID0c052eb0-165d-4c37-8565-efc7840f96dc"}},{"type":"Message","id":"EIDf424fcb0-453a-4c2c-8b77-c1832a0691d8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDf424fcb0-453a-4c2c-8b77-c1832a0691d8"}},{"type":"GetParameter","id":"EID8c8d1b32-eeb0-44b2-ba13-b301d0811bf7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID619ab382-b5a9-4f44-bde5-21c4cc2ca50d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID071a5ce6-088e-40d7-9e4d-f8c9bbc6e103","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID071a5ce6-088e-40d7-9e4d-f8c9bbc6e103"}},{"type":"GetParameter","id":"EIDbe86dec5-b0d2-43fb-a337-e9700b80cf7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID68066950-6a87-4c5e-bb67-db2b087189e4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID68066950-6a87-4c5e-bb67-db2b087189e4"}},{"type":"Message","id":"EID56bab626-addf-491c-bdf6-2504e527f984","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID56bab626-addf-491c-bdf6-2504e527f984"}},{"type":"ServiceEndpoint","id":"EIDcae0cfc5-30b4-40c3-9880-ce130c62566c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID5d18b6ea-03cd-422b-b889-2a299031c4bc","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID5d18b6ea-03cd-422b-b889-2a299031c4bc"}},{"type":"GetParameter","id":"EID224c2d91-d639-49d0-b473-d0e597949193","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6e4d0a94-1696-42ea-96f1-eb4bdb3c80b9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID6e4d0a94-1696-42ea-96f1-eb4bdb3c80b9"}},{"type":"ServiceEndpoint","id":"EID57b588ee-9632-4fc1-a336-360688959847","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9cbed30f-0ff9-469c-9eb8-6e393f0e7cba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDb5c0c208-16f4-4b1e-9dfd-9c10095a6af0","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDb5c0c208-16f4-4b1e-9dfd-9c10095a6af0"}},{"type":"Message","id":"EID2a7cd215-a5b7-43ad-ab7f-290ed31ec6e4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2a7cd215-a5b7-43ad-ab7f-290ed31ec6e4"}},{"type":"ServiceEndpoint","id":"EID4cca0831-3a18-4e08-88a9-1349796b49d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDc5992691-cf63-45f2-8daf-d2cdb71ac213","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDc5992691-cf63-45f2-8daf-d2cdb71ac213"}},{"type":"Message","id":"EIDa61519e7-f336-4e22-8730-306d08756538","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDa61519e7-f336-4e22-8730-306d08756538"}},{"type":"ServiceResponse","id":"EID525e4ee6-331e-41c0-9194-1a4e882f3a84","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID525e4ee6-331e-41c0-9194-1a4e882f3a84"}},{"type":"ServiceResponse","id":"EIDdd4d8b3f-313c-469f-8335-5f5b929c2237","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDdd4d8b3f-313c-469f-8335-5f5b929c2237"}},{"type":"ServiceResponse","id":"EIDeaf4abff-56c0-46df-aa83-1751d943f1b8","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDeaf4abff-56c0-46df-aa83-1751d943f1b8"}},{"type":"GetParameter","id":"EID6381e6e9-95b3-4777-a522-a720106262ee","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa7cd8c8f-4543-4f34-a08c-0081a34e9028","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd1cd0f24-1978-47c0-bc16-ec1f67b24f93","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID5e347b8c-14dc-42c2-a15c-a2b54f422a7a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID5e347b8c-14dc-42c2-a15c-a2b54f422a7a"}},{"type":"Message","id":"EID8de072b1-c3ea-4293-9077-0344be43625d","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID8de072b1-c3ea-4293-9077-0344be43625d"}},{"type":"GetParameter","id":"EID8c177789-9fb1-4f42-bae2-f53ed53c5cb0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDfcbd199a-3a1f-4f95-a38a-a0937e4ed890","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDfcbd199a-3a1f-4f95-a38a-a0937e4ed890"}},{"type":"GetParameter","id":"EID5a07b971-2f82-42de-84b5-5085589b65f4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDd85e0ecb-204e-4fae-a43c-737710bc8da2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDd85e0ecb-204e-4fae-a43c-737710bc8da2"}},{"type":"ServiceResponse","id":"EID2ac69680-1925-439b-ad98-4c17c8067134","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2ac69680-1925-439b-ad98-4c17c8067134"}},{"type":"ServiceResponse","id":"EIDcff3971b-ab3d-4c34-8218-bd04026cea1f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDcff3971b-ab3d-4c34-8218-bd04026cea1f"}},{"type":"GetParameter","id":"EID70c318f3-970b-40e4-8764-555b58c63215","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe9045e75-497a-4a91-a679-50d333648834","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDe9045e75-497a-4a91-a679-50d333648834"}},{"type":"GetParameter","id":"EIDfbb8ca8d-9522-4003-9bc1-c9bbfa250c09","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDbee807fb-ac19-460d-9123-c54a6a79208a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID8429beab-1538-4cd2-bb47-4cfa16959460","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID8429beab-1538-4cd2-bb47-4cfa16959460"}},{"type":"ServiceResponse","id":"EIDb5ae349d-8216-41a5-8ac4-08276f1a9a1f","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDb5ae349d-8216-41a5-8ac4-08276f1a9a1f"}},{"type":"GetParameter","id":"EID23f45a03-c5d7-4dbe-aa85-c25b1660539a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDee3c1803-2ce8-4c92-8564-aa8e36da91b9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc46a602e-1d38-4927-b945-04e124db708a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0813b6d3-c08e-4928-a73c-eb49cea6b106","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4db20dfc-a984-427d-b6ac-977d7a7c38da","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EIDc737b51a-d062-4170-b048-7b21e31121a8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDc737b51a-d062-4170-b048-7b21e31121a8"}},{"type":"GetParameter","id":"EID12695f76-30d7-4dea-8770-55a196115eed","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID6e74e409-f5a7-4e81-9520-9bbac6df0305","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID6e74e409-f5a7-4e81-9520-9bbac6df0305"}},{"type":"ServiceResponse","id":"EID10850869-3db9-41bd-a445-d92446503107","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID10850869-3db9-41bd-a445-d92446503107"}},{"type":"ServiceEndpoint","id":"EID67a6a9d3-184e-4221-afa6-5514b94c695f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDecf381a7-d961-4694-89a3-0aaab800cf98","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDecf381a7-d961-4694-89a3-0aaab800cf98"}},{"type":"Message","id":"EIDae05c67b-6afe-4bc6-8181-4a26cb425636","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDae05c67b-6afe-4bc6-8181-4a26cb425636"}},{"type":"ServiceEndpoint","id":"EIDd82bca6f-e1a8-4316-81a7-0d2234d9d6e3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID9665c4e8-c915-4e63-a202-8cfd3ed8bf4d","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID9665c4e8-c915-4e63-a202-8cfd3ed8bf4d"}},{"type":"ServiceEndpoint","id":"EID6972b1c1-0ef0-46fc-8a85-77a1bc823fdb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf04755ff-1f38-4531-85d5-e6a15ab2131f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8f760dd9-7890-47d9-b3cd-161b4297626f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID8f760dd9-7890-47d9-b3cd-161b4297626f"}},{"type":"GetParameter","id":"EID62814f09-6520-4970-9b60-fc01634c8441","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID7c94c2d5-f8e1-4889-a7c5-12c449eaf82e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID2c75e953-4481-49d5-9907-913d7f4b5587","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2c75e953-4481-49d5-9907-913d7f4b5587"}},{"type":"Message","id":"EID75f0de1e-c0ec-4d8c-8ef2-6e74aad4b873","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID75f0de1e-c0ec-4d8c-8ef2-6e74aad4b873"}},{"type":"GetParameter","id":"EID49b6ab9b-fdee-490f-af2c-0bb247c10f9a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID55353498-7337-4570-acf6-0a19eb61e51e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID55353498-7337-4570-acf6-0a19eb61e51e"}},{"type":"GetParameter","id":"EIDe6431b12-aeb2-440f-89e6-09e74606cc34","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID832d9056-9152-43f5-89b0-ab1af5ccb75e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa8b55277-fe8d-4f7b-b80b-71f25ca9e377","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID16fcc161-563e-44ce-88f8-e0dad2ec4abf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc27ffbb4-79d1-4488-b62e-00e2380faf5b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDc27ffbb4-79d1-4488-b62e-00e2380faf5b"}},{"type":"ServiceEndpoint","id":"EID9093344f-00bd-435a-baf6-3be8496c4b66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID11542187-2602-4977-8e1f-9e6f1e954e3e","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID11542187-2602-4977-8e1f-9e6f1e954e3e"}},{"type":"Message","id":"EIDe2b554e2-bc8d-4616-911c-17839feb7d91","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDe2b554e2-bc8d-4616-911c-17839feb7d91"}},{"type":"Message","id":"EIDc6dbc213-1672-409d-be25-f20104163910","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDc6dbc213-1672-409d-be25-f20104163910"}},{"type":"Message","id":"EIDf834874a-1e41-4a13-b68b-ece2b67e29d6","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDf834874a-1e41-4a13-b68b-ece2b67e29d6"}},{"type":"GetParameter","id":"EIDb44e7667-95b5-4d6c-b932-0fef8aa88c32","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDfec01926-1169-43fc-b1e1-7550c8aa48b9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDfec01926-1169-43fc-b1e1-7550c8aa48b9"}},{"type":"ServiceResponse","id":"EIDdad7b2ef-eea8-43f0-8868-d7cd96ee3a66","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDdad7b2ef-eea8-43f0-8868-d7cd96ee3a66"}},{"type":"ServiceEndpoint","id":"EIDbdb32183-f335-49c1-a7cb-7fd8433ac38a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID87ab643a-ffda-4f86-87e3-7ed2fd490573","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID87ab643a-ffda-4f86-87e3-7ed2fd490573"}},{"type":"Message","id":"EID71b57d79-d97a-4f2b-a8d0-6400a659b78a","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID71b57d79-d97a-4f2b-a8d0-6400a659b78a"}},{"type":"Message","id":"EIDdce576ea-42cf-478e-992e-c05320d5fef8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDdce576ea-42cf-478e-992e-c05320d5fef8"}},{"type":"Message","id":"EIDcca1aaab-3fa9-44e8-b81f-e53c380c5671","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDcca1aaab-3fa9-44e8-b81f-e53c380c5671"}},{"type":"ServiceResponse","id":"EID80c5d6e6-5190-4546-bbee-582b42043ff3","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID80c5d6e6-5190-4546-bbee-582b42043ff3"}},{"type":"ServiceEndpoint","id":"EIDf012b2fe-f961-4ead-a6e1-c45a402ce046","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID9b683a86-f3e0-4ce2-a0de-c4e5532f9634","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID9b683a86-f3e0-4ce2-a0de-c4e5532f9634"}},{"type":"Message","id":"EID1835506f-b02a-4e79-9b90-cf9655102dce","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID1835506f-b02a-4e79-9b90-cf9655102dce"}},{"type":"ServiceEndpoint","id":"EID8e36a2c3-767c-4dc1-a9f8-243054d8c8b6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0868b252-52bd-4150-9e96-8419672a8239","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID10cae637-06f9-4ae5-97eb-f31ef0b303de","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID55c9aac5-8915-4f19-a75c-b68e3b946ee5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID55c9aac5-8915-4f19-a75c-b68e3b946ee5"}},{"type":"ServiceEndpoint","id":"EIDcb109b91-ae5a-4e83-bc54-3853ca10040f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDf0cff749-cac3-450f-925d-7dabfe8d2e80","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDf0cff749-cac3-450f-925d-7dabfe8d2e80"}},{"type":"GetParameter","id":"EIDe4cf1017-5c5c-4772-82ce-a854dd77d120","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID730905c1-1bd9-4c55-bb5a-628d183f5ba6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDaee85f80-0004-4eea-b728-5b1f0ff9c6cc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID6ebf4941-f40b-4d21-8fe0-044a26c5dc3a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9ac47281-52db-44b0-af4e-8eedacead36d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID43659396-7e47-4225-9706-d3d1b812e8d1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf11225ec-4c4d-4db1-b671-f65c42190c07","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDdf8523d5-592d-49f2-a293-119dbe19b339","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDdf8523d5-592d-49f2-a293-119dbe19b339"}},{"type":"ServiceResponse","id":"EID7b9cbe21-6a3a-4381-8dae-2786a7eea46e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID7b9cbe21-6a3a-4381-8dae-2786a7eea46e"}},{"type":"ServiceResponse","id":"EID49922062-a2c8-441f-9aa8-4c00724f3d97","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID49922062-a2c8-441f-9aa8-4c00724f3d97"}},{"type":"GetParameter","id":"EIDa893051b-d569-482d-bbbc-a15857fcc6d7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDcf4ab4d0-77a7-4028-aeb6-d42bb28e7bd1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID4874b72b-b97c-428e-9930-e1412c6acf32","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID23549271-237c-4dd3-b50d-1da45652a67a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4e5685a6-74af-47d4-9524-de559dbfe60d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDf5907d73-391e-46b8-8dfe-7b68a60199f2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID96064ab0-c858-4b14-8b1f-6e767e8ce0ac","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID96064ab0-c858-4b14-8b1f-6e767e8ce0ac"}},{"type":"GetParameter","id":"EID9a3a115d-e281-474e-8fbd-90321c190ef8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDef335cd2-9b8b-401d-82e4-d701ce4bd324","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDef335cd2-9b8b-401d-82e4-d701ce4bd324"}},{"type":"Message","id":"EIDcfa62734-0b55-4626-b336-eb9ece019c96","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDcfa62734-0b55-4626-b336-eb9ece019c96"}},{"type":"ServiceEndpoint","id":"EID0ec97693-9c11-46ed-b863-28617d0e415c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3f064c1e-09e5-4160-903a-bf1c963baf4c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID7d3d1fce-008a-405a-b477-91894056789b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID630e9e62-09f0-4c73-bd85-72cea0cd8eda","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID630e9e62-09f0-4c73-bd85-72cea0cd8eda"}},{"type":"GetParameter","id":"EIDe1f7f84e-bd21-40ab-92fb-39926911984f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID0e52c0a5-fcf5-4e4e-94d3-ea9d20ba2b47","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID4daa1f86-8b02-4bac-a6ee-20c444b55b63","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID232f4a7f-cce1-4067-972f-16b14753f01e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID232f4a7f-cce1-4067-972f-16b14753f01e"}},{"type":"Error","id":"EIDcc199733-8701-4497-8d1c-35cd11294596","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDcc199733-8701-4497-8d1c-35cd11294596"}},{"type":"ServiceResponse","id":"EID00ff4bdf-f8bf-43df-aef5-6edad22ea4b4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID00ff4bdf-f8bf-43df-aef5-6edad22ea4b4"}},{"type":"LogFile","id":"EIDd809bdb2-c719-44dc-bd1f-af1a5f87b165","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDd809bdb2-c719-44dc-bd1f-af1a5f87b165"}},{"type":"ServiceEndpoint","id":"EIDa898e712-045a-404a-9202-046083b100af","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0f73d0e5-01e4-4dce-a3bd-6c8eb2da4af7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb26b7cb7-7a17-4f7b-a63e-813bd6278dfc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDb26b7cb7-7a17-4f7b-a63e-813bd6278dfc"}},{"type":"ServiceResponse","id":"EID18f9431b-6e8f-487d-ba68-2827348d7458","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID18f9431b-6e8f-487d-ba68-2827348d7458"}},{"type":"ServiceEndpoint","id":"EID15cee3ba-dd40-48ec-92ac-c129aeaac38e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDcca5b888-4259-4166-aadd-6b517373c82c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9a450a90-4d26-43c2-8990-b1deb505a2fe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID317752a3-bb1b-42e9-886e-58c34e67bfd2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID317752a3-bb1b-42e9-886e-58c34e67bfd2"}},{"type":"GetParameter","id":"EIDa289910d-c994-4c8d-8b47-c7fdbe909d6c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Error","id":"EID0de887fe-329a-40f5-afec-c0bad7a21926","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID0de887fe-329a-40f5-afec-c0bad7a21926"}},{"type":"ServiceEndpoint","id":"EID7283ffda-3eb2-47f1-a373-6c5402e4bbd0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID72083b60-a738-4a65-8d27-e2ec36d43f32","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID72083b60-a738-4a65-8d27-e2ec36d43f32"}},{"type":"Message","id":"EID2c386c07-bff7-4c93-9c4a-4ed43b06b748","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2c386c07-bff7-4c93-9c4a-4ed43b06b748"}},{"type":"ServiceEndpoint","id":"EID8b201aa4-6993-42be-8c47-766bfe3f360b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID05b71fd5-936f-4de6-9c9e-1e088415506d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID05b71fd5-936f-4de6-9c9e-1e088415506d"}},{"type":"Error","id":"EID4b149621-e3d8-484e-91a2-524e4d8084c2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID4b149621-e3d8-484e-91a2-524e4d8084c2"}},{"type":"Message","id":"EID42efd07a-e6fd-40c5-9b9a-ce913fc69d7a","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID42efd07a-e6fd-40c5-9b9a-ce913fc69d7a"}},{"type":"ServiceResponse","id":"EID5e616899-1468-4b5a-b4f6-95039dcf4f69","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID5e616899-1468-4b5a-b4f6-95039dcf4f69"}},{"type":"GetParameter","id":"EID8504e80f-6dcb-4b68-b4cc-dcf16f4b510e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID2fad90ee-ae33-423a-97a7-3ded157d56c4","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID2fad90ee-ae33-423a-97a7-3ded157d56c4"}},{"type":"GetParameter","id":"EID097fcbe9-249e-46d3-929e-93a0d47c6620","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID0306b981-fd3d-4576-9d53-3aef0d67c407","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID0306b981-fd3d-4576-9d53-3aef0d67c407"}},{"type":"GetParameter","id":"EIDc907df86-63b5-4be6-8b8c-6ab98227d560","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID101d9f48-2308-4d1b-b153-06f7f153ebee","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EID101d9f48-2308-4d1b-b153-06f7f153ebee"}},{"type":"GetParameter","id":"EIDd3d5be19-4b16-4cf6-b705-77c0c9dd3ec4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID8ab4aa3f-1aa7-4298-9aa8-40431000200e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa688b9f0-7144-4a49-a461-c4806ab06804","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDa688b9f0-7144-4a49-a461-c4806ab06804"}},{"type":"ServiceResponse","id":"EIDc846e184-5050-42bd-80f8-990a833675b0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID25b017db-1c8c-4a2d-975b-464e8abba882/Attachments/EIDc846e184-5050-42bd-80f8-990a833675b0"}},{"type":"ServiceEndpoint","id":"EID4760268d-930c-4bdd-8574-18f61f15853a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:10:12Z","duration":10840,"status":"FAILED"}}}}}
11:10:53.967 [print] EID79694b8d-d89e-4ab6-b867-eaa5799017ee
11:10:53.968 [print] FAILED
11:10:53.974 [print] FAILED
11:10:53.977 [print] Conformance Class Download Service - Pre-defined Atom
11:10:53.977 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/79694b8d-d89e-4ab6-b867-eaa5799017ee.json
11:10:53.978 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/79694b8d-d89e-4ab6-b867-eaa5799017ee.json
11:10:53.978 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID79694b8d-d89e-4ab6-b867-eaa5799017ee/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:53.999 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:10:53.999 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:16:22.951 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:16:22.959 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:23.431 response time in milliseconds: 471.66 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:23 GMT 1 < X-Cnection: [close, close]
11:16:23.434 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:23.828 response time in milliseconds: 393.73 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:23 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:23.834 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspireadressen/v2/wfs?service=wfs&request=GetCapabilities"}}}
11:16:23.838 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 297
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspireadressen/v2/wfs?service=wfs&request=GetCapabilities"}}}
11:16:32.319 response time in milliseconds: 8375.63
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:32 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883791723","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:32.319 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:20.912 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/restwarmte/wfs?request=GetCapabilities"}}}
11:13:20.913 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/restwarmte/wfs?request=GetCapabilities"}}}
11:13:22.248 response time in milliseconds: 1331.72
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:22 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883602177","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:22.248 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:33.003 [print] testing url:https://geodata.nationaalgeoregister.nl/mosselenoesterhabitats/wfs?request=GetCapabilities
11:16:33.004 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/mosselenoesterhabitats/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:33.441 response time in milliseconds: 436.52 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:33 GMT 1 < X-Cnection: [close, close]
11:16:33.444 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/mosselenoesterhabitats/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:33.861 response time in milliseconds: 417.12 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:16:33 GMT 1 < X-Cnection: [close, close]
11:16:33.866 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:28.723 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-ro/wfs?request=GetCapabilities&service=WFS"}}}
11:15:28.723 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 292
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-ro/wfs?request=GetCapabilities&service=WFS"}}}
11:15:30.288 response time in milliseconds: 1457.28
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:30 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883730115","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:30.288 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:41.483 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}}}
11:04:41.494 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 289
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}}}
11:04:47.580 response time in milliseconds: 5334.29
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:46 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:04:44 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/558d3592-5522-4907-8694-32ca604ccb78.json","testRuns":{"TestRun":{"id":"EID558d3592-5522-4907-8694-32ca604ccb78","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:43.534Z","testTasks":{"TestTask":{"id":"EID7a92587c-7fa1-4774-9b7a-f9579a4e6451","parent":{"ref":"EID558d3592-5522-4907-8694-32ca604ccb78"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdcbd54fc-bb4c-4992-b216-546f18a84bbe"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdcbd54fc-bb4c-4992-b216-546f18a84bbe","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:41.945Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:43.126Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:04:47.590 [print] EID558d3592-5522-4907-8694-32ca604ccb78
11:04:47.591 [print] UNDEFINED
11:04:47.591 [print] Conformance Class Download Service - Pre-defined Atom
11:04:47.591 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/558d3592-5522-4907-8694-32ca604ccb78.json
11:04:47.592 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/log
11:04:47.592 [print] statuspath TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78
11:04:47.593 [print] progresspath TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
11:04:47.594 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:48.122 response time in milliseconds: 527.22
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:04:48 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized"]}
11:04:48.122 [print] {
"val": "12",
"max": "13",
"log": [
"28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)",
"28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:04:43 - Preparing 1 Test Task:",
"28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)",
"28.10.2020 11:04:43 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:04:43 - with parameters: ",
"28.10.2020 11:04:43 - etf.testcases = *",
"28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:04:43 - Setting state to CREATED",
"28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z",
"28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:04:45 - Project Properties: ",
"28.10.2020 11:04:45 - etf.testcases - * ",
"28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ",
"28.10.2020 11:04:45 - username - ",
"28.10.2020 11:04:45 - authUser - ",
"28.10.2020 11:04:45 - authMethod - basic ",
"28.10.2020 11:04:45 - TestRunTask initialized"
]
}
11:04:48.124 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:48.635 response time in milliseconds: 509.50
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:04:48 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized"]}
11:04:48.636 retry condition not satisfied: response.val == response.max
11:04:48.636 sleeping before retry #1
11:04:53.638 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:54.175 response time in milliseconds: 532.46
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:04:54 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"53","max":"54","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized"]}
11:04:54.176 retry condition not satisfied: response.val == response.max
11:04:54.176 sleeping before retry #2
11:04:59.178 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:59.693 response time in milliseconds: 511.20
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:04:59 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"78","max":"79","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized"]}
11:04:59.694 retry condition not satisfied: response.val == response.max
11:04:59.695 sleeping before retry #3
11:05:04.697 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:05.219 response time in milliseconds: 519.38
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:05:05 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"101","max":"102","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized","28.10.2020 11:05:02 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:05.220 retry condition not satisfied: response.val == response.max
11:05:05.220 sleeping before retry #4
11:05:10.222 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:10.746 response time in milliseconds: 522.63
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:05:10 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"127","max":"128","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized","28.10.2020 11:05:02 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:10.746 retry condition not satisfied: response.val == response.max
11:05:10.746 sleeping before retry #5
11:05:15.747 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:16.560 response time in milliseconds: 810.53
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:05:16 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"160","max":"161","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized","28.10.2020 11:05:02 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:16.566 retry condition not satisfied: response.val == response.max
11:05:16.566 sleeping before retry #6
11:05:21.568 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:22.122 response time in milliseconds: 542.87
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:05:22 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized","28.10.2020 11:05:02 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:21 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:21 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:05:22.125 retry condition not satisfied: response.val == response.max
11:05:22.126 sleeping before retry #7
11:05:27.127 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:27.641 response time in milliseconds: 511.43
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:05:27 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:04:43 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:43 UTC 2020)","28.10.2020 11:04:43 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:43 - Preparing 1 Test Task:","28.10.2020 11:04:43 - TestTask 1 (7a92587c-7fa1-4774-9b7a-f9579a4e6451)","28.10.2020 11:04:43 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:43 - with parameters: ","28.10.2020 11:04:43 - etf.testcases = *","28.10.2020 11:04:43 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:43 - Setting state to CREATED","28.10.2020 11:04:43 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:44 - Starting TestRun.558d3592-5522-4907-8694-32ca604ccb78 at 2020-10-28T11:04:45Z","28.10.2020 11:04:45 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:45 - Project Properties: ","28.10.2020 11:04:45 - etf.testcases - * ","28.10.2020 11:04:45 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml ","28.10.2020 11:04:45 - username - ","28.10.2020 11:04:45 - authUser - ","28.10.2020 11:04:45 - authMethod - basic ","28.10.2020 11:04:45 - TestRunTask initialized","28.10.2020 11:05:02 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:21 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:21 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:05:25 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:05:27.641 retry condition not satisfied: response.val == response.max
11:05:27.641 sleeping before retry #8
11:05:32.642 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:34.649 response time in milliseconds: 2006.02
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:05:34 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:05:34.649 retry condition satisfied
11:05:34.649 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:05:34.652 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:03.479 response time in milliseconds: 27720.63
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Cache-Control: public, max-age=120
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:06:02 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Last-Modified: Wed, 28 Oct 2020 11:05:34 GMT
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/558d3592-5522-4907-8694-32ca604ccb78.json","testRuns":{"TestRun":{"id":"EID558d3592-5522-4907-8694-32ca604ccb78","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:43.534Z","testTasks":{"TestTask":{"id":"EID7a92587c-7fa1-4774-9b7a-f9579a4e6451","parent":{"ref":"EID558d3592-5522-4907-8694-32ca604ccb78"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDdcbd54fc-bb4c-4992-b216-546f18a84bbe"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDdcbd54fc-bb4c-4992-b216-546f18a84bbe","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:41.945Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:43.126Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwateractueel/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6","testObject":{"ref":"EIDdcbd54fc-bb4c-4992-b216-546f18a84bbe"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee1afa8-0175-1000-09cd-397581521421","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1afa9-0175-1000-cf27-35781b473b01","testStepResults":{"TestStepResult":[{"id":"EID6ee1afb6-0175-1000-11de-b6760397910e","parent":{"ref":"EID6ee1afa9-0175-1000-cf27-35781b473b01"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:04:45Z","duration":16,"status":"PASSED"},{"id":"EID6ee1afc7-0175-1000-9a29-e6a5eae93088","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1b276-0175-1000-dd81-e79269cd5c6d","parent":{"ref":"EID6ee1afc7-0175-1000-9a29-e6a5eae93088"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:04:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b276-0175-1000-7ba0-08038e49e79c","parent":{"ref":"EID6ee1afc7-0175-1000-9a29-e6a5eae93088"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:04:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b276-0175-1000-0e40-2ff20117e6ad","parent":{"ref":"EID6ee1afc7-0175-1000-9a29-e6a5eae93088"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:04:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b276-0175-1000-c2c2-532d928941b6","parent":{"ref":"EID6ee1afc7-0175-1000-9a29-e6a5eae93088"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:04:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc40f70e5-7a48-4857-aab1-824e7d99f316"},{"ref":"EID8efa9152-0ade-4840-9f22-f0c7d9f16f56"},{"ref":"EIDa878f6a4-b9b5-469b-8e13-b10e6ae2aa62"}]},"parent":{"ref":"EID6ee1afa9-0175-1000-cf27-35781b473b01"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:04:45Z","duration":426,"status":"PASSED"}]},"parent":{"ref":"EID6ee1afa8-0175-1000-09cd-397581521421"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:04:45Z","duration":728,"status":"PASSED"},{"id":"EID6ee1b281-0175-1000-8469-5ce5f7fee34a","testStepResults":{"TestStepResult":{"id":"EID6ee1b288-0175-1000-0ec8-a9306a344479","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1b4f9-0175-1000-18b6-973e1f0f8197","parent":{"ref":"EID6ee1b288-0175-1000-0ec8-a9306a344479"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b4f9-0175-1000-5fac-55f0df860a16","parent":{"ref":"EID6ee1b288-0175-1000-0ec8-a9306a344479"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b4f9-0175-1000-ee1a-95d8c462edbd","parent":{"ref":"EID6ee1b288-0175-1000-0ec8-a9306a344479"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc46c8658-8869-473d-9068-c4a06a7c04e0"},{"ref":"EID8088d325-47c5-4540-b969-7ca1e6deaf1c"},{"ref":"EID428f8b9e-e529-432c-a2fa-2be6b88f819c"}]},"parent":{"ref":"EID6ee1b281-0175-1000-8469-5ce5f7fee34a"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:04:46Z","duration":511,"status":"PASSED"}},"parent":{"ref":"EID6ee1afa8-0175-1000-09cd-397581521421"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:04:46Z","duration":710,"status":"PASSED"}]},"parent":{"ref":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:04:45Z","duration":1439,"status":"PASSED"},{"id":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1b547-0175-1000-a0c9-e57b3a1d5e03","testStepResults":{"TestStepResult":[{"id":"EID6ee1b547-0175-1000-27c4-5925dc1b2386","parent":{"ref":"EID6ee1b547-0175-1000-a0c9-e57b3a1d5e03"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:04:47Z","duration":511,"status":"PASSED"},{"id":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1b7a9-0175-1000-1d83-625bf3c6fd87","parent":{"ref":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b7a9-0175-1000-20ad-fc1d323ddbec","parent":{"ref":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b7a9-0175-1000-18fc-597ad337bb46","parent":{"ref":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b7a9-0175-1000-8e13-0a1438aebb8c","parent":{"ref":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b7a9-0175-1000-3320-625443c50e58","parent":{"ref":"EID6ee1b547-0175-1000-5cdf-59e3ce7a304f"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:04:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID35c469e7-9e10-48fd-b58a-8f3ec0f8238b"},{"ref":"EID179ee7e2-4645-4bc6-8296-6787f41b1d87"},{"ref":"EID65160cba-0783-4093-82b4-ffcbdfd9a9d0"}]},"parent":{"ref":"EID6ee1b547-0175-1000-a0c9-e57b3a1d5e03"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:04:47Z","duration":507,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:04:47Z","duration":617,"status":"PASSED"},{"id":"EID6ee1b7b0-0175-1000-f82f-db6b7ec1f391","testStepResults":{"TestStepResult":[{"id":"EID6ee1b7b0-0175-1000-f7c8-408f58f01a79","attachments":{"attachment":[{"ref":"EID69a60824-2a3d-445f-854a-f141942414bf"},{"ref":"EIDcf882b72-bd01-4bba-8163-a34319289c55"}]},"parent":{"ref":"EID6ee1b7b0-0175-1000-f82f-db6b7ec1f391"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:04:47Z","duration":214,"status":"PASSED"},{"id":"EID6ee1b8b6-0175-1000-291c-bf8c5e39f887","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1b955-0175-1000-d03e-35df9aa9c9ad","parent":{"ref":"EID6ee1b8b6-0175-1000-291c-bf8c5e39f887"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b955-0175-1000-5aa3-28ffe14879f5","parent":{"ref":"EID6ee1b8b6-0175-1000-291c-bf8c5e39f887"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b955-0175-1000-9ccb-0f791f67bea8","parent":{"ref":"EID6ee1b8b6-0175-1000-291c-bf8c5e39f887"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1b955-0175-1000-4f1e-ba017c1db555","parent":{"ref":"EID6ee1b8b6-0175-1000-291c-bf8c5e39f887"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID54d1b076-c1e7-48c0-8a41-1911746fc029"},{"ref":"EIDefdf3744-9a00-4126-9416-2b9edb9fc6c1"},{"ref":"EID3ebcde23-da22-41eb-a0ac-90fc99324383"}]},"parent":{"ref":"EID6ee1b7b0-0175-1000-f82f-db6b7ec1f391"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:04:48Z","duration":64,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:04:47Z","duration":421,"status":"PASSED"},{"id":"EID6ee1b956-0175-1000-7b02-16bf32ab896f","testStepResults":{"TestStepResult":[{"id":"EID6ee1b956-0175-1000-718a-064cafeb755f","attachments":{"attachment":[{"ref":"EID7edd4179-9bcf-4630-81c4-bef1c25f5f63"},{"ref":"EIDab32fe4c-6aa4-4443-955a-4a493326544e"}]},"parent":{"ref":"EID6ee1b956-0175-1000-7b02-16bf32ab896f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:04:48Z","duration":111,"status":"PASSED"},{"id":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1bad9-0175-1000-8eb5-1e3c7682418d","parent":{"ref":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bad9-0175-1000-5b02-fbe2b75aeeac","parent":{"ref":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bad9-0175-1000-92f1-3714431381db","parent":{"ref":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bad9-0175-1000-6051-8d603487550c","parent":{"ref":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bad9-0175-1000-d05e-049c5c0b9acf","parent":{"ref":"EID6ee1b9ff-0175-1000-2a0e-d93ed8b6023e"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdce97736-dadf-4c23-9b98-2b32b72099f8"},{"ref":"EID4bdc8d55-ae68-4b8c-bfed-e0e070f48b10"},{"ref":"EID5800aa6d-f83b-4c00-bcc3-8db63af5849b"}]},"parent":{"ref":"EID6ee1b956-0175-1000-7b02-16bf32ab896f"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:04:48Z","duration":107,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:04:48Z","duration":387,"status":"PASSED"},{"id":"EID6ee1bada-0175-1000-b088-8bf2274f2216","testStepResults":{"TestStepResult":[{"id":"EID6ee1bada-0175-1000-8fba-97ee6fa345b8","attachments":{"attachment":[{"ref":"EID088698ac-714c-4ba6-a169-49db0b1897ad"},{"ref":"EIDb196e061-ddcc-486d-a34a-7bf7a47d0d7b"}]},"parent":{"ref":"EID6ee1bada-0175-1000-b088-8bf2274f2216"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:04:48Z","duration":191,"status":"PASSED"},{"id":"EID6ee1bbde-0175-1000-1430-924b5e7d04c7","parent":{"ref":"EID6ee1bada-0175-1000-b088-8bf2274f2216"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:04:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bbde-0175-1000-0964-d79128f7a93a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1bc69-0175-1000-d8c5-dfc7b9e9a485","parent":{"ref":"EID6ee1bbde-0175-1000-0964-d79128f7a93a"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bc69-0175-1000-ab4f-e4c69a6cf609","parent":{"ref":"EID6ee1bbde-0175-1000-0964-d79128f7a93a"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bc69-0175-1000-323d-2fe6408d9585","parent":{"ref":"EID6ee1bbde-0175-1000-0964-d79128f7a93a"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1bc69-0175-1000-a46b-0221f4178bf3","parent":{"ref":"EID6ee1bbde-0175-1000-0964-d79128f7a93a"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe97eea67-2e97-42d7-8a77-96e0557ff66a"},{"ref":"EID4ffcb0bb-f572-4787-a0c0-9df5a9633e05"},{"ref":"EIDd4e0ee9d-ede6-4f66-96a7-50b393874d40"}]},"parent":{"ref":"EID6ee1bada-0175-1000-b088-8bf2274f2216"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:04:48Z","duration":47,"status":"PASSED"},{"id":"EID6ee1bc69-0175-1000-f4ba-14f2be93af71","attachments":{"attachment":{"ref":"EID3c4798a3-0e03-426e-8caf-9a30263b30e5"}},"parent":{"ref":"EID6ee1bada-0175-1000-b088-8bf2274f2216"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:04:49Z","duration":1,"status":"PASSED"},{"id":"EID6ee1bced-0175-1000-c377-cf5cde23eb24","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1be85-0175-1000-d843-ca0832e7aa44","parent":{"ref":"EID6ee1bced-0175-1000-c377-cf5cde23eb24"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1be85-0175-1000-97e7-ee681ff5f5a5","parent":{"ref":"EID6ee1bced-0175-1000-c377-cf5cde23eb24"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1be85-0175-1000-93a0-b035f5172578","parent":{"ref":"EID6ee1bced-0175-1000-c377-cf5cde23eb24"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1be85-0175-1000-8c47-65c3f13c4525","parent":{"ref":"EID6ee1bced-0175-1000-c377-cf5cde23eb24"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee1be85-0175-1000-c94f-eafdb1197d63","parent":{"ref":"EID6ee1bced-0175-1000-c377-cf5cde23eb24"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:04:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbe87dee4-fd3e-4cfd-b7ea-45b658d3e7c2"},{"ref":"EID5f3b0a7c-6d82-4bec-888d-58082e56bc8f"},{"ref":"EID9a600679-8767-4d46-a90b-eefad7533aa6"}]},"parent":{"ref":"EID6ee1bada-0175-1000-b088-8bf2274f2216"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:04:49Z","duration":138,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:04:48Z","duration":951,"status":"PASSED"},{"id":"EID6ee1be91-0175-1000-143a-541162bc98fc","testStepResults":{"TestStepResult":[{"id":"EID6ee1be91-0175-1000-351b-d00670f512de","attachments":{"attachment":[{"ref":"EIDa8c1d037-d390-40e2-a91f-3d10a242e135"},{"ref":"EIDb964916c-f905-4d99-8869-d37e155ce111"}]},"parent":{"ref":"EID6ee1be91-0175-1000-143a-541162bc98fc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:04:49Z","duration":581,"status":"PASSED"},{"id":"EID6ee1c120-0175-1000-8969-c8e3f56aa06c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1c1dd-0175-1000-e937-1e0a227ee927","parent":{"ref":"EID6ee1c120-0175-1000-8969-c8e3f56aa06c"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:04:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c1dd-0175-1000-8c24-d6de77aaa529","parent":{"ref":"EID6ee1c120-0175-1000-8969-c8e3f56aa06c"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:04:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c1dd-0175-1000-1282-2f0fb3dbbe08","parent":{"ref":"EID6ee1c120-0175-1000-8969-c8e3f56aa06c"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:04:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c1de-0175-1000-9b38-32f91eb5da1b","parent":{"ref":"EID6ee1c120-0175-1000-8969-c8e3f56aa06c"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:04:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbc35a7ed-a683-47b6-ae19-31c444afcb67"},{"ref":"EID1ed156fb-9b14-4a17-b3f2-aaa59dca16bf"},{"ref":"EIDf9a84d0f-348b-443b-a6f5-b9157f480949"}]},"parent":{"ref":"EID6ee1be91-0175-1000-143a-541162bc98fc"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:04:50Z","duration":73,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:04:49Z","duration":845,"status":"PASSED"},{"id":"EID6ee1c1de-0175-1000-7bb4-99dec2380038","testStepResults":{"TestStepResult":[{"id":"EID6ee1c1de-0175-1000-9bcf-f525152e5261","attachments":{"attachment":[{"ref":"EID6d781d52-9e28-444c-afe0-f10497f9bcfb"},{"ref":"EIDa0f9d350-2cb2-4ee0-86e7-defbc77b5dc0"}]},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:04:50Z","duration":363,"status":"PASSED"},{"id":"EID6ee1c378-0175-1000-61fa-f6b14d9e4800","parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:04:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c378-0175-1000-8b5c-4e132c4ce499","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1c519-0175-1000-9a5f-bb27392a3621","parent":{"ref":"EID6ee1c378-0175-1000-8b5c-4e132c4ce499"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c519-0175-1000-fbab-464f52f37e5e","parent":{"ref":"EID6ee1c378-0175-1000-8b5c-4e132c4ce499"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c519-0175-1000-3151-617bfa4fdcf4","parent":{"ref":"EID6ee1c378-0175-1000-8b5c-4e132c4ce499"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c519-0175-1000-01f6-da940192ac11","parent":{"ref":"EID6ee1c378-0175-1000-8b5c-4e132c4ce499"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5b7650c3-ff0e-48b4-8f28-928a169be4c4"},{"ref":"EID2488dea2-e097-4119-99a8-627a47d9e91d"},{"ref":"EIDe3e71e10-7205-47f0-8542-0906d8fd6961"}]},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:04:50Z","duration":277,"status":"PASSED"},{"id":"EID6ee1c519-0175-1000-b407-4efc8ace17d3","attachments":{"attachment":{"ref":"EIDa788e374-4066-4283-9bca-1c7035f95be4"}},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:04:51Z","duration":1,"status":"PASSED"},{"id":"EID6ee1c525-0175-1000-3dc8-095b037958dc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1c629-0175-1000-09aa-2db7e96474b7","parent":{"ref":"EID6ee1c525-0175-1000-3dc8-095b037958dc"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c629-0175-1000-b184-a5b44a120af4","parent":{"ref":"EID6ee1c525-0175-1000-3dc8-095b037958dc"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c629-0175-1000-ef3b-ad728bcb9422","parent":{"ref":"EID6ee1c525-0175-1000-3dc8-095b037958dc"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID29cc68e4-9268-42e5-a18e-a18f00e6e4fb"},{"ref":"EID84b81139-abaf-4977-8eb6-7e11c38b0b57"},{"ref":"EID4b6ebe99-4cd6-40ff-b89d-ad8587fc0e5f"}]},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:04:51Z","duration":170,"status":"PASSED"},{"id":"EID6ee1c629-0175-1000-8d87-0358a501201d","attachments":{"attachment":{"ref":"EID560fb8b0-78b4-4f96-8599-f729991bd57c"}},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:04:51Z","duration":1,"status":"PASSED"},{"id":"EID6ee1c635-0175-1000-c884-dfdf92f9233f","attachments":{"attachment":{"ref":"EID2dba4e25-0d05-4f82-bee2-6979925afecf"}},"parent":{"ref":"EID6ee1c1de-0175-1000-7bb4-99dec2380038"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:04:51Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:04:50Z","duration":1125,"status":"PASSED"},{"id":"EID6ee1c644-0175-1000-54fb-cffff74bce73","testStepResults":{"TestStepResult":[{"id":"EID6ee1c644-0175-1000-f911-a40d37a6d447","attachments":{"attachment":[{"ref":"EIDe97bb2a6-dc1b-40c5-9eef-687b777c74b0"},{"ref":"EID1630d459-f5c2-46b9-b482-baa82b9a2bc8"}]},"parent":{"ref":"EID6ee1c644-0175-1000-54fb-cffff74bce73"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:04:51Z","duration":201,"status":"PASSED"},{"id":"EID6ee1c738-0175-1000-0ab3-adf175e7ed66","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1c81e-0175-1000-7db2-d52142a5f925","parent":{"ref":"EID6ee1c738-0175-1000-0ab3-adf175e7ed66"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c81e-0175-1000-50db-63d69390cb05","parent":{"ref":"EID6ee1c738-0175-1000-0ab3-adf175e7ed66"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c81e-0175-1000-2068-3044e0ffa45c","parent":{"ref":"EID6ee1c738-0175-1000-0ab3-adf175e7ed66"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee1c81e-0175-1000-a266-b5d9e8bd9180","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee1c738-0175-1000-0ab3-adf175e7ed66"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:04:51Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDac2f2344-e4d0-47be-9038-5db771952268"},{"ref":"EID4194b0c9-a4ce-4d0e-8621-e18054518e55"},{"ref":"EID898c9e13-63e2-455f-8309-1edd22548abf"}]},"parent":{"ref":"EID6ee1c644-0175-1000-54fb-cffff74bce73"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:04:51Z","duration":119,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:04:51Z","duration":474,"status":"PASSED_MANUAL"},{"id":"EID6ee1c81f-0175-1000-a92e-25df497b7428","testStepResults":{"TestStepResult":{"id":"EID6ee1c81f-0175-1000-6527-3bebd95a00e7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1cac1-0175-1000-9d3b-0a0566256be3","parent":{"ref":"EID6ee1c81f-0175-1000-6527-3bebd95a00e7"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:04:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cac2-0175-1000-7949-c9622caa8138","parent":{"ref":"EID6ee1c81f-0175-1000-6527-3bebd95a00e7"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:04:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cac2-0175-1000-e6fa-582f9b0d7faa","parent":{"ref":"EID6ee1c81f-0175-1000-6527-3bebd95a00e7"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:04:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cac2-0175-1000-e38a-39c6bad0d097","parent":{"ref":"EID6ee1c81f-0175-1000-6527-3bebd95a00e7"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:04:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID00b445e3-7404-4723-a8fc-7e39869e35bc"},{"ref":"EID826aeec7-6fbd-45e1-a2c6-0d5b9a876a3e"},{"ref":"EIDf29dc041-7193-4fc9-966b-7ad8c44524c0"}]},"parent":{"ref":"EID6ee1c81f-0175-1000-a92e-25df497b7428"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:04:51Z","duration":580,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:04:51Z","duration":675,"status":"PASSED"},{"id":"EID6ee1cac2-0175-1000-8acb-fe2f4a01b640","testStepResults":{"TestStepResult":{"id":"EID6ee1cac2-0175-1000-1416-b6ecbef6d1df","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1cdf3-0175-1000-f278-e25f73ae0531","parent":{"ref":"EID6ee1cac2-0175-1000-1416-b6ecbef6d1df"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cdf4-0175-1000-4a18-cc4409793f59","parent":{"ref":"EID6ee1cac2-0175-1000-1416-b6ecbef6d1df"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cdf4-0175-1000-6aad-1918cf9b4b3a","parent":{"ref":"EID6ee1cac2-0175-1000-1416-b6ecbef6d1df"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee1cdf4-0175-1000-6c6b-db6e02c445ca","parent":{"ref":"EID6ee1cac2-0175-1000-1416-b6ecbef6d1df"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:04:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb7b94707-bbfd-4971-b002-2c43e469dff3"},{"ref":"EID7747db51-0b05-4830-9913-aa6cda4b966c"},{"ref":"EIDb131529c-f9ba-4c11-88e5-c73ab78bbb73"}]},"parent":{"ref":"EID6ee1cac2-0175-1000-8acb-fe2f4a01b640"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:04:52Z","duration":716,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:04:52Z","duration":818,"status":"PASSED"},{"id":"EID6ee1cdf4-0175-1000-eddb-7d6988390ce8","testStepResults":{"TestStepResult":[{"id":"EID6ee1cdf4-0175-1000-f86d-c6123a304bb2","attachments":{"attachment":[{"ref":"EIDe45c990f-4ef3-41c3-8e00-cdbecb08913c"},{"ref":"EID2ebc45cd-cf33-4fec-8af3-146c97a54526"},{"ref":"EID490455cb-6d73-4cc2-8b07-d2ff3321c541"},{"ref":"EID3bcd60e1-6b9b-4b09-b728-522357fe2d48"},{"ref":"EID2046708e-91b0-498a-bdde-09085cd73a5e"},{"ref":"EIDdd5df964-b4be-443f-b70a-993ed30997be"},{"ref":"EID1a4fbbf4-57a5-40fd-86a3-61cff775dfac"},{"ref":"EID1dcdeda6-9898-453b-bd68-02819682c7dd"},{"ref":"EID6253c111-1ca0-47d7-91c3-89eebbd0ff21"},{"ref":"EIDd4ea33f3-5086-4b0f-be41-8f149c7e0689"},{"ref":"EIDc1ae037a-4d51-4cbf-99a0-18e6f9b8d3b5"},{"ref":"EID6c6128cf-44db-4329-8058-a689434e8ca8"}]},"parent":{"ref":"EID6ee1cdf4-0175-1000-eddb-7d6988390ce8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:04:53Z","duration":993,"status":"PASSED"},{"id":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1d791-0175-1000-094f-e0eeac4d68d3","parent":{"ref":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d791-0175-1000-059e-47852a146e1b","parent":{"ref":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d791-0175-1000-f21b-843455f051ef","parent":{"ref":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d791-0175-1000-e12b-e0bdb642251c","parent":{"ref":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d791-0175-1000-03fe-cd0f653bbcd6","parent":{"ref":"EID6ee1d33e-0175-1000-fdf5-a108fcb3d77e"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:04:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb70ee7f6-1e49-46b9-8441-91a873191b11"},{"ref":"EID780e10f7-07d5-4d63-bfaa-edd59f4d6b60"},{"ref":"EID4f8e91ac-2bfa-4076-b3fa-d300fc469379"}]},"parent":{"ref":"EID6ee1cdf4-0175-1000-eddb-7d6988390ce8"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:04:54Z","duration":943,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:04:53Z","duration":2462,"status":"PASSED"},{"id":"EID6ee1d792-0175-1000-db33-b694bc450fbe","testStepResults":{"TestStepResult":{"id":"EID6ee1d79a-0175-1000-46ab-6484040d809f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1d954-0175-1000-9ead-c1e6ffcae408","parent":{"ref":"EID6ee1d79a-0175-1000-46ab-6484040d809f"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d954-0175-1000-9ada-5f7f6fe6f635","parent":{"ref":"EID6ee1d79a-0175-1000-46ab-6484040d809f"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d954-0175-1000-9d4c-5ab5d0bbb8e7","parent":{"ref":"EID6ee1d79a-0175-1000-46ab-6484040d809f"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee1d954-0175-1000-c4a5-8c2abedc5d15","parent":{"ref":"EID6ee1d79a-0175-1000-46ab-6484040d809f"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:04:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID535c4621-570b-4e21-88c6-42ab6a47c6c3"},{"ref":"EID8ac7cad5-a1b0-4984-900d-d5430f88123b"},{"ref":"EID38d1f60b-aad5-4dc6-9826-fa82f2fc897f"}]},"parent":{"ref":"EID6ee1d792-0175-1000-db33-b694bc450fbe"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:04:55Z","duration":334,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:04:55Z","duration":450,"status":"PASSED"},{"id":"EID6ee1d954-0175-1000-daa2-37a8c4da029a","testStepResults":{"TestStepResult":{"id":"EID6ee1d954-0175-1000-9597-c084378f4855","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1dbcb-0175-1000-5764-70b6473b7150","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-125a-fe2aaff457e7","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-d2bd-791d7a1e960e","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-4704-7f77abe4c21f","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-cd81-4496d17b71d6","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-246c-01d565807172","parent":{"ref":"EID6ee1d954-0175-1000-9597-c084378f4855"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:04:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcc0d47ca-1cdf-4768-9ba4-f962c056e28d"},{"ref":"EIDfc9ca6ba-daf0-4a06-a1fb-d5a97337d7d9"},{"ref":"EIDb35a2337-dac2-483b-abe9-acf671502ab3"}]},"parent":{"ref":"EID6ee1d954-0175-1000-daa2-37a8c4da029a"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:04:56Z","duration":479,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:04:56Z","duration":631,"status":"PASSED"},{"id":"EID6ee1dbcb-0175-1000-ab62-0bcf51eb5305","testStepResults":{"TestStepResult":{"id":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1dfa5-0175-1000-2c48-64115266a4fc","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfa5-0175-1000-4f44-d9528e4fee53","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfa5-0175-1000-eae8-9e3fb61d9603","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfa5-0175-1000-706d-7ef8d89e4ce8","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfa5-0175-1000-f0da-a10ca89ab769","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1dfa5-0175-1000-de0a-c81f2e991bef","parent":{"ref":"EID6ee1dbcb-0175-1000-69fc-e148fe6dba7f"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc16969ba-a47c-4db9-9cf7-d1b2f4656cec"},{"ref":"EIDcd6156f8-dcfc-44ab-b132-5d3063c1703e"},{"ref":"EID2d9f2cb3-cc2a-4e19-97bf-08813b26930c"}]},"parent":{"ref":"EID6ee1dbcb-0175-1000-ab62-0bcf51eb5305"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:04:57Z","duration":853,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:04:57Z","duration":986,"status":"PASSED"},{"id":"EID6ee1dfa6-0175-1000-1318-b26537acfbef","testStepResults":{"TestStepResult":{"id":"EID6ee1dfaf-0175-1000-1c7a-341c69b2e5cf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e2bf-0175-1000-af1c-e42a9688b865","parent":{"ref":"EID6ee1dfaf-0175-1000-1c7a-341c69b2e5cf"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e2bf-0175-1000-2eb3-698a4ba024ec","parent":{"ref":"EID6ee1dfaf-0175-1000-1c7a-341c69b2e5cf"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e2bf-0175-1000-801c-18272a658a95","parent":{"ref":"EID6ee1dfaf-0175-1000-1c7a-341c69b2e5cf"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e2bf-0175-1000-6524-5d5cbb9fdf2c","parent":{"ref":"EID6ee1dfaf-0175-1000-1c7a-341c69b2e5cf"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:04:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID475902d2-62c7-4524-bfd1-86c0672af4b2"},{"ref":"EID5bb5bad6-7de0-4b43-9538-cc224052b6e9"},{"ref":"EIDbbbb9257-69de-4334-9285-669ed6b8ffe8"}]},"parent":{"ref":"EID6ee1dfa6-0175-1000-1318-b26537acfbef"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:04:58Z","duration":650,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:04:58Z","duration":793,"status":"PASSED"},{"id":"EID6ee1e2bf-0175-1000-c858-cf3ca4d94a60","testStepResults":{"TestStepResult":[{"id":"EID6ee1e2bf-0175-1000-d040-5735e0b3f5b6","attachments":{"attachment":[{"ref":"EID93e5b6ee-478e-4ed3-898c-20174804fa72"},{"ref":"EID3b3c45fa-7562-4a04-94eb-23a97b038a49"},{"ref":"EIDee335dbc-23a5-46f2-a7a3-9ca96a976ed8"},{"ref":"EIDf8723529-5c26-47a6-b6c9-08d7f6c2c255"}]},"parent":{"ref":"EID6ee1e2bf-0175-1000-c858-cf3ca4d94a60"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:04:58Z","duration":1015,"status":"PASSED"},{"id":"EID6ee1e6f2-0175-1000-9377-37e0b18e6927","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1e86e-0175-1000-b90a-66f896a82cfc","parent":{"ref":"EID6ee1e6f2-0175-1000-9377-37e0b18e6927"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e86e-0175-1000-b75f-2fca0df6636c","parent":{"ref":"EID6ee1e6f2-0175-1000-9377-37e0b18e6927"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e86e-0175-1000-0559-1f9c0c3330fb","parent":{"ref":"EID6ee1e6f2-0175-1000-9377-37e0b18e6927"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee1e86e-0175-1000-b8d0-2ce5187f28b8","parent":{"ref":"EID6ee1e6f2-0175-1000-9377-37e0b18e6927"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:05:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3ae6a2f5-ebae-4de1-af3d-8598b857f780"},{"ref":"EIDb6d48779-4eb5-4e64-a2eb-3741f59c4509"},{"ref":"EID3c18e31e-3e11-4bcf-b498-b18f1392af97"}]},"parent":{"ref":"EID6ee1e2bf-0175-1000-c858-cf3ca4d94a60"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:04:59Z","duration":200,"status":"PASSED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:04:58Z","duration":1467,"status":"PASSED"},{"id":"EID6ee1e87a-0175-1000-ab1a-ab41db6d19c1","testStepResults":{"TestStepResult":{"id":"EID6ee1e87b-0175-1000-5296-418bfbdc9dbe","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1ed4c-0175-1000-5abd-8c87c78b342f","parent":{"ref":"EID6ee1e87b-0175-1000-5296-418bfbdc9dbe"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed4c-0175-1000-018e-aff6f0659cc0","parent":{"ref":"EID6ee1e87b-0175-1000-5296-418bfbdc9dbe"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed4c-0175-1000-f653-a11ca3891300","parent":{"ref":"EID6ee1e87b-0175-1000-5296-418bfbdc9dbe"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed4c-0175-1000-479d-c0f1a3961831","parent":{"ref":"EID6ee1e87b-0175-1000-5296-418bfbdc9dbe"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID99eaffce-1092-48fa-ac7e-0041e06c20d4"},{"ref":"EIDf3bf2a08-d351-41a3-a098-92d038c4a265"},{"ref":"EID6539e029-6d3f-49f9-a0ff-5a94fea03be1"}]},"parent":{"ref":"EID6ee1e87a-0175-1000-ab1a-ab41db6d19c1"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:05:00Z","duration":1013,"status":"PASSED"}},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:05:00Z","duration":1241,"status":"PASSED"},{"id":"EID6ee1ed54-0175-1000-b64a-399729632c09","testStepResults":{"TestStepResult":[{"id":"EID6ee1ed54-0175-1000-eb9e-d1cf92be439b","parent":{"ref":"EID6ee1ed54-0175-1000-b64a-399729632c09"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:05:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee1ed54-0175-1000-8eeb-5a84a90785c2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f00e-0175-1000-1f72-cd9f1400e6c2","parent":{"ref":"EID6ee1ed54-0175-1000-8eeb-5a84a90785c2"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f00e-0175-1000-6089-7ac025653904","parent":{"ref":"EID6ee1ed54-0175-1000-8eeb-5a84a90785c2"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f00e-0175-1000-66e0-859c56413f0a","parent":{"ref":"EID6ee1ed54-0175-1000-8eeb-5a84a90785c2"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f00e-0175-1000-2878-53066d4bcb14","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee1ed54-0175-1000-8eeb-5a84a90785c2"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:05:02Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID12f13c00-b8f1-441f-b7c8-e579c92d2281"},{"ref":"EID5972309b-0dfe-4406-837e-dca68dff3ea3"},{"ref":"EIDbc4152a3-6401-445e-8dd0-ef891d069e1c"}]},"parent":{"ref":"EID6ee1ed54-0175-1000-b64a-399729632c09"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:05:01Z","duration":569,"status":"FAILED"}]},"parent":{"ref":"EID6ee1b547-0175-1000-ce06-96ec911cd3f2"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:05:01Z","duration":699,"status":"FAILED"}]},"parent":{"ref":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:04:47Z","duration":15048,"status":"FAILED"},{"id":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315","testCaseResults":{"TestCaseResult":[{"id":"EID6ee1f00f-0175-1000-100a-92c7f957a3df","testStepResults":{"TestStepResult":[{"id":"EID6ee1f00f-0175-1000-540d-fb7cfa45dcb0","parent":{"ref":"EID6ee1f00f-0175-1000-100a-92c7f957a3df"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f00f-0175-1000-31f5-8e4258392487","parent":{"ref":"EID6ee1f00f-0175-1000-100a-92c7f957a3df"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:05:02Z","duration":1013,"status":"PASSED"},{"id":"EID6ee1f00f-0175-1000-2532-fc5b248e2cef","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f53e-0175-1000-eaf9-39cbfb78221e","parent":{"ref":"EID6ee1f00f-0175-1000-2532-fc5b248e2cef"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f53e-0175-1000-8722-cb058adeae95","parent":{"ref":"EID6ee1f00f-0175-1000-2532-fc5b248e2cef"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f53e-0175-1000-c9bc-066f90adc8b0","parent":{"ref":"EID6ee1f00f-0175-1000-2532-fc5b248e2cef"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8750cf26-7a7d-47b2-b1d8-94e491abe179"},{"ref":"EID990a9cbd-13b3-4e8e-a127-81172cbcf3fc"},{"ref":"EID8369c7d6-e0ce-40ca-bffe-038f4b4b5a6b"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-100a-92c7f957a3df"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:05:02Z","duration":1214,"status":"PASSED"},{"id":"EID6ee1f53e-0175-1000-1c33-a432d4146aba","attachments":{"attachment":{"ref":"EID45a815c3-d63a-4d3e-bb71-3399356ba429"}},"parent":{"ref":"EID6ee1f00f-0175-1000-100a-92c7f957a3df"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:05:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f549-0175-1000-c8af-73bb4a4b2a86","parent":{"ref":"EID6ee1f00f-0175-1000-100a-92c7f957a3df"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:05:03Z","duration":13,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:05:02Z","duration":1352,"status":"PASSED"},{"id":"EID6ee1f557-0175-1000-ce8d-edc0463033a7","testStepResults":{"TestStepResult":[{"id":"EID6ee1f557-0175-1000-94cb-6ad79fa2ffa9","parent":{"ref":"EID6ee1f557-0175-1000-ce8d-edc0463033a7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:05:03Z","duration":511,"status":"PASSED"},{"id":"EID6ee1f557-0175-1000-5c13-59e38d515a04","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f74d-0175-1000-ba3b-b6d9f25159a4","parent":{"ref":"EID6ee1f557-0175-1000-5c13-59e38d515a04"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f74d-0175-1000-9fb8-89a7d9c41034","parent":{"ref":"EID6ee1f557-0175-1000-5c13-59e38d515a04"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f74d-0175-1000-b5fc-2e5807844f8e","parent":{"ref":"EID6ee1f557-0175-1000-5c13-59e38d515a04"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f74d-0175-1000-8bb1-e295c7082000","parent":{"ref":"EID6ee1f557-0175-1000-5c13-59e38d515a04"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f74d-0175-1000-0615-623e7a54e647","parent":{"ref":"EID6ee1f557-0175-1000-5c13-59e38d515a04"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID54421fca-4576-4338-b6bf-de28739dbcd2"},{"ref":"EID0aef387f-d5a7-438e-80db-bc4c0f880249"},{"ref":"EIDea66f765-484d-4044-9128-d1faec573afd"}]},"parent":{"ref":"EID6ee1f557-0175-1000-ce8d-edc0463033a7"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:05:03Z","duration":431,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:05:03Z","duration":502,"status":"PASSED"},{"id":"EID6ee1f74d-0175-1000-d0ab-8baea4dad672","testStepResults":{"TestStepResult":[{"id":"EID6ee1f74d-0175-1000-5af4-e5e1d98fb901","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1f868-0175-1000-a54f-c5a086994a03","parent":{"ref":"EID6ee1f74d-0175-1000-5af4-e5e1d98fb901"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f868-0175-1000-5079-84556b412602","parent":{"ref":"EID6ee1f74d-0175-1000-5af4-e5e1d98fb901"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee1f868-0175-1000-35de-12388afe5ef8","parent":{"ref":"EID6ee1f74d-0175-1000-5af4-e5e1d98fb901"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:05:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID11205dc5-c323-4941-8ea7-60a7ed200e26"},{"ref":"EIDa8cdc7c6-481b-4d58-ac31-0e0a9591c878"},{"ref":"EID3785ed4e-50f7-45ac-95c2-a311551185b6"}]},"parent":{"ref":"EID6ee1f74d-0175-1000-d0ab-8baea4dad672"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:05:04Z","duration":205,"status":"PASSED"},{"id":"EID6ee1f868-0175-1000-75fc-f6fafb5103a7","attachments":{"attachment":{"ref":"EIDe9e828e7-ff8b-4c4e-b3e9-4d179b6dac46"}},"parent":{"ref":"EID6ee1f74d-0175-1000-d0ab-8baea4dad672"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:05:04Z","duration":1,"status":"PASSED"},{"id":"EID6ee1f874-0175-1000-d8c8-df1660922e08","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee1fd8f-0175-1000-9f29-f15e54b621ab","parent":{"ref":"EID6ee1f874-0175-1000-d8c8-df1660922e08"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fd8f-0175-1000-1276-a79f4856b142","parent":{"ref":"EID6ee1f874-0175-1000-d8c8-df1660922e08"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fd8f-0175-1000-4506-963e3e8a1aa9","parent":{"ref":"EID6ee1f874-0175-1000-d8c8-df1660922e08"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fd8f-0175-1000-c29e-c2360a97db2d","parent":{"ref":"EID6ee1f874-0175-1000-d8c8-df1660922e08"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee1fd8f-0175-1000-4488-a9ec03ca39df","parent":{"ref":"EID6ee1f874-0175-1000-d8c8-df1660922e08"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:05:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4d9023dd-4fa1-4bed-a47b-ca6b91042d48"},{"ref":"EID780a855d-78ff-4ff0-8274-01ef29dcb3d5"},{"ref":"EID2bbd8c9d-e7cf-47ab-862a-4ebe5e96cd23"}]},"parent":{"ref":"EID6ee1f74d-0175-1000-d0ab-8baea4dad672"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:05:04Z","duration":1214,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:05:04Z","duration":1602,"status":"PASSED"},{"id":"EID6ee1fd8f-0175-1000-0889-4cad27837c30","testStepResults":{"TestStepResult":[{"id":"EID6ee1fd8f-0175-1000-378a-15d6a61a7934","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20345-0175-1000-b3fc-ebf8588f9a34","parent":{"ref":"EID6ee1fd8f-0175-1000-378a-15d6a61a7934"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20346-0175-1000-8349-91671dabdb7b","parent":{"ref":"EID6ee1fd8f-0175-1000-378a-15d6a61a7934"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20346-0175-1000-9e1c-53246efc1e87","parent":{"ref":"EID6ee1fd8f-0175-1000-378a-15d6a61a7934"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee20346-0175-1000-9e0c-840932b7a6f9","parent":{"ref":"EID6ee1fd8f-0175-1000-378a-15d6a61a7934"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID92af3605-2b5e-4034-9655-2aeb4b583ba5"},{"ref":"EID65997c03-be6a-4bf8-baff-465bdf41d434"},{"ref":"EIDaa856964-ba13-4d29-a03a-f2f6f4c5cd02"}]},"parent":{"ref":"EID6ee1fd8f-0175-1000-0889-4cad27837c30"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:05:05Z","duration":1319,"status":"PASSED"},{"id":"EID6ee20346-0175-1000-6320-c5871926fe03","attachments":{"attachment":{"ref":"EID235ecbfb-8fd2-4440-b7fb-606e09e557e9"}},"parent":{"ref":"EID6ee1fd8f-0175-1000-0889-4cad27837c30"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:05:07Z","duration":2,"status":"PASSED"},{"id":"EID6ee20355-0175-1000-e934-748a14154424","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2043f-0175-1000-7afe-0838da383f6f","parent":{"ref":"EID6ee20355-0175-1000-e934-748a14154424"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee2043f-0175-1000-4f6b-99a85a88c4ad","parent":{"ref":"EID6ee20355-0175-1000-e934-748a14154424"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd52c0c79-246f-4279-ba8d-8aef727a5bd7"},{"ref":"EID5deeb5ef-1a18-4c87-a914-1b82960d915a"}]},"parent":{"ref":"EID6ee1fd8f-0175-1000-0889-4cad27837c30"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:05:07Z","duration":231,"status":"PASSED"},{"id":"EID6ee2043f-0175-1000-1ecf-76c1e81d8424","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2058a-0175-1000-f4b1-5fe675c456c1","parent":{"ref":"EID6ee2043f-0175-1000-1ecf-76c1e81d8424"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee2058a-0175-1000-3ab5-2f13f922f6f3","parent":{"ref":"EID6ee2043f-0175-1000-1ecf-76c1e81d8424"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee2058a-0175-1000-1948-f89fdef7288a","parent":{"ref":"EID6ee2043f-0175-1000-1ecf-76c1e81d8424"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"},{"id":"EID6ee2058a-0175-1000-8ac3-88bab6f1c545","parent":{"ref":"EID6ee2043f-0175-1000-1ecf-76c1e81d8424"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:05:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0fceb318-2cde-483f-9f3a-13000c3bc33d"},{"ref":"EID9cc7e53b-b33f-45d1-992a-0df875dadfa0"},{"ref":"EID768cfd05-b04f-4c98-be3d-f04bcaf901a3"}]},"parent":{"ref":"EID6ee1fd8f-0175-1000-0889-4cad27837c30"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:05:07Z","duration":255,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:05:05Z","duration":2053,"status":"PASSED"},{"id":"EID6ee20594-0175-1000-9619-465df1687ffb","testStepResults":{"TestStepResult":{"id":"EID6ee20594-0175-1000-0d16-4b525e9a8684","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee209fb-0175-1000-622e-ba6c0c460acd","parent":{"ref":"EID6ee20594-0175-1000-0d16-4b525e9a8684"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee209fb-0175-1000-fe3c-58397ed435ba","parent":{"ref":"EID6ee20594-0175-1000-0d16-4b525e9a8684"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee209fb-0175-1000-8304-f7a8fdb8aac4","parent":{"ref":"EID6ee20594-0175-1000-0d16-4b525e9a8684"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:05:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID27c5eec2-46bc-4106-a802-ff95e0899faf"},{"ref":"EID41553f77-8f1b-424f-a58d-f93953fbbf77"},{"ref":"EID87f9a0ce-2fd2-4b17-b9b1-bf56bc3f90e9"}]},"parent":{"ref":"EID6ee20594-0175-1000-9619-465df1687ffb"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:05:07Z","duration":1051,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:05:07Z","duration":1128,"status":"PASSED"},{"id":"EID6ee209fc-0175-1000-6747-bb841cfea176","testStepResults":{"TestStepResult":{"id":"EID6ee209fc-0175-1000-dd47-4e9e8ec34236","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee20f1a-0175-1000-d919-5835490175f6","parent":{"ref":"EID6ee209fc-0175-1000-dd47-4e9e8ec34236"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20f1a-0175-1000-1f14-66d3fda344cd","parent":{"ref":"EID6ee209fc-0175-1000-dd47-4e9e8ec34236"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee20f1a-0175-1000-b63e-a3ae2e0f4582","parent":{"ref":"EID6ee209fc-0175-1000-dd47-4e9e8ec34236"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb769e18-abce-4919-9274-be5578d05718"},{"ref":"EID7f844949-e34a-4593-899f-b2b529edc0a4"},{"ref":"EID973b9f05-9fc8-45bf-afc4-c6c2da619868"}]},"parent":{"ref":"EID6ee209fc-0175-1000-6747-bb841cfea176"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:05:08Z","duration":1223,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:05:08Z","duration":1310,"status":"PASSED"},{"id":"EID6ee20f1a-0175-1000-90c2-a95ef1a3108b","testStepResults":{"TestStepResult":{"id":"EID6ee20f1a-0175-1000-872b-24607ce63315","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21061-0175-1000-f2e8-40bce3ca530e","parent":{"ref":"EID6ee20f1a-0175-1000-872b-24607ce63315"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21062-0175-1000-5afe-a7c8099e2343","parent":{"ref":"EID6ee20f1a-0175-1000-872b-24607ce63315"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21062-0175-1000-b942-c1e48bd8ff15","parent":{"ref":"EID6ee20f1a-0175-1000-872b-24607ce63315"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21062-0175-1000-74a4-639c2dae9756","parent":{"ref":"EID6ee20f1a-0175-1000-872b-24607ce63315"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21062-0175-1000-4747-d298ccbd9642","parent":{"ref":"EID6ee20f1a-0175-1000-872b-24607ce63315"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID28f8b40c-181f-4db9-aa6a-72868fc232ba"},{"ref":"EIDd474adf6-bd3a-4a5b-82ab-58455ddce215"},{"ref":"EID2b01562f-28dd-4630-8386-19b7af033490"}]},"parent":{"ref":"EID6ee20f1a-0175-1000-90c2-a95ef1a3108b"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:05:10Z","duration":218,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:05:10Z","duration":328,"status":"PASSED"},{"id":"EID6ee21062-0175-1000-3826-7640dcd496b9","testStepResults":{"TestStepResult":{"id":"EID6ee21062-0175-1000-45e9-60fe177fcb21","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21229-0175-1000-e9d4-7a7ef3234a99","parent":{"ref":"EID6ee21062-0175-1000-45e9-60fe177fcb21"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21229-0175-1000-7fad-406dc3a4bf68","parent":{"ref":"EID6ee21062-0175-1000-45e9-60fe177fcb21"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee21229-0175-1000-bf93-22768a102fc9","parent":{"ref":"EID6ee21062-0175-1000-45e9-60fe177fcb21"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:05:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfefa4fed-afa4-4de2-aef4-b9a05453d896"},{"ref":"EID6d0a0d1b-784c-4bb0-91ad-697bd79df237"},{"ref":"EID0fd84ec5-17a5-46e5-8586-44de064653ba"}]},"parent":{"ref":"EID6ee21062-0175-1000-3826-7640dcd496b9"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:05:10Z","duration":394,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:05:10Z","duration":455,"status":"PASSED"},{"id":"EID6ee21229-0175-1000-c1e1-3f8d70a26280","testStepResults":{"TestStepResult":{"id":"EID6ee21229-0175-1000-9f96-0dd2b3f602e5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee215c3-0175-1000-3cb2-0b99e94bb443","parent":{"ref":"EID6ee21229-0175-1000-9f96-0dd2b3f602e5"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee215c3-0175-1000-be24-4f3ed797caba","parent":{"ref":"EID6ee21229-0175-1000-9f96-0dd2b3f602e5"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee215c3-0175-1000-817c-75070077f007","parent":{"ref":"EID6ee21229-0175-1000-9f96-0dd2b3f602e5"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:05:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID98b5a041-5345-4362-8353-055273c1f664"},{"ref":"EIDd1a7a592-179a-4792-990f-f119e2962352"},{"ref":"EIDa700fd6d-b719-4b0a-8e70-af0c42487663"}]},"parent":{"ref":"EID6ee21229-0175-1000-c1e1-3f8d70a26280"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:05:10Z","duration":830,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:05:10Z","duration":922,"status":"PASSED"},{"id":"EID6ee215c4-0175-1000-e11b-5518a9dfa4e5","testStepResults":{"TestStepResult":{"id":"EID6ee215c4-0175-1000-2415-e94981c2e3db","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee218be-0175-1000-1aeb-2963f9ab38b9","parent":{"ref":"EID6ee215c4-0175-1000-2415-e94981c2e3db"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee218be-0175-1000-d242-35f52a64f810","parent":{"ref":"EID6ee215c4-0175-1000-2415-e94981c2e3db"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee218be-0175-1000-3b02-3d00d231f465","parent":{"ref":"EID6ee215c4-0175-1000-2415-e94981c2e3db"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee218be-0175-1000-6959-e9040105aafa","parent":{"ref":"EID6ee215c4-0175-1000-2415-e94981c2e3db"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID67d74978-8b28-4e62-8fee-ca4baf8fb786"},{"ref":"EIDe9955a69-e5e8-43e4-a026-561833f0e52a"},{"ref":"EIDd5d4da26-a5c8-4c33-b7b4-2126dc183fdf"}]},"parent":{"ref":"EID6ee215c4-0175-1000-e11b-5518a9dfa4e5"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:05:11Z","duration":603,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:05:11Z","duration":770,"status":"PASSED"},{"id":"EID6ee218c6-0175-1000-5e4e-321ff2af7856","testStepResults":{"TestStepResult":{"id":"EID6ee218c6-0175-1000-be85-e274a85384f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21946-0175-1000-0ada-59f2efbed4da","parent":{"ref":"EID6ee218c6-0175-1000-be85-e274a85384f7"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21946-0175-1000-d729-eb1e0b58c8b0","parent":{"ref":"EID6ee218c6-0175-1000-be85-e274a85384f7"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21946-0175-1000-1ceb-d9a41a797e05","parent":{"ref":"EID6ee218c6-0175-1000-be85-e274a85384f7"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21946-0175-1000-ae61-64ba2434639f","parent":{"ref":"EID6ee218c6-0175-1000-be85-e274a85384f7"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID04b85f54-9043-4bef-8083-f434f05339bf"},{"ref":"EIDb25f224b-61cd-4dc9-8554-8116c2f22e9d"},{"ref":"EIDa354b723-b040-4f83-9830-74ee545a586e"}]},"parent":{"ref":"EID6ee218c6-0175-1000-5e4e-321ff2af7856"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:05:12Z","duration":46,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:05:12Z","duration":128,"status":"PASSED"},{"id":"EID6ee21946-0175-1000-bd86-aa893d3719d8","testStepResults":{"TestStepResult":[{"id":"EID6ee21946-0175-1000-270e-67438252e2d0","parent":{"ref":"EID6ee21946-0175-1000-bd86-aa893d3719d8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee21947-0175-1000-5145-e9967bf98c9e","parent":{"ref":"EID6ee21946-0175-1000-bd86-aa893d3719d8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:05:12Z","duration":1017,"status":"PASSED"},{"id":"EID6ee21947-0175-1000-d12c-df8784bb6feb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21ac4-0175-1000-2e25-2a11f162e799","parent":{"ref":"EID6ee21947-0175-1000-d12c-df8784bb6feb"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ac4-0175-1000-ea20-82f623c11a71","parent":{"ref":"EID6ee21947-0175-1000-d12c-df8784bb6feb"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ac4-0175-1000-467f-bf8d9ec91dde","parent":{"ref":"EID6ee21947-0175-1000-d12c-df8784bb6feb"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee21ac4-0175-1000-c3cd-acb853a8f144","parent":{"ref":"EID6ee21947-0175-1000-d12c-df8784bb6feb"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:05:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcd06f50b-17f8-43a4-9195-787e5ef2aded"},{"ref":"EIDd46a46d3-5abe-4ce6-b7ff-b9e905c69919"},{"ref":"EIDbeed09ad-1524-400b-9fe7-3b01cc13c94c"}]},"parent":{"ref":"EID6ee21946-0175-1000-bd86-aa893d3719d8"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:05:12Z","duration":209,"status":"PASSED"},{"id":"EID6ee21ac4-0175-1000-6266-3310c0d5a37d","attachments":{"attachment":{"ref":"EID89401520-ef31-4999-b58d-f962a09a3e6a"}},"parent":{"ref":"EID6ee21946-0175-1000-bd86-aa893d3719d8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:05:13Z","duration":1,"status":"PASSED"},{"id":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21e3f-0175-1000-f5b9-5797c05d5ae4","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-5976-abba5c320719","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-d47d-b1bc9aff7484","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-f45e-4b1ea86eb9e5","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-9ed1-26b576e024b4","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-c5b3-e00e205a255b","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e3f-0175-1000-9618-267efabe53d6","parent":{"ref":"EID6ee21ad3-0175-1000-22ba-7806f3d9b06d"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf0dcef6a-eb23-4308-9630-9309deecc03c"},{"ref":"EIDc21ae8f2-a64b-4d47-bf07-f9e5b57582f6"},{"ref":"EID119c7469-57ee-4efd-a662-fcd76b9f18e5"}]},"parent":{"ref":"EID6ee21946-0175-1000-bd86-aa893d3719d8"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:05:13Z","duration":720,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:05:12Z","duration":1274,"status":"PASSED"},{"id":"EID6ee21e49-0175-1000-7c4c-d2398f12e4bb","testStepResults":{"TestStepResult":[{"id":"EID6ee21e49-0175-1000-f496-c55935f1acb7","parent":{"ref":"EID6ee21e49-0175-1000-7c4c-d2398f12e4bb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21e49-0175-1000-a7db-5fca0c4fa0fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21f08-0175-1000-dafd-787644d0ad3b","parent":{"ref":"EID6ee21e49-0175-1000-a7db-5fca0c4fa0fd"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21f08-0175-1000-fa87-0b26f4624c16","parent":{"ref":"EID6ee21e49-0175-1000-a7db-5fca0c4fa0fd"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21f08-0175-1000-6bb8-69ee33d49d39","parent":{"ref":"EID6ee21e49-0175-1000-a7db-5fca0c4fa0fd"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21f08-0175-1000-a13d-92175f1d4c7a","parent":{"ref":"EID6ee21e49-0175-1000-a7db-5fca0c4fa0fd"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID82182be2-e1d2-4e91-8327-c2272bf14096"},{"ref":"EID2abc06a0-ffe7-4096-b810-a425cbd8f457"},{"ref":"EID57541dbf-a53f-49ea-adc6-ffdebf065b86"}]},"parent":{"ref":"EID6ee21e49-0175-1000-7c4c-d2398f12e4bb"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:05:14Z","duration":40,"status":"PASSED"},{"id":"EID6ee21f08-0175-1000-e54b-97f5d8cb8fa4","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee21f1d-0175-1000-c51c-4c0cc7369061","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee21f8e-0175-1000-e70c-95291c8da1ed","parent":{"ref":"EID6ee21f1d-0175-1000-c51c-4c0cc7369061"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21f8e-0175-1000-dbd6-d3bdca07b1ac","parent":{"ref":"EID6ee21f1d-0175-1000-c51c-4c0cc7369061"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee21f8e-0175-1000-1aa3-173b0855b6ff","parent":{"ref":"EID6ee21f1d-0175-1000-c51c-4c0cc7369061"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID61f7d429-ef7e-4889-966b-6a9f6b91bd69"},{"ref":"EID7381e4d8-91f2-4ced-907e-0573c43c390b"},{"ref":"EIDa8f1c97a-6eae-47d2-bed6-9caf63188daa"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:14Z","duration":40,"status":"PASSED"},{"id":"EID6ee21f90-0175-1000-d9d4-6443fa0972fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22050-0175-1000-8800-ba1538fa5bbf","parent":{"ref":"EID6ee21f90-0175-1000-d9d4-6443fa0972fc"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee22050-0175-1000-36cd-9626669884ec","parent":{"ref":"EID6ee21f90-0175-1000-d9d4-6443fa0972fc"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee22050-0175-1000-8b04-9a906e921498","parent":{"ref":"EID6ee21f90-0175-1000-d9d4-6443fa0972fc"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID982b1baf-ad94-4064-8346-490ca3426e6a"},{"ref":"EID11b8d504-25e9-4bd6-bda3-7ef026cfcc46"},{"ref":"EID483c7573-1679-4dcd-8734-5551022ce9a2"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:14Z","duration":52,"status":"PASSED"},{"id":"EID6ee22052-0175-1000-cd02-eaaed91e23ee","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee220ba-0175-1000-5c70-c73f31b720dc","parent":{"ref":"EID6ee22052-0175-1000-cd02-eaaed91e23ee"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee220ba-0175-1000-8c5c-827bbc55867c","parent":{"ref":"EID6ee22052-0175-1000-cd02-eaaed91e23ee"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee220ba-0175-1000-965e-82a5fde4d258","parent":{"ref":"EID6ee22052-0175-1000-cd02-eaaed91e23ee"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:05:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6d906a6a-30d4-4afa-a454-2c3fb633a2a8"},{"ref":"EIDcecd0283-f106-4031-9feb-51e0a2780785"},{"ref":"EIDd69438ad-9326-406b-9849-039b811d8773"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:05:14Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6ee21e49-0175-1000-7c4c-d2398f12e4bb"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:05:14Z","duration":437,"status":"PASSED"},{"id":"EID6ee220be-0175-1000-f033-c20ae6e15ce2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22490-0175-1000-1af5-334fbbc6d1ea","parent":{"ref":"EID6ee220be-0175-1000-f033-c20ae6e15ce2"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:05:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee22490-0175-1000-30ae-bdb39843244e","parent":{"ref":"EID6ee220be-0175-1000-f033-c20ae6e15ce2"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:05:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee22490-0175-1000-e072-f103ab766da0","parent":{"ref":"EID6ee220be-0175-1000-f033-c20ae6e15ce2"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:05:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee22490-0175-1000-bda3-87db4c23ca4d","parent":{"ref":"EID6ee220be-0175-1000-f033-c20ae6e15ce2"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:05:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc09b4ec5-41a9-48f3-b4f6-97df0e012be9"},{"ref":"EID54d6d1df-75d2-4f3c-a44f-ff17ebd9f39d"},{"ref":"EID1ffbc27d-5bd3-4edb-96eb-66847a5e9f00"}]},"parent":{"ref":"EID6ee21e49-0175-1000-7c4c-d2398f12e4bb"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:05:14Z","duration":914,"status":"PASSED"}]},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:05:14Z","duration":1607,"status":"PASSED"},{"id":"EID6ee22490-0175-1000-225e-43501088a05e","testStepResults":{"TestStepResult":{"id":"EID6ee22490-0175-1000-8743-e771da080b7c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee2286c-0175-1000-f35e-addc7bae6de7","parent":{"ref":"EID6ee22490-0175-1000-8743-e771da080b7c"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee2286c-0175-1000-976c-f8e4a32d924b","parent":{"ref":"EID6ee22490-0175-1000-8743-e771da080b7c"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee2286c-0175-1000-beb0-a930a054b08d","parent":{"ref":"EID6ee22490-0175-1000-8743-e771da080b7c"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee2286c-0175-1000-eb5d-00b518969807","parent":{"ref":"EID6ee22490-0175-1000-8743-e771da080b7c"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:05:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0056179b-f0bd-4326-a9b1-7316c21ba614"},{"ref":"EIDefae7db2-9098-47a3-b695-b0eb9cdea8d8"},{"ref":"EIDa1532f1b-bb7d-4b7e-a2ef-568c66cde8d3"}]},"parent":{"ref":"EID6ee22490-0175-1000-225e-43501088a05e"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:05:15Z","duration":926,"status":"PASSED"}},"parent":{"ref":"EID6ee1f00f-0175-1000-4d3d-9ce8dfc31315"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:05:15Z","duration":988,"status":"PASSED"}]},"parent":{"ref":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:05:02Z","duration":14429,"status":"PASSED"},{"id":"EID6ee2286c-0175-1000-b572-c96bf5334bd3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee2286c-0175-1000-5f5b-53487b401213","testStepResults":{"TestStepResult":[{"id":"EID6ee2286c-0175-1000-0512-1c2e71ca6553","parent":{"ref":"EID6ee2286c-0175-1000-5f5b-53487b401213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:05:16Z","duration":813,"status":"PASSED"},{"id":"EID6ee2286c-0175-1000-0856-65fa1e36ef79","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22ed4-0175-1000-3d49-f1d65effc7e2","parent":{"ref":"EID6ee2286c-0175-1000-0856-65fa1e36ef79"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22ed4-0175-1000-0b29-5d769a852aa1","parent":{"ref":"EID6ee2286c-0175-1000-0856-65fa1e36ef79"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22ed4-0175-1000-c2ba-85f25f8cd4f1","parent":{"ref":"EID6ee2286c-0175-1000-0856-65fa1e36ef79"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbb3b0175-3a18-4b34-b85f-ff7b5cd3225e"},{"ref":"EIDbe36f278-697f-4a37-a9eb-830d5a1e0375"},{"ref":"EID5d807535-d398-4966-8693-e34e8283b997"}]},"parent":{"ref":"EID6ee2286c-0175-1000-5f5b-53487b401213"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:05:16Z","duration":1537,"status":"PASSED"},{"id":"EID6ee22ed4-0175-1000-3a7b-ad4b6537b35f","attachments":{"attachment":{"ref":"EID17a95264-0994-4ada-8e3c-ba8c65151d9e"}},"parent":{"ref":"EID6ee2286c-0175-1000-5f5b-53487b401213"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:05:18Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:05:16Z","duration":1654,"status":"PASSED"},{"id":"EID6ee22ee2-0175-1000-335d-3af1c50fa836","testStepResults":{"TestStepResult":[{"id":"EID6ee22ee2-0175-1000-c842-9cba0c4a7532","parent":{"ref":"EID6ee22ee2-0175-1000-335d-3af1c50fa836"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:05:18Z","duration":813,"status":"PASSED"},{"id":"EID6ee22ee2-0175-1000-2354-5d1dee98518a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee22f72-0175-1000-8015-c4cb8857fdca","parent":{"ref":"EID6ee22ee2-0175-1000-2354-5d1dee98518a"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-adff-a0c8e7b54914","parent":{"ref":"EID6ee22ee2-0175-1000-2354-5d1dee98518a"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-f904-dbabd2be87ca","parent":{"ref":"EID6ee22ee2-0175-1000-2354-5d1dee98518a"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-901d-cfc6499081a7","parent":{"ref":"EID6ee22ee2-0175-1000-2354-5d1dee98518a"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDee26f20b-b125-4a46-9399-424145435d89"},{"ref":"EIDc1c34d3c-4471-42f3-b0a8-e68aa0f48020"},{"ref":"EIDd79cde1c-5bc1-4634-9adf-db0300b6ae0c"}]},"parent":{"ref":"EID6ee22ee2-0175-1000-335d-3af1c50fa836"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:05:18Z","duration":83,"status":"PASSED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:05:18Z","duration":144,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-39ae-613192c46dcf","testStepResults":{"TestStepResult":[{"id":"EID6ee22f72-0175-1000-1f57-5a1a9ce0bd69","parent":{"ref":"EID6ee22f72-0175-1000-39ae-613192c46dcf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:05:18Z","duration":813,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-7d3c-00bdc46249b1","parent":{"ref":"EID6ee22f72-0175-1000-39ae-613192c46dcf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee22f72-0175-1000-b114-bdf4318908b4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee23058-0175-1000-4ce2-bc46c8f94408","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-493e-fad9b9fa7f40","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-74d2-34b331a057f1","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-98b7-8423830abf81","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-8e5f-a3679c1b8f12","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-fe38-66ad0f33b04d","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-d0ee-59224b3c79da","parent":{"ref":"EID6ee22f72-0175-1000-b114-bdf4318908b4"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:05:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID58d28f03-9c39-4dfd-97e7-1360b173785b"},{"ref":"EID2a1f5600-4a4d-4735-b240-6686b11404ce"},{"ref":"EIDee891594-3ff8-49c3-bccf-e720f0642958"}]},"parent":{"ref":"EID6ee22f72-0175-1000-39ae-613192c46dcf"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:05:18Z","duration":97,"status":"PASSED"},{"id":"EID6ee23058-0175-1000-ea24-95c744577cc1","invokedTests":{"":null,"TestStepResult":{"id":"EID6ee2307d-0175-1000-b016-733a3fc67b36","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee23b1f-0175-1000-7ffe-e01fd3514506","parent":{"ref":"EID6ee2307d-0175-1000-b016-733a3fc67b36"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23b1f-0175-1000-3e7e-c57367a3a7a8","parent":{"ref":"EID6ee2307d-0175-1000-b016-733a3fc67b36"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23b1f-0175-1000-8946-a8027a5ef956","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"parent":{"ref":"EID6ee2307d-0175-1000-b016-733a3fc67b36"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:05:21Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5cc72330-ce30-4882-90ca-3fa9883f8386"},{"ref":"EID8d6d68d3-615d-45ea-a744-9d64932d83e7"},{"ref":"EID8f0743ab-c40c-46d3-971e-3c85f2d26937"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:05:18Z","duration":2307,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EIDe8137f59-ca4f-434b-99ec-5e22c04d5236"},{"ref":"EID0a1a4c4d-7dcd-4d17-a968-4891572c45e4"}]},"parent":{"ref":"EID6ee22f72-0175-1000-39ae-613192c46dcf"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:05:18Z","duration":2844,"status":"FAILED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:05:18Z","duration":3101,"status":"FAILED"},{"id":"EID6ee23b8f-0175-1000-90e0-d607599b680d","testStepResults":{"TestStepResult":[{"id":"EID6ee23b8f-0175-1000-71db-936e776dea65","parent":{"ref":"EID6ee23b8f-0175-1000-90e0-d607599b680d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":813,"status":"PASSED"},{"id":"EID6ee23b8f-0175-1000-94fa-cef7e68d257f","parent":{"ref":"EID6ee23b8f-0175-1000-90e0-d607599b680d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee23c77-0175-1000-184d-b428d1313f1f","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-fe6b-1bab821ca003","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-9e4e-8cf328b11437","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-f6dd-2ae91692fde3","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-794d-3ce79b8837f1","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-9078-a129c6c20cc5","parent":{"ref":"EID6ee23b8f-0175-1000-38a2-e7c0102e6d8e"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:05:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdcb0012e-9f04-4f94-9666-3db73b63b5d4"},{"ref":"EIDb70799cc-90c0-4585-9d06-93c2a82a8295"},{"ref":"EIDe45547bb-1a86-4329-8dc3-3ebf94523104"}]},"parent":{"ref":"EID6ee23b8f-0175-1000-90e0-d607599b680d"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:05:21Z","duration":131,"status":"PASSED"},{"id":"EID6ee23c77-0175-1000-2672-8626d632e71c","parent":{"ref":"EID6ee23b8f-0175-1000-90e0-d607599b680d"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:05:21Z","duration":80,"status":"PASSED"},{"id":"EID6ee23cc7-0175-1000-0b59-d68edb585121","parent":{"ref":"EID6ee23b8f-0175-1000-90e0-d607599b680d"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:05:21Z","duration":1,"status":"UNDEFINED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:05:21Z","duration":313,"status":"UNDEFINED"},{"id":"EID6ee23cc8-0175-1000-1eeb-5cf1e4279630","testStepResults":{"TestStepResult":[{"id":"EID6ee23cd1-0175-1000-5cc2-ff5d83e9b5ed","parent":{"ref":"EID6ee23cc8-0175-1000-1eeb-5cf1e4279630"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":813,"status":"PASSED"},{"id":"EID6ee23cd1-0175-1000-f93d-607c80ccdb8f","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/octet-stream"},{"token":"expected","$":"application/zip"}]}}},"attachments":{"attachment":[{"ref":"EID08bf302f-30cd-48d3-8175-ff486a0b543a"},{"ref":"EIDf4535ffc-9b3b-4bb1-bb73-804d36dabc46"},{"ref":"EIDfe207b6b-572a-4335-9a24-b789b976238a"},{"ref":"EIDe8fde9a7-78bc-424b-b475-bf26cae14017"},{"ref":"EID1ebdb289-c3af-40fa-9128-6716e893ce82"},{"ref":"EID92a89f43-07aa-446d-b77b-50008c285e82"},{"ref":"EID095be08b-4017-454e-b0b0-2392962b98bb"},{"ref":"EIDea6fa281-3ffc-43ab-bdf8-ffa07f14de69"},{"ref":"EID4609eaa5-e410-4005-a79e-7cf7b705059d"},{"ref":"EIDf8a9f95a-19ea-48a2-a405-f910536bbe23"},{"ref":"EID31d2a556-2e7b-44d0-bcad-c98e9e6532eb"},{"ref":"EID75e36537-8421-43d9-8ac2-ff728493aa04"},{"ref":"EID574ef337-6ff6-4e1e-9c1c-355e1a24a45d"},{"ref":"EID72bce4c4-74f6-4830-8406-19f8f4d6542f"},{"ref":"EIDc90c3bd0-3b18-4a5f-b2ed-b8296f1fb5b1"},{"ref":"EIDf4fb24aa-8004-4d7a-898f-03a8a6c9f33e"},{"ref":"EID35120423-0b0f-473e-82a5-79b306c9f441"},{"ref":"EID9f2cfd34-e45e-4549-ae37-6c90ac5e1b62"},{"ref":"EID9df5be3a-c4ec-497c-8749-3806d510c15c"}]},"parent":{"ref":"EID6ee23cc8-0175-1000-1eeb-5cf1e4279630"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:05:21Z","duration":3775,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:05:21Z","duration":4131,"status":"SKIPPED"},{"id":"EID6ee24ceb-0175-1000-86fa-02f250734a8b","testStepResults":{"TestStepResult":[{"id":"EID6ee24ceb-0175-1000-4929-8d07996d3a0d","parent":{"ref":"EID6ee24ceb-0175-1000-86fa-02f250734a8b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:05:25Z","duration":813,"status":"PASSED"},{"id":"EID6ee24ceb-0175-1000-1fb8-4df2c5c27ae2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24dae-0175-1000-853f-7b2e913e8fb2","parent":{"ref":"EID6ee24ceb-0175-1000-1fb8-4df2c5c27ae2"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dae-0175-1000-0989-13c6e85525c9","parent":{"ref":"EID6ee24ceb-0175-1000-1fb8-4df2c5c27ae2"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dae-0175-1000-d894-c07fadab2cbe","parent":{"ref":"EID6ee24ceb-0175-1000-1fb8-4df2c5c27ae2"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24dae-0175-1000-e945-b346f2ba35ac","parent":{"ref":"EID6ee24ceb-0175-1000-1fb8-4df2c5c27ae2"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4d95c55b-2151-4ae4-a214-7527f97e86e0"},{"ref":"EID972e7583-3ea3-4c14-993a-0d6c4b8211b2"},{"ref":"EID2aff4f38-0b44-47d2-b7e8-829cd0fa0fcc"}]},"parent":{"ref":"EID6ee24ceb-0175-1000-86fa-02f250734a8b"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:05:25Z","duration":90,"status":"PASSED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:05:25Z","duration":195,"status":"PASSED"},{"id":"EID6ee24daf-0175-1000-8239-454e3766d6ec","testStepResults":{"TestStepResult":[{"id":"EID6ee24daf-0175-1000-17a7-32b4c2d09f69","parent":{"ref":"EID6ee24daf-0175-1000-8239-454e3766d6ec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":813,"status":"PASSED"},{"id":"EID6ee24daf-0175-1000-a43a-a3c3a4ba3cfb","parent":{"ref":"EID6ee24daf-0175-1000-8239-454e3766d6ec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24daf-0175-1000-62df-06ee46bceb7b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24e64-0175-1000-e695-e43b9f139e69","parent":{"ref":"EID6ee24daf-0175-1000-62df-06ee46bceb7b"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24e64-0175-1000-0498-99db254bad59","parent":{"ref":"EID6ee24daf-0175-1000-62df-06ee46bceb7b"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24e64-0175-1000-6898-2ad10193ab81","parent":{"ref":"EID6ee24daf-0175-1000-62df-06ee46bceb7b"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24e64-0175-1000-90e8-442d77f98d20","parent":{"ref":"EID6ee24daf-0175-1000-62df-06ee46bceb7b"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa61227b1-2bd4-4432-90c5-4d16d043e3f9"},{"ref":"EID849e030c-8f64-41a7-996c-3c2261814911"},{"ref":"EIDa18b51de-694e-43ee-90f2-a6f1e33d7652"}]},"parent":{"ref":"EID6ee24daf-0175-1000-8239-454e3766d6ec"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:05:26Z","duration":109,"status":"PASSED"},{"id":"EID6ee24e64-0175-1000-4a24-2a326439e198","attachments":{"attachment":{"ref":"EID200bb9f9-9ca6-4aa7-82bb-3416ff595767"}},"parent":{"ref":"EID6ee24daf-0175-1000-8239-454e3766d6ec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:05:26Z","duration":1,"status":"PASSED"},{"id":"EID6ee24e72-0175-1000-19c3-ae49053fc76f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee24e78-0175-1000-d75b-6fb947c3e792","parent":{"ref":"EID6ee24e72-0175-1000-19c3-ae49053fc76f"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24e78-0175-1000-4bea-cc7f7a4e4791","parent":{"ref":"EID6ee24e72-0175-1000-19c3-ae49053fc76f"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee24e78-0175-1000-a187-dcbb2587aeab","parent":{"ref":"EID6ee24e72-0175-1000-19c3-ae49053fc76f"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc0f4b85d-5b6c-4f42-87f3-57e73b55de35"},{"ref":"EID5e381300-be6d-4f1d-8d98-f008746c3762"}]},"parent":{"ref":"EID6ee24daf-0175-1000-8239-454e3766d6ec"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:05:26Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee2286c-0175-1000-b572-c96bf5334bd3"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:05:26Z","duration":202,"status":"PASSED"}]},"parent":{"ref":"EIDf26641a1-f64b-461d-acc7-ab27eb01caa6"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:05:16Z","duration":9741,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID72bce4c4-74f6-4830-8406-19f8f4d6542f","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID72bce4c4-74f6-4830-8406-19f8f4d6542f"}},{"type":"ServiceResponse","id":"EID7747db51-0b05-4830-9913-aa6cda4b966c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID7747db51-0b05-4830-9913-aa6cda4b966c"}},{"type":"GetParameter","id":"EID6539e029-6d3f-49f9-a0ff-5a94fea03be1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6d906a6a-30d4-4afa-a454-2c3fb633a2a8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EIDa354b723-b040-4f83-9830-74ee545a586e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID973b9f05-9fc8-45bf-afc4-c6c2da619868","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID82182be2-e1d2-4e91-8327-c2272bf14096","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EIDc1c34d3c-4471-42f3-b0a8-e68aa0f48020","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDc1c34d3c-4471-42f3-b0a8-e68aa0f48020"}},{"type":"Message","id":"EID9f2cfd34-e45e-4549-ae37-6c90ac5e1b62","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID9f2cfd34-e45e-4549-ae37-6c90ac5e1b62"}},{"type":"GetParameter","id":"EID2b01562f-28dd-4630-8386-19b7af033490","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDf4535ffc-9b3b-4bb1-bb73-804d36dabc46","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDf4535ffc-9b3b-4bb1-bb73-804d36dabc46"}},{"type":"Message","id":"EID3c4798a3-0e03-426e-8caf-9a30263b30e5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID3c4798a3-0e03-426e-8caf-9a30263b30e5"}},{"type":"ServiceResponse","id":"EIDd474adf6-bd3a-4a5b-82ab-58455ddce215","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDd474adf6-bd3a-4a5b-82ab-58455ddce215"}},{"type":"GetParameter","id":"EID65160cba-0783-4093-82b4-ffcbdfd9a9d0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDbbbb9257-69de-4334-9285-669ed6b8ffe8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID31d2a556-2e7b-44d0-bcad-c98e9e6532eb","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID31d2a556-2e7b-44d0-bcad-c98e9e6532eb"}},{"type":"Message","id":"EID1a4fbbf4-57a5-40fd-86a3-61cff775dfac","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID1a4fbbf4-57a5-40fd-86a3-61cff775dfac"}},{"type":"GetParameter","id":"EIDd69438ad-9326-406b-9849-039b811d8773","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID2046708e-91b0-498a-bdde-09085cd73a5e","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2046708e-91b0-498a-bdde-09085cd73a5e"}},{"type":"Message","id":"EIDfe207b6b-572a-4335-9a24-b789b976238a","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDfe207b6b-572a-4335-9a24-b789b976238a"}},{"type":"ServiceResponse","id":"EID780e10f7-07d5-4d63-bfaa-edd59f4d6b60","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID780e10f7-07d5-4d63-bfaa-edd59f4d6b60"}},{"type":"ServiceEndpoint","id":"EIDee26f20b-b125-4a46-9399-424145435d89","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID6c6128cf-44db-4329-8058-a689434e8ca8","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID6c6128cf-44db-4329-8058-a689434e8ca8"}},{"type":"GetParameter","id":"EID0fd84ec5-17a5-46e5-8586-44de064653ba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EIDf29dc041-7193-4fc9-966b-7ad8c44524c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDdd5df964-b4be-443f-b70a-993ed30997be","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDdd5df964-b4be-443f-b70a-993ed30997be"}},{"type":"GetParameter","id":"EID5e381300-be6d-4f1d-8d98-f008746c3762","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EIDa18b51de-694e-43ee-90f2-a6f1e33d7652","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID428f8b9e-e529-432c-a2fa-2be6b88f819c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID3b3c45fa-7562-4a04-94eb-23a97b038a49","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID3b3c45fa-7562-4a04-94eb-23a97b038a49"}},{"type":"ServiceResponse","id":"EIDefae7db2-9098-47a3-b695-b0eb9cdea8d8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDefae7db2-9098-47a3-b695-b0eb9cdea8d8"}},{"type":"ServiceEndpoint","id":"EID67d74978-8b28-4e62-8fee-ca4baf8fb786","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EIDc40f70e5-7a48-4857-aab1-824e7d99f316","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDe97bb2a6-dc1b-40c5-9eef-687b777c74b0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe97bb2a6-dc1b-40c5-9eef-687b777c74b0"}},{"type":"Message","id":"EID89401520-ef31-4999-b58d-f962a09a3e6a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID89401520-ef31-4999-b58d-f962a09a3e6a"}},{"type":"ServiceResponse","id":"EIDd46a46d3-5abe-4ce6-b7ff-b9e905c69919","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDd46a46d3-5abe-4ce6-b7ff-b9e905c69919"}},{"type":"ServiceResponse","id":"EID11b8d504-25e9-4bd6-bda3-7ef026cfcc46","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID11b8d504-25e9-4bd6-bda3-7ef026cfcc46"}},{"type":"ServiceResponse","id":"EIDbe36f278-697f-4a37-a9eb-830d5a1e0375","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDbe36f278-697f-4a37-a9eb-830d5a1e0375"}},{"type":"ServiceResponse","id":"EIDfc9ca6ba-daf0-4a06-a1fb-d5a97337d7d9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDfc9ca6ba-daf0-4a06-a1fb-d5a97337d7d9"}},{"type":"ServiceEndpoint","id":"EIDfefa4fed-afa4-4de2-aef4-b9a05453d896","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID490455cb-6d73-4cc2-8b07-d2ff3321c541","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID490455cb-6d73-4cc2-8b07-d2ff3321c541"}},{"type":"ServiceResponse","id":"EID4194b0c9-a4ce-4d0e-8621-e18054518e55","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID4194b0c9-a4ce-4d0e-8621-e18054518e55"}},{"type":"ServiceResponse","id":"EIDcd6156f8-dcfc-44ab-b132-5d3063c1703e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDcd6156f8-dcfc-44ab-b132-5d3063c1703e"}},{"type":"ServiceEndpoint","id":"EIDc46c8658-8869-473d-9068-c4a06a7c04e0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDb131529c-f9ba-4c11-88e5-c73ab78bbb73","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDee335dbc-23a5-46f2-a7a3-9ca96a976ed8","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDee335dbc-23a5-46f2-a7a3-9ca96a976ed8"}},{"type":"GetParameter","id":"EIDe3e71e10-7205-47f0-8542-0906d8fd6961","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDcd06f50b-17f8-43a4-9195-787e5ef2aded","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDcf882b72-bd01-4bba-8163-a34319289c55","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDcf882b72-bd01-4bba-8163-a34319289c55"}},{"type":"GetParameter","id":"EIDbc4152a3-6401-445e-8dd0-ef891d069e1c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID768cfd05-b04f-4c98-be3d-f04bcaf901a3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID200bb9f9-9ca6-4aa7-82bb-3416ff595767","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID200bb9f9-9ca6-4aa7-82bb-3416ff595767"}},{"type":"GetParameter","id":"EIDbeed09ad-1524-400b-9fe7-3b01cc13c94c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDe45c990f-4ef3-41c3-8e00-cdbecb08913c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe45c990f-4ef3-41c3-8e00-cdbecb08913c"}},{"type":"GetParameter","id":"EID8369c7d6-e0ce-40ca-bffe-038f4b4b5a6b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID972e7583-3ea3-4c14-993a-0d6c4b8211b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID972e7583-3ea3-4c14-993a-0d6c4b8211b2"}},{"type":"ServiceEndpoint","id":"EIDc09b4ec5-41a9-48f3-b4f6-97df0e012be9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDc1ae037a-4d51-4cbf-99a0-18e6f9b8d3b5","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDc1ae037a-4d51-4cbf-99a0-18e6f9b8d3b5"}},{"type":"ServiceEndpoint","id":"EIDb70ee7f6-1e49-46b9-8441-91a873191b11","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3c18e31e-3e11-4bcf-b498-b18f1392af97","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDc16969ba-a47c-4db9-9cf7-d1b2f4656cec","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID898c9e13-63e2-455f-8309-1edd22548abf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf0dcef6a-eb23-4308-9630-9309deecc03c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDa788e374-4066-4283-9bca-1c7035f95be4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDa788e374-4066-4283-9bca-1c7035f95be4"}},{"type":"Message","id":"EID235ecbfb-8fd2-4440-b7fb-606e09e557e9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID235ecbfb-8fd2-4440-b7fb-606e09e557e9"}},{"type":"Message","id":"EID7edd4179-9bcf-4630-81c4-bef1c25f5f63","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID7edd4179-9bcf-4630-81c4-bef1c25f5f63"}},{"type":"Message","id":"EID095be08b-4017-454e-b0b0-2392962b98bb","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID095be08b-4017-454e-b0b0-2392962b98bb"}},{"type":"GetParameter","id":"EID57541dbf-a53f-49ea-adc6-ffdebf065b86","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID4ffcb0bb-f572-4787-a0c0-9df5a9633e05","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID4ffcb0bb-f572-4787-a0c0-9df5a9633e05"}},{"type":"ServiceEndpoint","id":"EIDdce97736-dadf-4c23-9b98-2b32b72099f8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd4e0ee9d-ede6-4f66-96a7-50b393874d40","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID00b445e3-7404-4723-a8fc-7e39869e35bc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID45a815c3-d63a-4d3e-bb71-3399356ba429","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID45a815c3-d63a-4d3e-bb71-3399356ba429"}},{"type":"Message","id":"EIDf8723529-5c26-47a6-b6c9-08d7f6c2c255","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDf8723529-5c26-47a6-b6c9-08d7f6c2c255"}},{"type":"GetParameter","id":"EIDa1532f1b-bb7d-4b7e-a2ef-568c66cde8d3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID1ffbc27d-5bd3-4edb-96eb-66847a5e9f00","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EIDb70799cc-90c0-4585-9d06-93c2a82a8295","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDb70799cc-90c0-4585-9d06-93c2a82a8295"}},{"type":"ServiceEndpoint","id":"EIDdb769e18-abce-4919-9274-be5578d05718","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID54d1b076-c1e7-48c0-8a41-1911746fc029","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0fceb318-2cde-483f-9f3a-13000c3bc33d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDea6fa281-3ffc-43ab-bdf8-ffa07f14de69","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDea6fa281-3ffc-43ab-bdf8-ffa07f14de69"}},{"type":"Message","id":"EID35120423-0b0f-473e-82a5-79b306c9f441","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID35120423-0b0f-473e-82a5-79b306c9f441"}},{"type":"ServiceResponse","id":"EID5f3b0a7c-6d82-4bec-888d-58082e56bc8f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID5f3b0a7c-6d82-4bec-888d-58082e56bc8f"}},{"type":"ServiceResponse","id":"EIDcecd0283-f106-4031-9feb-51e0a2780785","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDcecd0283-f106-4031-9feb-51e0a2780785"}},{"type":"ServiceEndpoint","id":"EID0056179b-f0bd-4326-a9b1-7316c21ba614","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDa8c1d037-d390-40e2-a91f-3d10a242e135","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDa8c1d037-d390-40e2-a91f-3d10a242e135"}},{"type":"GetParameter","id":"EID119c7469-57ee-4efd-a662-fcd76b9f18e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID5d807535-d398-4966-8693-e34e8283b997","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID54421fca-4576-4338-b6bf-de28739dbcd2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID99eaffce-1092-48fa-ac7e-0041e06c20d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID58d28f03-9c39-4dfd-97e7-1360b173785b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID475902d2-62c7-4524-bfd1-86c0672af4b2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2abc06a0-ffe7-4096-b810-a425cbd8f457","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2abc06a0-ffe7-4096-b810-a425cbd8f457"}},{"type":"Message","id":"EID1ebdb289-c3af-40fa-9128-6716e893ce82","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID1ebdb289-c3af-40fa-9128-6716e893ce82"}},{"type":"ServiceResponse","id":"EID5bb5bad6-7de0-4b43-9538-cc224052b6e9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID5bb5bad6-7de0-4b43-9538-cc224052b6e9"}},{"type":"ServiceEndpoint","id":"EID61f7d429-ef7e-4889-966b-6a9f6b91bd69","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EIDa8f1c97a-6eae-47d2-bed6-9caf63188daa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID6d0a0d1b-784c-4bb0-91ad-697bd79df237","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID6d0a0d1b-784c-4bb0-91ad-697bd79df237"}},{"type":"ServiceResponse","id":"EID990a9cbd-13b3-4e8e-a127-81172cbcf3fc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID990a9cbd-13b3-4e8e-a127-81172cbcf3fc"}},{"type":"Message","id":"EID3bcd60e1-6b9b-4b09-b728-522357fe2d48","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID3bcd60e1-6b9b-4b09-b728-522357fe2d48"}},{"type":"ServiceResponse","id":"EID8d6d68d3-615d-45ea-a744-9d64932d83e7","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID8d6d68d3-615d-45ea-a744-9d64932d83e7"}},{"type":"ServiceResponse","id":"EID4bdc8d55-ae68-4b8c-bfed-e0e070f48b10","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID4bdc8d55-ae68-4b8c-bfed-e0e070f48b10"}},{"type":"Message","id":"EIDb196e061-ddcc-486d-a34a-7bf7a47d0d7b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDb196e061-ddcc-486d-a34a-7bf7a47d0d7b"}},{"type":"Message","id":"EIDb964916c-f905-4d99-8869-d37e155ce111","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDb964916c-f905-4d99-8869-d37e155ce111"}},{"type":"ServiceEndpoint","id":"EID29cc68e4-9268-42e5-a18e-a18f00e6e4fb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDe9955a69-e5e8-43e4-a026-561833f0e52a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe9955a69-e5e8-43e4-a026-561833f0e52a"}},{"type":"GetParameter","id":"EIDe45547bb-1a86-4329-8dc3-3ebf94523104","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID780a855d-78ff-4ff0-8274-01ef29dcb3d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID780a855d-78ff-4ff0-8274-01ef29dcb3d5"}},{"type":"ServiceResponse","id":"EIDb25f224b-61cd-4dc9-8554-8116c2f22e9d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDb25f224b-61cd-4dc9-8554-8116c2f22e9d"}},{"type":"ServiceEndpoint","id":"EIDb7b94707-bbfd-4971-b002-2c43e469dff3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDdcb0012e-9f04-4f94-9666-3db73b63b5d4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa8cdc7c6-481b-4d58-ac31-0e0a9591c878","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDa8cdc7c6-481b-4d58-ac31-0e0a9591c878"}},{"type":"GetParameter","id":"EID3ebcde23-da22-41eb-a0ac-90fc99324383","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID41553f77-8f1b-424f-a58d-f93953fbbf77","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID41553f77-8f1b-424f-a58d-f93953fbbf77"}},{"type":"ServiceEndpoint","id":"EID04b85f54-9043-4bef-8083-f434f05339bf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDe8137f59-ca4f-434b-99ec-5e22c04d5236","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe8137f59-ca4f-434b-99ec-5e22c04d5236"}},{"type":"GetParameter","id":"EID87f9a0ce-2fd2-4b17-b9b1-bf56bc3f90e9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EID849e030c-8f64-41a7-996c-3c2261814911","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID849e030c-8f64-41a7-996c-3c2261814911"}},{"type":"ServiceEndpoint","id":"EID3ae6a2f5-ebae-4de1-af3d-8598b857f780","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID2aff4f38-0b44-47d2-b7e8-829cd0fa0fcc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID8f0743ab-c40c-46d3-971e-3c85f2d26937","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"GetParameter","id":"EID3785ed4e-50f7-45ac-95c2-a311551185b6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID2ebc45cd-cf33-4fec-8af3-146c97a54526","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2ebc45cd-cf33-4fec-8af3-146c97a54526"}},{"type":"ServiceEndpoint","id":"EID92af3605-2b5e-4034-9655-2aeb4b583ba5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EID54d6d1df-75d2-4f3c-a44f-ff17ebd9f39d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID54d6d1df-75d2-4f3c-a44f-ff17ebd9f39d"}},{"type":"Message","id":"EID93e5b6ee-478e-4ed3-898c-20174804fa72","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID93e5b6ee-478e-4ed3-898c-20174804fa72"}},{"type":"ServiceResponse","id":"EID84b81139-abaf-4977-8eb6-7e11c38b0b57","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID84b81139-abaf-4977-8eb6-7e11c38b0b57"}},{"type":"GetParameter","id":"EID5deeb5ef-1a18-4c87-a914-1b82960d915a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"Message","id":"EID560fb8b0-78b4-4f96-8599-f729991bd57c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID560fb8b0-78b4-4f96-8599-f729991bd57c"}},{"type":"ServiceResponse","id":"EID7f844949-e34a-4593-899f-b2b529edc0a4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID7f844949-e34a-4593-899f-b2b529edc0a4"}},{"type":"ServiceEndpoint","id":"EID98b5a041-5345-4362-8353-055273c1f664","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EIDc0f4b85d-5b6c-4f42-87f3-57e73b55de35","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID2a1f5600-4a4d-4735-b240-6686b11404ce","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2a1f5600-4a4d-4735-b240-6686b11404ce"}},{"type":"ServiceEndpoint","id":"EID982b1baf-ad94-4064-8346-490ca3426e6a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EIDc90c3bd0-3b18-4a5f-b2ed-b8296f1fb5b1","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDc90c3bd0-3b18-4a5f-b2ed-b8296f1fb5b1"}},{"type":"ServiceEndpoint","id":"EID12f13c00-b8f1-441f-b7c8-e579c92d2281","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDac2f2344-e4d0-47be-9038-5db771952268","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID92a89f43-07aa-446d-b77b-50008c285e82","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID92a89f43-07aa-446d-b77b-50008c285e82"}},{"type":"ServiceResponse","id":"EID8efa9152-0ade-4840-9f22-f0c7d9f16f56","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID8efa9152-0ade-4840-9f22-f0c7d9f16f56"}},{"type":"Message","id":"EIDe9e828e7-ff8b-4c4e-b3e9-4d179b6dac46","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe9e828e7-ff8b-4c4e-b3e9-4d179b6dac46"}},{"type":"Message","id":"EID6d781d52-9e28-444c-afe0-f10497f9bcfb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID6d781d52-9e28-444c-afe0-f10497f9bcfb"}},{"type":"Message","id":"EID2dba4e25-0d05-4f82-bee2-6979925afecf","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2dba4e25-0d05-4f82-bee2-6979925afecf"}},{"type":"ServiceEndpoint","id":"EID28f8b40c-181f-4db9-aa6a-72868fc232ba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDd4ea33f3-5086-4b0f-be41-8f149c7e0689","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDd4ea33f3-5086-4b0f-be41-8f149c7e0689"}},{"type":"ServiceResponse","id":"EIDf3bf2a08-d351-41a3-a098-92d038c4a265","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDf3bf2a08-d351-41a3-a098-92d038c4a265"}},{"type":"GetParameter","id":"EIDf9a84d0f-348b-443b-a6f5-b9157f480949","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd5d4da26-a5c8-4c33-b7b4-2126dc183fdf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDf8a9f95a-19ea-48a2-a405-f910536bbe23","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDf8a9f95a-19ea-48a2-a405-f910536bbe23"}},{"type":"GetParameter","id":"EIDa878f6a4-b9b5-469b-8e13-b10e6ae2aa62","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID1630d459-f5c2-46b9-b482-baa82b9a2bc8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID1630d459-f5c2-46b9-b482-baa82b9a2bc8"}},{"type":"ServiceResponse","id":"EID65997c03-be6a-4bf8-baff-465bdf41d434","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID65997c03-be6a-4bf8-baff-465bdf41d434"}},{"type":"ServiceResponse","id":"EID7381e4d8-91f2-4ced-907e-0573c43c390b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID7381e4d8-91f2-4ced-907e-0573c43c390b"}},{"type":"ServiceEndpoint","id":"EIDbe87dee4-fd3e-4cfd-b7ea-45b658d3e7c2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8088d325-47c5-4540-b969-7ca1e6deaf1c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID8088d325-47c5-4540-b969-7ca1e6deaf1c"}},{"type":"Message","id":"EIDf4fb24aa-8004-4d7a-898f-03a8a6c9f33e","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDf4fb24aa-8004-4d7a-898f-03a8a6c9f33e"}},{"type":"Message","id":"EID9df5be3a-c4ec-497c-8749-3806d510c15c","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID9df5be3a-c4ec-497c-8749-3806d510c15c"}},{"type":"LogFile","id":"EIDd111958c-8861-483f-92c8-7042324d8203","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDd111958c-8861-483f-92c8-7042324d8203"}},{"type":"GetParameter","id":"EID4f8e91ac-2bfa-4076-b3fa-d300fc469379","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID75e36537-8421-43d9-8ac2-ff728493aa04","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID75e36537-8421-43d9-8ac2-ff728493aa04"}},{"type":"ServiceResponse","id":"EID0aef387f-d5a7-438e-80db-bc4c0f880249","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID0aef387f-d5a7-438e-80db-bc4c0f880249"}},{"type":"Message","id":"EID6253c111-1ca0-47d7-91c3-89eebbd0ff21","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID6253c111-1ca0-47d7-91c3-89eebbd0ff21"}},{"type":"GetParameter","id":"EID2bbd8c9d-e7cf-47ab-862a-4ebe5e96cd23","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID5800aa6d-f83b-4c00-bcc3-8db63af5849b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDe8fde9a7-78bc-424b-b475-bf26cae14017","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDe8fde9a7-78bc-424b-b475-bf26cae14017"}},{"type":"GetParameter","id":"EID38d1f60b-aad5-4dc6-9826-fa82f2fc897f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8ac7cad5-a1b0-4984-900d-d5430f88123b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID8ac7cad5-a1b0-4984-900d-d5430f88123b"}},{"type":"GetParameter","id":"EIDd79cde1c-5bc1-4634-9adf-db0300b6ae0c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID08bf302f-30cd-48d3-8175-ff486a0b543a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID08bf302f-30cd-48d3-8175-ff486a0b543a"}},{"type":"ServiceEndpoint","id":"EID4d9023dd-4fa1-4bed-a47b-ca6b91042d48","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"GetParameter","id":"EID483c7573-1679-4dcd-8734-5551022ce9a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID27c5eec2-46bc-4106-a802-ff95e0899faf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceResponse","id":"EID1ed156fb-9b14-4a17-b3f2-aaa59dca16bf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID1ed156fb-9b14-4a17-b3f2-aaa59dca16bf"}},{"type":"Message","id":"EID0a1a4c4d-7dcd-4d17-a968-4891572c45e4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID0a1a4c4d-7dcd-4d17-a968-4891572c45e4"}},{"type":"Message","id":"EID4609eaa5-e410-4005-a79e-7cf7b705059d","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID4609eaa5-e410-4005-a79e-7cf7b705059d"}},{"type":"ServiceResponse","id":"EID826aeec7-6fbd-45e1-a2c6-0d5b9a876a3e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID826aeec7-6fbd-45e1-a2c6-0d5b9a876a3e"}},{"type":"ServiceResponse","id":"EID9cc7e53b-b33f-45d1-992a-0df875dadfa0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID9cc7e53b-b33f-45d1-992a-0df875dadfa0"}},{"type":"ServiceResponse","id":"EIDd1a7a592-179a-4792-990f-f119e2962352","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDd1a7a592-179a-4792-990f-f119e2962352"}},{"type":"ServiceEndpoint","id":"EID5cc72330-ce30-4882-90ca-3fa9883f8386","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"ServiceEndpoint","id":"EID5b7650c3-ff0e-48b4-8f28-928a169be4c4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID535c4621-570b-4e21-88c6-42ab6a47c6c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID179ee7e2-4645-4bc6-8296-6787f41b1d87","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID179ee7e2-4645-4bc6-8296-6787f41b1d87"}},{"type":"ServiceEndpoint","id":"EID8750cf26-7a7d-47b2-b1d8-94e491abe179","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDee891594-3ff8-49c3-bccf-e720f0642958","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID69a60824-2a3d-445f-854a-f141942414bf","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID69a60824-2a3d-445f-854a-f141942414bf"}},{"type":"ServiceEndpoint","id":"EIDa61227b1-2bd4-4432-90c5-4d16d043e3f9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID088698ac-714c-4ba6-a169-49db0b1897ad","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID088698ac-714c-4ba6-a169-49db0b1897ad"}},{"type":"GetParameter","id":"EID2d9f2cb3-cc2a-4e19-97bf-08813b26930c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID5972309b-0dfe-4406-837e-dca68dff3ea3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID5972309b-0dfe-4406-837e-dca68dff3ea3"}},{"type":"Message","id":"EID1dcdeda6-9898-453b-bd68-02819682c7dd","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID1dcdeda6-9898-453b-bd68-02819682c7dd"}},{"type":"ServiceEndpoint","id":"EID4d95c55b-2151-4ae4-a214-7527f97e86e0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDbc35a7ed-a683-47b6-ae19-31c444afcb67","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID574ef337-6ff6-4e1e-9c1c-355e1a24a45d","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID574ef337-6ff6-4e1e-9c1c-355e1a24a45d"}},{"type":"GetParameter","id":"EIDa700fd6d-b719-4b0a-8e70-af0c42487663","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EIDa0f9d350-2cb2-4ee0-86e7-defbc77b5dc0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDa0f9d350-2cb2-4ee0-86e7-defbc77b5dc0"}},{"type":"GetParameter","id":"EIDb35a2337-dac2-483b-abe9-acf671502ab3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDefdf3744-9a00-4126-9416-2b9edb9fc6c1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDefdf3744-9a00-4126-9416-2b9edb9fc6c1"}},{"type":"ServiceEndpoint","id":"EIDcc0d47ca-1cdf-4768-9ba4-f962c056e28d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9a600679-8767-4d46-a90b-eefad7533aa6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2488dea2-e097-4119-99a8-627a47d9e91d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID2488dea2-e097-4119-99a8-627a47d9e91d"}},{"type":"Message","id":"EIDab32fe4c-6aa4-4443-955a-4a493326544e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDab32fe4c-6aa4-4443-955a-4a493326544e"}},{"type":"GetParameter","id":"EID4b6ebe99-4cd6-40ff-b89d-ad8587fc0e5f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lMjdlNjFkOC0yNWIxLTQ1ZWUtYTJkZi0wNzEzMTJiYThhNjkvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDe97eea67-2e97-42d7-8a77-96e0557ff66a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDea66f765-484d-4044-9128-d1faec573afd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EIDd52c0c79-246f-4279-ba8d-8aef727a5bd7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19zdHJvb21nZWJpZWRkaXN0cmljdGVuX25sZF9hY3RfZ3BrZy56aXA="},{"type":"ServiceEndpoint","id":"EIDbb3b0175-3a18-4b34-b85f-ff7b5cd3225e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDaa856964-ba13-4d29-a03a-f2f6f4c5cd02","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"ServiceEndpoint","id":"EID35c469e7-9e10-48fd-b58a-8f3ec0f8238b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb6d48779-4eb5-4e64-a2eb-3741f59c4509","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDb6d48779-4eb5-4e64-a2eb-3741f59c4509"}},{"type":"ServiceEndpoint","id":"EID11205dc5-c323-4941-8ea7-60a7ed200e26","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyYWN0dWVlbC9hdG9tL3YxXzAva3J3X3N0cm9vbWdlYmllZGRpc3RyaWN0ZW5fbmxkX2FjdC54bWw="},{"type":"Message","id":"EID17a95264-0994-4ada-8e3c-ba8c65151d9e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EID17a95264-0994-4ada-8e3c-ba8c65151d9e"}},{"type":"ServiceResponse","id":"EIDc21ae8f2-a64b-4d47-bf07-f9e5b57582f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDf26641a1-f64b-461d-acc7-ab27eb01caa6/Attachments/EIDc21ae8f2-a64b-4d47-bf07-f9e5b57582f6"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:04:45Z","duration":40689,"status":"FAILED"}}}}}
11:06:03.484 [print] EID558d3592-5522-4907-8694-32ca604ccb78
11:06:03.484 [print] FAILED
11:06:03.484 [print] FAILED
11:06:03.484 [print] Conformance Class Download Service - Pre-defined Atom
11:06:03.484 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/558d3592-5522-4907-8694-32ca604ccb78.json
11:06:03.485 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/558d3592-5522-4907-8694-32ca604ccb78.json
11:06:03.485 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID558d3592-5522-4907-8694-32ca604ccb78/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:06:03.495 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:06:03.495 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:14:33.065 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:14:33.065 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:33.464 response time in milliseconds: 398.23 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:33 GMT 1 < X-Cnection: [close, close]
11:14:33.467 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:33.848 response time in milliseconds: 381.03 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:33 GMT 1 < X-Cnection: [close, close]
11:13:48.536 [print] testing url:https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml
11:13:48.538 request: 1 > HEAD https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:49.028 response time in milliseconds: 489.92 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3208 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:48 GMT 1 < Etag: "1679328017" 1 < Last-Modified: Tue, 27 Oct 2020 19:24:43 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:13:49.035 request: 1 > HEAD https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:49.399 response time in milliseconds: 364.00 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3208 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:49 GMT 1 < Etag: "1760385066" 1 < Last-Modified: Tue, 27 Oct 2020 19:15:59 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:55.657 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetCapabilities"}}}
11:13:55.658 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 287
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetCapabilities"}}}
11:13:59.320 response time in milliseconds: 3554.69
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:59 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883639148","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:59.320 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:08.804 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/hy-p/wfs?request=GetCapabilities
11:15:08.805 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/hy-p/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:09.201 response time in milliseconds: 395.98 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:09 GMT 1 < ETag: "1a31b-5af58ad4fedd0-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:09.207 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/hy-p/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:09.605 response time in milliseconds: 397.15 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:09 GMT 1 < ETag: "1a31b-5af58a64f34f9-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:09.605 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:12:17.152 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:12:17.160 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:17.548 response time in milliseconds: 388.12 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:17 GMT 1 < X-Cnection: [close, close]
11:12:17.553 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:17.963 response time in milliseconds: 408.92 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:17 GMT 1 < X-Cnection: [close, close]
11:09:06.827 [print] testing url:https://geodata.nationaalgeoregister.nl/wijkenbuurten2019/wfs?service=WFS&request=GetCapabilities
11:09:06.828 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2019/wfs?service=WFS&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:07.246 response time in milliseconds: 418.65 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:06 GMT 1 < X-Cnection: [close, close]
11:09:07.252 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2019/wfs?service=WFS&request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:07.665 response time in milliseconds: 411.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:07 GMT 1 < X-Cnection: [close, close]
11:09:07.666 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:14:08.804 [print] testing url:https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml
11:14:08.805 request: 1 > HEAD https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:09.166 response time in milliseconds: 360.90 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3250 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:09 GMT 1 < Etag: "2619513523" 1 < Last-Modified: Tue, 27 Oct 2020 19:15:53 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:14:09.174 request: 1 > HEAD https://service.pdok.nl/cbs/hh/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:09.531 response time in milliseconds: 356.40 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3250 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:14:09 GMT 1 < Etag: "2619513523" 1 < Last-Modified: Tue, 27 Oct 2020 19:15:53 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:15.350 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities"}}}
11:09:15.351 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities"}}}
11:09:17.491 response time in milliseconds: 2031.02
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:17 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883357323","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:17.491 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:24.019 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:13:24.020 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:13:54.361 java.net.SocketTimeoutException: Read timed out, http call failed after 30341 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns
11:13:54.362 http request failed:
java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:10:17.296 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:10:17.296 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:17.723 response time in milliseconds: 426.43 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:17 GMT 1 < X-Cnection: [close, close]
11:10:17.728 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:10:18.135 response time in milliseconds: 406.21 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:10:18 GMT 1 < X-Cnection: [close, close]
11:10:18.137 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:09:50.344 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml
11:09:50.345 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:50.741 response time in milliseconds: 395.45 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:50 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642237233A631EF 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:09:50.749 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:51.151 response time in milliseconds: 402.64 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 5631 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:51 GMT 1 < Etag: "49a033f09fcd1b18ab009d70bb5f15ba-1" 1 < Last-Modified: Tue, 08 Oct 2019 09:07:54 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223724C28F729 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:09:51.152 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
11:08:22.610 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:08:22.611 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:23.015 response time in milliseconds: 404.35 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:22 GMT 1 < X-Cnection: [close, close]
11:08:23.025 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:08:23.435 response time in milliseconds: 410.50 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:08:23 GMT 1 < X-Cnection: [close, close]
11:13:37.117 [print] testing url:https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=GetCapabilities&service=WCS
11:13:37.118 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=GetCapabilities&service=WCS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:37.540 response time in milliseconds: 422.12 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:37 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:37.546 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ahn2/wcs?request=GetCapabilities&service=WCS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:38.322 response time in milliseconds: 775.72 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:38 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:38.323 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:12:26.049 [print] testing url:https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities
11:12:26.049 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:26.483 response time in milliseconds: 433.13 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:26 GMT 1 < X-Cnection: [close, close]
11:12:26.494 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:26.883 response time in milliseconds: 388.70 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:26 GMT 1 < X-Cnection: [close, close]
11:12:26.885 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:09:35.612 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS
11:09:35.613 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:36.032 response time in milliseconds: 417.74 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:35 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:09:36.041 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:36.473 response time in milliseconds: 432.57 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:36 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:09:36.477 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:24.833 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities"}}}
11:12:24.834 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 290
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities"}}}
11:12:26.031 response time in milliseconds: 1179.64
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:25 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883545948","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:26.031 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:47.932 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-cdda/wfs?request=GetCapabilities"}}}
11:04:47.936 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 282
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-cdda/wfs?request=GetCapabilities"}}}
11:04:51.559 response time in milliseconds: 3517.01
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:51 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883091386","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:04:51.567 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:13:56.049 [print] testing url:https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetCapabilities
11:13:56.050 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:56.534 response time in milliseconds: 484.21 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 22281 1 < Content-Type: text/xml; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:55 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:56.541 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/kadastralekaart/wfs/v4_0?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:57.016 response time in milliseconds: 474.89 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 22281 1 < Content-Type: text/xml; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:56 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:57.018 assertion failed: path: $['Content-Type'][0], actual: 'text/xml; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:07:04.363 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}}}
11:07:04.364 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 297
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}}}
11:07:12.981 response time in milliseconds: 7854.56
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:07:12 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:07:09 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/b81dd0bc-c9b8-4759-b13a-e7b8aac238d2.json","testRuns":{"TestRun":{"id":"EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:07:09.314Z","testTasks":{"TestTask":{"id":"EIDdb956db8-5d2f-42fb-820d-b2246cc4a860","parent":{"ref":"EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDae5eba87-b205-408b-9b4e-e12930fbbcf1"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDae5eba87-b205-408b-9b4e-e12930fbbcf1","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:07:04.807Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:07:08.89Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:07:12.984 [print] EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2
11:07:12.985 [print] UNDEFINED
11:07:12.986 [print] Conformance Class Download Service - Pre-defined Atom
11:07:12.987 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/b81dd0bc-c9b8-4759-b13a-e7b8aac238d2.json
11:07:12.987 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/log
11:07:12.989 [print] statuspath TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2
11:07:12.989 [print] progresspath TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
11:07:12.992 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:13.510 response time in milliseconds: 517.60
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:07:13 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:13.510 [print] {
"val": "7",
"max": "8",
"log": [
"28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)",
"28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:07:09 - Preparing 1 Test Task:",
"28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)",
"28.10.2020 11:07:09 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:07:09 - with parameters: ",
"28.10.2020 11:07:09 - etf.testcases = *",
"28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:07:09 - Setting state to CREATED",
"28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z",
"28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:07:11 - Project Properties: ",
"28.10.2020 11:07:11 - etf.testcases - * ",
"28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ",
"28.10.2020 11:07:11 - username - ",
"28.10.2020 11:07:11 - authUser - ",
"28.10.2020 11:07:11 - authMethod - basic ",
"28.10.2020 11:07:11 - TestRunTask initialized"
]
}
11:07:13.511 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:14.031 response time in milliseconds: 519.97
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:07:13 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"7","max":"8","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:14.032 retry condition not satisfied: response.val == response.max
11:07:14.032 sleeping before retry #1
11:07:19.033 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:21.851 response time in milliseconds: 2817.20
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:07:21 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:21.856 retry condition not satisfied: response.val == response.max
11:07:21.856 sleeping before retry #2
11:07:26.858 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:27.497 response time in milliseconds: 634.93
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:07:27 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"45","max":"46","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:27.503 retry condition not satisfied: response.val == response.max
11:07:27.503 sleeping before retry #3
11:07:32.504 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:33.035 response time in milliseconds: 528.95
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:07:32 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"53","max":"54","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:33.036 retry condition not satisfied: response.val == response.max
11:07:33.036 sleeping before retry #4
11:07:38.037 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:38.548 response time in milliseconds: 510.79
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:07:38 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"62","max":"63","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:38.548 retry condition not satisfied: response.val == response.max
11:07:38.549 sleeping before retry #5
11:07:43.551 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:44.233 response time in milliseconds: 680.91
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:07:44 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"74","max":"75","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized"]}
11:07:44.233 retry condition not satisfied: response.val == response.max
11:07:44.233 sleeping before retry #6
11:07:49.234 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:49.770 response time in milliseconds: 534.16
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:07:49 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"93","max":"94","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized","28.10.2020 11:07:48 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:49.770 retry condition not satisfied: response.val == response.max
11:07:49.771 sleeping before retry #7
11:07:54.771 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:55.299 response time in milliseconds: 518.42
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:07:55 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"110","max":"111","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized","28.10.2020 11:07:48 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:07:55.299 retry condition not satisfied: response.val == response.max
11:07:55.299 sleeping before retry #8
11:08:00.300 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:00.816 response time in milliseconds: 515.02
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:08:00 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"130","max":"131","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized","28.10.2020 11:07:48 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:08:00.816 retry condition not satisfied: response.val == response.max
11:08:00.816 sleeping before retry #9
11:08:05.817 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:06.347 response time in milliseconds: 529.78
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:08:06 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"156","max":"157","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized","28.10.2020 11:07:48 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:08:06.347 retry condition not satisfied: response.val == response.max
11:08:06.347 sleeping before retry #10
11:08:11.348 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:11.922 response time in milliseconds: 572.32
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:08:11 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:07:09 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:09 UTC 2020)","28.10.2020 11:07:09 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:09 - Preparing 1 Test Task:","28.10.2020 11:07:09 - TestTask 1 (db956db8-5d2f-42fb-820d-b2246cc4a860)","28.10.2020 11:07:09 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:09 - with parameters: ","28.10.2020 11:07:09 - etf.testcases = *","28.10.2020 11:07:09 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:09 - Setting state to CREATED","28.10.2020 11:07:09 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:09 - Starting TestRun.b81dd0bc-c9b8-4759-b13a-e7b8aac238d2 at 2020-10-28T11:07:11Z","28.10.2020 11:07:11 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:11 - Project Properties: ","28.10.2020 11:07:11 - etf.testcases - * ","28.10.2020 11:07:11 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml ","28.10.2020 11:07:11 - username - ","28.10.2020 11:07:11 - authUser - ","28.10.2020 11:07:11 - authMethod - basic ","28.10.2020 11:07:11 - TestRunTask initialized","28.10.2020 11:07:48 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:08:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:08:11.922 retry condition not satisfied: response.val == response.max
11:08:11.922 sleeping before retry #11
11:08:16.924 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:18.930 response time in milliseconds: 2005.86
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:08:18 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:08:18.930 retry condition satisfied
11:08:18.930 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:08:18.931 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:22.534 response time in milliseconds: 2511.63
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Cache-Control: public, max-age=120
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:08:21 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Last-Modified: Wed, 28 Oct 2020 11:08:17 GMT
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/b81dd0bc-c9b8-4759-b13a-e7b8aac238d2.json","testRuns":{"TestRun":{"id":"EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:07:09.314Z","testTasks":{"TestTask":{"id":"EIDdb956db8-5d2f-42fb-820d-b2246cc4a860","parent":{"ref":"EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDae5eba87-b205-408b-9b4e-e12930fbbcf1"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDae5eba87-b205-408b-9b4e-e12930fbbcf1","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:07:04.807Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:07:08.89Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnmarienestrategie2018/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120","testObject":{"ref":"EIDae5eba87-b205-408b-9b4e-e12930fbbcf1"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee3e82c-0175-1000-8583-13ae4d4ac65f","testCaseResults":{"TestCaseResult":[{"id":"EID6ee3e82c-0175-1000-e537-993c6f8422c4","testStepResults":{"TestStepResult":[{"id":"EID6ee3e82d-0175-1000-e4b7-41e2fc022165","parent":{"ref":"EID6ee3e82c-0175-1000-e537-993c6f8422c4"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:07:11Z","duration":15,"status":"PASSED"},{"id":"EID6ee3e83d-0175-1000-2c16-ca2dd19d1756","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3ec18-0175-1000-59bf-75aa2bf45838","parent":{"ref":"EID6ee3e83d-0175-1000-2c16-ca2dd19d1756"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:07:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee3ec18-0175-1000-32a9-53846e46a4e9","parent":{"ref":"EID6ee3e83d-0175-1000-2c16-ca2dd19d1756"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:07:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee3ec18-0175-1000-97eb-e9298bd687d9","parent":{"ref":"EID6ee3e83d-0175-1000-2c16-ca2dd19d1756"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:07:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee3ec18-0175-1000-7b1a-16b404db48b8","parent":{"ref":"EID6ee3e83d-0175-1000-2c16-ca2dd19d1756"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:07:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf518d4c3-6f3b-4fc5-b9b3-70e84f736d88"},{"ref":"EID3eab0ede-e0c7-4d70-a868-1a0c25829f84"},{"ref":"EID9df18f6f-bd66-4048-bf8e-edba8834d498"}]},"parent":{"ref":"EID6ee3e82c-0175-1000-e537-993c6f8422c4"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:07:11Z","duration":895,"status":"PASSED"}]},"parent":{"ref":"EID6ee3e82c-0175-1000-8583-13ae4d4ac65f"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:07:11Z","duration":1024,"status":"PASSED"},{"id":"EID6ee3ec2c-0175-1000-899b-2f5a18e5ea9c","testStepResults":{"TestStepResult":{"id":"EID6ee3ec2c-0175-1000-fe46-704bfb26b2d3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3f058-0175-1000-f747-4aa01901d3fa","parent":{"ref":"EID6ee3ec2c-0175-1000-fe46-704bfb26b2d3"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f058-0175-1000-007e-e93575645812","parent":{"ref":"EID6ee3ec2c-0175-1000-fe46-704bfb26b2d3"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f058-0175-1000-9afb-09ba2f4915a6","parent":{"ref":"EID6ee3ec2c-0175-1000-fe46-704bfb26b2d3"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID023ceda5-0daf-4be9-8c4a-179f41371eeb"},{"ref":"EIDc27aea2c-c5bd-4c66-b028-136bc652c29b"},{"ref":"EID1c8bb413-4e6a-4230-9810-5976848059d8"}]},"parent":{"ref":"EID6ee3ec2c-0175-1000-899b-2f5a18e5ea9c"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:07:12Z","duration":991,"status":"PASSED"}},"parent":{"ref":"EID6ee3e82c-0175-1000-8583-13ae4d4ac65f"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:07:12Z","duration":1069,"status":"PASSED"}]},"parent":{"ref":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:07:11Z","duration":2093,"status":"PASSED"},{"id":"EID6ee3f059-0175-1000-c7cb-383ae840af45","testCaseResults":{"TestCaseResult":[{"id":"EID6ee3f059-0175-1000-ebc5-cee0ce8021dd","testStepResults":{"TestStepResult":[{"id":"EID6ee3f062-0175-1000-91ae-57cbf1948db0","parent":{"ref":"EID6ee3f059-0175-1000-ebc5-cee0ce8021dd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:07:13Z","duration":991,"status":"PASSED"},{"id":"EID6ee3f062-0175-1000-8d82-252aab067f02","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3f2cb-0175-1000-82ef-b3ff141556b6","parent":{"ref":"EID6ee3f062-0175-1000-8d82-252aab067f02"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f2cb-0175-1000-97a5-c8300b776069","parent":{"ref":"EID6ee3f062-0175-1000-8d82-252aab067f02"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f2cb-0175-1000-00ba-b4d86eabf2d3","parent":{"ref":"EID6ee3f062-0175-1000-8d82-252aab067f02"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f2cb-0175-1000-0818-01ef8c7a7872","parent":{"ref":"EID6ee3f062-0175-1000-8d82-252aab067f02"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f2cb-0175-1000-afb6-28ca0ccfc1cf","parent":{"ref":"EID6ee3f062-0175-1000-8d82-252aab067f02"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:07:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3ba29d8a-3ced-4797-a7dd-d58d28538116"},{"ref":"EIDcd7d057e-fd33-4b80-8e46-e339667fe652"},{"ref":"EID4fcc8046-8013-4274-bb5f-45e8fa516e03"}]},"parent":{"ref":"EID6ee3f059-0175-1000-ebc5-cee0ce8021dd"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:07:13Z","duration":500,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:07:13Z","duration":636,"status":"PASSED"},{"id":"EID6ee3f2d5-0175-1000-0f75-82f4070757da","testStepResults":{"TestStepResult":[{"id":"EID6ee3f2d5-0175-1000-bfc9-537bc961fc30","attachments":{"attachment":[{"ref":"EIDeeed11ca-69b0-4fd4-b534-3022b7a2eb92"},{"ref":"EIDdd729076-8f5b-47dc-83a4-4e4ef2fc1275"}]},"parent":{"ref":"EID6ee3f2d5-0175-1000-0f75-82f4070757da"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:07:14Z","duration":943,"status":"PASSED"},{"id":"EID6ee3f6b1-0175-1000-30f7-18b249aeee4d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3f86d-0175-1000-ba5c-a4cf745937ef","parent":{"ref":"EID6ee3f6b1-0175-1000-30f7-18b249aeee4d"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f86d-0175-1000-d3a2-e63492a4003e","parent":{"ref":"EID6ee3f6b1-0175-1000-30f7-18b249aeee4d"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f86d-0175-1000-8940-5c207454046f","parent":{"ref":"EID6ee3f6b1-0175-1000-30f7-18b249aeee4d"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3f86d-0175-1000-22c6-02fc9a74a5fb","parent":{"ref":"EID6ee3f6b1-0175-1000-30f7-18b249aeee4d"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd7f01001-3771-4a23-95ec-3388792fa7dd"},{"ref":"EID3e680204-ecfd-4c2f-ae57-adcd54a5d6f2"},{"ref":"EIDe1fe4858-7407-42ef-b487-6701bfb405c9"}]},"parent":{"ref":"EID6ee3f2d5-0175-1000-0f75-82f4070757da"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:07:14Z","duration":293,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:07:14Z","duration":1462,"status":"PASSED"},{"id":"EID6ee3f88b-0175-1000-2e43-9bca2324d1aa","testStepResults":{"TestStepResult":[{"id":"EID6ee3f88b-0175-1000-632e-a42343f427fb","attachments":{"attachment":[{"ref":"EID494fd063-bf3e-454b-bb54-171a50ec996e"},{"ref":"EIDea6803b3-bdb3-40f6-a4af-6d4f13e22d80"}]},"parent":{"ref":"EID6ee3f88b-0175-1000-2e43-9bca2324d1aa"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:07:15Z","duration":143,"status":"PASSED"},{"id":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3fa2e-0175-1000-ff7d-33bffdf5cc7a","parent":{"ref":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fa2e-0175-1000-9f5b-93751adceb46","parent":{"ref":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fa2e-0175-1000-f264-fa8eb46e6a47","parent":{"ref":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fa2e-0175-1000-b083-e255a60188fa","parent":{"ref":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fa2e-0175-1000-381b-3fd1119bd4dc","parent":{"ref":"EID6ee3f94b-0175-1000-bb2a-b0edc6d896ad"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:07:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID605af5f0-9c36-4804-92d4-d058941985f9"},{"ref":"EID121dc584-ba46-47b4-b362-31fe0f6dee58"},{"ref":"EIDa7c6c022-328f-4834-a877-813e0e17073d"}]},"parent":{"ref":"EID6ee3f88b-0175-1000-2e43-9bca2324d1aa"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:07:15Z","duration":98,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:07:15Z","duration":419,"status":"PASSED"},{"id":"EID6ee3fa2e-0175-1000-4deb-e013955c673c","testStepResults":{"TestStepResult":[{"id":"EID6ee3fa2e-0175-1000-0abe-0370522e75af","attachments":{"attachment":[{"ref":"EID5ed427ac-2e67-44fd-b643-a2777669d277"},{"ref":"EIDf47f537c-f2d9-448d-9894-9e93dc6b9db6"}]},"parent":{"ref":"EID6ee3fa2e-0175-1000-4deb-e013955c673c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:07:15Z","duration":102,"status":"PASSED"},{"id":"EID6ee3fadb-0175-1000-475e-3389f0d6e6dc","parent":{"ref":"EID6ee3fa2e-0175-1000-4deb-e013955c673c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:07:16Z","duration":7,"status":"PASSED"},{"id":"EID6ee3fae2-0175-1000-be69-b6673262a6c7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3fc03-0175-1000-70c4-70e9df9dc0bd","parent":{"ref":"EID6ee3fae2-0175-1000-be69-b6673262a6c7"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fc03-0175-1000-9b47-956072bca291","parent":{"ref":"EID6ee3fae2-0175-1000-be69-b6673262a6c7"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fc03-0175-1000-ef14-af037014abcb","parent":{"ref":"EID6ee3fae2-0175-1000-be69-b6673262a6c7"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fc03-0175-1000-7c54-899e2af31cf3","parent":{"ref":"EID6ee3fae2-0175-1000-be69-b6673262a6c7"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfc9b24f2-c651-4cea-be49-8c27f05fe202"},{"ref":"EID1368d856-8f10-499a-a56a-e6e464f61d10"},{"ref":"EID902968c8-5ceb-41f1-a459-9d768a2f4f90"}]},"parent":{"ref":"EID6ee3fa2e-0175-1000-4deb-e013955c673c"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:07:16Z","duration":117,"status":"PASSED"},{"id":"EID6ee3fc04-0175-1000-c22c-acc13b89ee2b","attachments":{"attachment":{"ref":"EID30ec55f3-7fdf-46c9-af93-88acbbad0954"}},"parent":{"ref":"EID6ee3fa2e-0175-1000-4deb-e013955c673c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee40010-0175-1000-0dfb-4afa08f54db3","parent":{"ref":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:07:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee40010-0175-1000-9a96-06f6e21ed3af","parent":{"ref":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:07:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee40010-0175-1000-6421-5e66b6d1139b","parent":{"ref":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:07:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee40010-0175-1000-b29e-9107cae1ca68","parent":{"ref":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:07:17Z","duration":0,"status":"PASSED"},{"id":"EID6ee40010-0175-1000-4a3f-1dee99d31775","parent":{"ref":"EID6ee3fc10-0175-1000-cb3a-b41cf5c1d9a1"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:07:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7014511f-bb77-4700-ac84-1950117b9e04"},{"ref":"EID8bd40abd-91d1-49f2-b581-aa0bae192e56"},{"ref":"EIDce97cfa4-4f08-48b6-98d2-5d4a02badf70"}]},"parent":{"ref":"EID6ee3fa2e-0175-1000-4deb-e013955c673c"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:07:16Z","duration":910,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:07:15Z","duration":1533,"status":"PASSED"},{"id":"EID6ee4002b-0175-1000-d6b9-5fd51697475d","testStepResults":{"TestStepResult":[{"id":"EID6ee4002b-0175-1000-70b3-b12ac037055a","attachments":{"attachment":[{"ref":"EIDf30cfab0-d80a-4714-a90c-f1c6fb0ce0ad"},{"ref":"EID987998da-0659-4c08-9143-f8625c576f1f"}]},"parent":{"ref":"EID6ee4002b-0175-1000-d6b9-5fd51697475d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:07:17Z","duration":4382,"status":"PASSED"},{"id":"EID6ee41174-0175-1000-f71b-1ba91b3571c0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee41346-0175-1000-45e8-a32636aa5365","parent":{"ref":"EID6ee41174-0175-1000-f71b-1ba91b3571c0"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41346-0175-1000-66b5-c20035fa42f2","parent":{"ref":"EID6ee41174-0175-1000-f71b-1ba91b3571c0"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41346-0175-1000-939b-3d6447fd9a65","parent":{"ref":"EID6ee41174-0175-1000-f71b-1ba91b3571c0"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41346-0175-1000-2d5d-2228ac1ff059","parent":{"ref":"EID6ee41174-0175-1000-f71b-1ba91b3571c0"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf47382ff-969f-413b-8ad4-5f82ba1fee20"},{"ref":"EID09a95fb9-9a5c-4114-bd6e-dcc4d4a78043"},{"ref":"EIDf1cb77f7-ff63-4dd6-ab52-b39821266f99"}]},"parent":{"ref":"EID6ee4002b-0175-1000-d6b9-5fd51697475d"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:07:21Z","duration":340,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:07:17Z","duration":4891,"status":"PASSED"},{"id":"EID6ee4134f-0175-1000-aa32-0f2572c645cd","testStepResults":{"TestStepResult":[{"id":"EID6ee41350-0175-1000-aea4-0026468d9e77","attachments":{"attachment":[{"ref":"EIDc2f90a90-ff05-4811-bd6b-44ddfaae1773"},{"ref":"EIDab5ee120-b323-4e95-a0c5-fa41f0e982e2"}]},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:07:22Z","duration":1281,"status":"PASSED"},{"id":"EID6ee4188e-0175-1000-da4d-24ea6356ceef","parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:07:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee418a0-0175-1000-c9ae-01d64e77b138","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee41b48-0175-1000-f2a3-b4380422f769","parent":{"ref":"EID6ee418a0-0175-1000-c9ae-01d64e77b138"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee41b48-0175-1000-5b50-ca54ac444d8a","parent":{"ref":"EID6ee418a0-0175-1000-c9ae-01d64e77b138"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee41b48-0175-1000-802a-3f9abe08b6df","parent":{"ref":"EID6ee418a0-0175-1000-c9ae-01d64e77b138"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee41b48-0175-1000-5ca0-e7a2d23de033","parent":{"ref":"EID6ee418a0-0175-1000-c9ae-01d64e77b138"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb4424c1c-03d1-4c0e-9e9a-b58a294edcec"},{"ref":"EID8e9aa79d-7136-401d-9659-b8dad2bdcc70"},{"ref":"EID41238ce4-e21b-4018-9fc0-e0b4756608f0"}]},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:07:23Z","duration":597,"status":"PASSED"},{"id":"EID6ee41b48-0175-1000-44a8-76ed544dcfea","attachments":{"attachment":{"ref":"EID98112b1d-2667-474a-b7ff-09f932c0de26"}},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:07:24Z","duration":1,"status":"PASSED"},{"id":"EID6ee41b60-0175-1000-4aad-76834ae6bdde","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee41d90-0175-1000-dc96-57d7a0ad404f","parent":{"ref":"EID6ee41b60-0175-1000-4aad-76834ae6bdde"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee41d90-0175-1000-d2f7-a0a5045e3076","parent":{"ref":"EID6ee41b60-0175-1000-4aad-76834ae6bdde"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"},{"id":"EID6ee41d90-0175-1000-c48c-529781cf0073","parent":{"ref":"EID6ee41b60-0175-1000-4aad-76834ae6bdde"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd395f74c-cb2a-46df-8233-9f319500bbed"},{"ref":"EID110a88a1-23ba-4ed7-8ac9-3dbc1c3bd987"},{"ref":"EID33ab6579-80e0-4633-8784-ec6a865b7fe4"}]},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:07:24Z","duration":133,"status":"PASSED"},{"id":"EID6ee41d90-0175-1000-0961-5906287885b6","attachments":{"attachment":{"ref":"EID38aead60-667c-4743-83e7-6e36f44aef92"}},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:07:24Z","duration":1,"status":"PASSED"},{"id":"EID6ee41da8-0175-1000-c10a-7704f537c60e","attachments":{"attachment":{"ref":"EID8ad22974-9b4a-4346-9b0f-bdbd77838712"}},"parent":{"ref":"EID6ee4134f-0175-1000-aa32-0f2572c645cd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:07:24Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:07:22Z","duration":2661,"status":"PASSED"},{"id":"EID6ee41db4-0175-1000-7220-fa96b130f300","testStepResults":{"TestStepResult":[{"id":"EID6ee41db4-0175-1000-4516-edcfec65be1f","attachments":{"attachment":[{"ref":"EIDdb4d0331-772e-48fc-8a99-9f2a1a0dd05f"},{"ref":"EID799dce4a-d215-41d9-810c-4f23dabea0f5"}]},"parent":{"ref":"EID6ee41db4-0175-1000-7220-fa96b130f300"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:07:24Z","duration":1204,"status":"PASSED"},{"id":"EID6ee4228c-0175-1000-92fd-ad1c3c35626e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee425f1-0175-1000-8574-420c7eaa721f","parent":{"ref":"EID6ee4228c-0175-1000-92fd-ad1c3c35626e"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:07:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee425f1-0175-1000-54f2-b45683b97d26","parent":{"ref":"EID6ee4228c-0175-1000-92fd-ad1c3c35626e"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:07:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee425f1-0175-1000-e334-3eefa5a14c79","parent":{"ref":"EID6ee4228c-0175-1000-92fd-ad1c3c35626e"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:07:27Z","duration":0,"status":"PASSED"},{"id":"EID6ee425f1-0175-1000-7096-0d6487bf86f2","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee4228c-0175-1000-92fd-ad1c3c35626e"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:07:27Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDbeae5212-3494-4b93-a1bd-81bdc758ca1f"},{"ref":"EIDfe6581c7-9a1b-4251-947e-66d45de40314"},{"ref":"EID1fb50f36-c5e0-44a0-8e53-86642cb137f4"}]},"parent":{"ref":"EID6ee41db4-0175-1000-7220-fa96b130f300"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:07:26Z","duration":762,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:07:24Z","duration":2110,"status":"PASSED_MANUAL"},{"id":"EID6ee425f2-0175-1000-b974-65db6c257038","testStepResults":{"TestStepResult":{"id":"EID6ee425fd-0175-1000-3e80-fe66dedadf10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4322e-0175-1000-1b5d-409706a0d802","parent":{"ref":"EID6ee425fd-0175-1000-3e80-fe66dedadf10"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:07:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee4322e-0175-1000-47bf-7c62f1593a45","parent":{"ref":"EID6ee425fd-0175-1000-3e80-fe66dedadf10"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:07:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee4322e-0175-1000-f14e-13e08ab9f044","parent":{"ref":"EID6ee425fd-0175-1000-3e80-fe66dedadf10"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:07:30Z","duration":0,"status":"PASSED"},{"id":"EID6ee4322e-0175-1000-b335-8b6d7afcea38","parent":{"ref":"EID6ee425fd-0175-1000-3e80-fe66dedadf10"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:07:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb584cdc-9329-483e-b881-d6df58ebab2d"},{"ref":"EID5fe80150-5ed0-416c-be83-1265370927ba"},{"ref":"EID7e488551-0b1d-437e-b550-af4accf1c1cc"}]},"parent":{"ref":"EID6ee425f2-0175-1000-b974-65db6c257038"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:07:27Z","duration":2977,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:07:27Z","duration":3148,"status":"PASSED"},{"id":"EID6ee4323f-0175-1000-2ab2-b6293b0420ae","testStepResults":{"TestStepResult":{"id":"EID6ee4323f-0175-1000-6a37-fd009743c5fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4357f-0175-1000-6d99-8e949caaf8e1","parent":{"ref":"EID6ee4323f-0175-1000-6a37-fd009743c5fc"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee4357f-0175-1000-6a88-30b2a7db87ee","parent":{"ref":"EID6ee4323f-0175-1000-6a37-fd009743c5fc"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee4357f-0175-1000-19fc-004ac856f467","parent":{"ref":"EID6ee4323f-0175-1000-6a37-fd009743c5fc"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee4357f-0175-1000-fcb8-bb097d9db4c0","parent":{"ref":"EID6ee4323f-0175-1000-6a37-fd009743c5fc"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7aa590b5-1035-4bf7-a500-5e36b0a46d68"},{"ref":"EIDe86ff05a-65eb-43e2-9a6e-385958f28247"},{"ref":"EID1003a81e-2bea-487d-8e8d-f779cf4cebdd"}]},"parent":{"ref":"EID6ee4323f-0175-1000-2ab2-b6293b0420ae"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:07:30Z","duration":742,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:07:30Z","duration":840,"status":"PASSED"},{"id":"EID6ee43588-0175-1000-6d0b-c5eec80609e3","testStepResults":{"TestStepResult":[{"id":"EID6ee43588-0175-1000-55fb-16a68f7a5fd6","attachments":{"attachment":[{"ref":"EID9e3b0aa3-be73-4816-99d9-05073c1ffdda"},{"ref":"EIDe31a5291-c4d0-40cb-b509-d665acd3b207"},{"ref":"EID093d8c5d-24d3-4a6a-a427-9b3bb5e13d6e"},{"ref":"EIDd69495ad-42f1-40ff-babc-3b0b8fdcdcd2"},{"ref":"EID082c1e5d-bb6b-4f24-87c1-c190ecce7b96"},{"ref":"EIDe4531ca2-3102-4f20-9541-734e69223971"},{"ref":"EIDe55a5b41-ae93-4123-92c1-aa275a98d842"},{"ref":"EID53233b6a-145c-4275-8e35-2768a275b14b"},{"ref":"EID5e0689f1-f7eb-4939-9498-27a704b2965b"},{"ref":"EID8cff9e02-b80c-402b-8c22-1205713a8431"},{"ref":"EID5b48eb09-9b60-4d3a-87ce-abc47e09f0f4"},{"ref":"EID7d87df33-82a7-4a4d-8337-b3bbd565f76f"}]},"parent":{"ref":"EID6ee43588-0175-1000-6d0b-c5eec80609e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:07:31Z","duration":3161,"status":"PASSED"},{"id":"EID6ee442e1-0175-1000-a4fc-0169f8817989","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee447af-0175-1000-d9b4-c3ac895a60d0","parent":{"ref":"EID6ee442e1-0175-1000-a4fc-0169f8817989"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:07:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee447af-0175-1000-cfe5-03eca1bd8ecf","parent":{"ref":"EID6ee442e1-0175-1000-a4fc-0169f8817989"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:07:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee447af-0175-1000-ac3c-795bbc76ce67","parent":{"ref":"EID6ee442e1-0175-1000-a4fc-0169f8817989"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:07:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee447af-0175-1000-4cce-123495074964","parent":{"ref":"EID6ee442e1-0175-1000-a4fc-0169f8817989"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:07:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee447af-0175-1000-6b06-4dfeb42cd27c","parent":{"ref":"EID6ee442e1-0175-1000-a4fc-0169f8817989"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:07:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID876b7a60-c86c-40b1-8fc2-30b49c3c0557"},{"ref":"EIDed9b1f4d-3145-47b5-ad85-9b9d7f19c12b"},{"ref":"EID9115763a-7ebc-40a0-92b5-327e707fbb5b"}]},"parent":{"ref":"EID6ee43588-0175-1000-6d0b-c5eec80609e3"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:07:34Z","duration":1093,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:07:31Z","duration":4655,"status":"PASSED"},{"id":"EID6ee447b7-0175-1000-54d8-a91015af2161","testStepResults":{"TestStepResult":{"id":"EID6ee447b7-0175-1000-a18f-f90873322b6e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4508a-0175-1000-483d-061e901f5abe","parent":{"ref":"EID6ee447b7-0175-1000-a18f-f90873322b6e"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:07:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee4508a-0175-1000-53cc-9378467feeab","parent":{"ref":"EID6ee447b7-0175-1000-a18f-f90873322b6e"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:07:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee4508a-0175-1000-1f7f-f8dc4f3f9c06","parent":{"ref":"EID6ee447b7-0175-1000-a18f-f90873322b6e"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:07:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee4508a-0175-1000-b8e1-7a84228e6089","parent":{"ref":"EID6ee447b7-0175-1000-a18f-f90873322b6e"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:07:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2e3c14ab-c4e5-409b-9d1c-09b2e58febb1"},{"ref":"EIDbe717ada-132f-4a41-b73f-0554c78d2bdf"},{"ref":"EID74410164-588f-4ba7-aabd-f3a1bb6fd2a8"}]},"parent":{"ref":"EID6ee447b7-0175-1000-54d8-a91015af2161"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:07:35Z","duration":2153,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:07:35Z","duration":2268,"status":"PASSED"},{"id":"EID6ee45094-0175-1000-b146-3fde0feebc4e","testStepResults":{"TestStepResult":{"id":"EID6ee45094-0175-1000-e9fc-3874add5f556","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee45272-0175-1000-68a9-f65ad176fc63","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-e323-97cf4e36cfad","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-433a-d5eecf701f42","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-2d64-44b53729500b","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-311a-509b20c615cc","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-f4db-a08ad9af89a1","parent":{"ref":"EID6ee45094-0175-1000-e9fc-3874add5f556"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:07:38Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc372c928-e548-474d-89cc-7ff1341f533f"},{"ref":"EID1a36e236-8819-4392-900a-48bb9dd3878e"},{"ref":"EID5853f0c2-b084-4e20-830e-5f7dcc9db042"}]},"parent":{"ref":"EID6ee45094-0175-1000-b146-3fde0feebc4e"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:07:38Z","duration":378,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:07:38Z","duration":478,"status":"PASSED"},{"id":"EID6ee45272-0175-1000-3930-c70eefd231ba","testStepResults":{"TestStepResult":{"id":"EID6ee45272-0175-1000-2029-abdc8e28b06b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee45c87-0175-1000-8f89-5f2abbe013ce","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee45c87-0175-1000-53fd-2a7d88a4d480","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee45c87-0175-1000-60b6-3ec32456c94a","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee45c87-0175-1000-22fb-65f463687eac","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee45c87-0175-1000-baf7-2ea1a451cca5","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"},{"id":"EID6ee45c87-0175-1000-2277-3212de35023b","parent":{"ref":"EID6ee45272-0175-1000-2029-abdc8e28b06b"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:07:41Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDed6e0a53-577d-45af-a58c-e8bba19fed7d"},{"ref":"EID6ed5485c-66e0-46bd-be75-07ccf3fc52b6"},{"ref":"EIDe6b86584-3a77-43ca-b2f5-21c6d1db21bc"}]},"parent":{"ref":"EID6ee45272-0175-1000-3930-c70eefd231ba"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:07:38Z","duration":2406,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:07:38Z","duration":2589,"status":"PASSED"},{"id":"EID6ee45c90-0175-1000-40f8-e9d099fcdd7c","testStepResults":{"TestStepResult":{"id":"EID6ee45c9d-0175-1000-3d81-17e704e39817","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee46900-0175-1000-42a3-9d1962c0e3c6","parent":{"ref":"EID6ee45c9d-0175-1000-3d81-17e704e39817"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46900-0175-1000-9414-cad7422e9715","parent":{"ref":"EID6ee45c9d-0175-1000-3d81-17e704e39817"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46900-0175-1000-4ad3-5ac51b7f524c","parent":{"ref":"EID6ee45c9d-0175-1000-3d81-17e704e39817"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46900-0175-1000-09c6-4c0605655d8b","parent":{"ref":"EID6ee45c9d-0175-1000-3d81-17e704e39817"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5fb9985d-3e83-4692-98ac-139ed338eb01"},{"ref":"EIDcb8adbb0-2485-4abc-ae6a-3e6292d24490"},{"ref":"EID14014cc4-8fc7-4e32-9659-52cf7a55f3be"}]},"parent":{"ref":"EID6ee45c90-0175-1000-40f8-e9d099fcdd7c"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:07:41Z","duration":3065,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:07:41Z","duration":3184,"status":"PASSED"},{"id":"EID6ee46901-0175-1000-fd3d-86ab45fcbc57","testStepResults":{"TestStepResult":[{"id":"EID6ee46901-0175-1000-9093-5ffc787cc025","attachments":{"attachment":[{"ref":"EID25a39f30-abbc-4997-8f4a-dd5223de1ebe"},{"ref":"EID87fc9588-f21e-4dd2-9c8f-4fb2a960d719"},{"ref":"EID7ca7d974-ec7e-41f7-8b8d-b212f060bf28"},{"ref":"EID9f654110-1a24-43db-9482-5dc659e00b80"}]},"parent":{"ref":"EID6ee46901-0175-1000-fd3d-86ab45fcbc57"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:07:44Z","duration":1667,"status":"PASSED"},{"id":"EID6ee46fbb-0175-1000-6272-7e6cb97292aa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee471a8-0175-1000-4fa4-3a8548b711f8","parent":{"ref":"EID6ee46fbb-0175-1000-6272-7e6cb97292aa"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee471a8-0175-1000-191b-01fb974b3bb2","parent":{"ref":"EID6ee46fbb-0175-1000-6272-7e6cb97292aa"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee471a8-0175-1000-3d10-84d9043c19d7","parent":{"ref":"EID6ee46fbb-0175-1000-6272-7e6cb97292aa"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee471a8-0175-1000-b785-205cad8afafb","parent":{"ref":"EID6ee46fbb-0175-1000-6272-7e6cb97292aa"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID90952223-5242-44ab-b7ba-be6753cf47f6"},{"ref":"EID3d09cb1d-2659-4c32-9b4b-5372380f0a80"},{"ref":"EIDc6e5c9f8-1d2f-4594-953b-4301b09ecf97"}]},"parent":{"ref":"EID6ee46901-0175-1000-fd3d-86ab45fcbc57"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:07:45Z","duration":413,"status":"PASSED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:07:44Z","duration":2215,"status":"PASSED"},{"id":"EID6ee471a8-0175-1000-3b6c-21fbebaa88e5","testStepResults":{"TestStepResult":{"id":"EID6ee471a8-0175-1000-5f8c-acaea19b5be6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47270-0175-1000-8a31-55670531c66b","parent":{"ref":"EID6ee471a8-0175-1000-5f8c-acaea19b5be6"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee47270-0175-1000-cd27-7f6c47561399","parent":{"ref":"EID6ee471a8-0175-1000-5f8c-acaea19b5be6"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee47270-0175-1000-8154-2fe7885c24eb","parent":{"ref":"EID6ee471a8-0175-1000-5f8c-acaea19b5be6"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee47270-0175-1000-2d9e-07eeb4878e36","parent":{"ref":"EID6ee471a8-0175-1000-5f8c-acaea19b5be6"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID392d5967-680f-44ab-a5e4-5851cff0f5ec"},{"ref":"EID33becb7e-1542-4c0f-a4ba-d36133ebd0df"},{"ref":"EID28f54a83-5a01-46e8-8cb5-eb75088e106e"}]},"parent":{"ref":"EID6ee471a8-0175-1000-3b6c-21fbebaa88e5"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:07:46Z","duration":109,"status":"PASSED"}},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:07:46Z","duration":281,"status":"PASSED"},{"id":"EID6ee472c1-0175-1000-6ea5-66c67b9ed475","testStepResults":{"TestStepResult":[{"id":"EID6ee472c1-0175-1000-c6fc-f2356ff09b4e","parent":{"ref":"EID6ee472c1-0175-1000-6ea5-66c67b9ed475"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:07:46Z","duration":0,"status":"PASSED"},{"id":"EID6ee472c1-0175-1000-ad68-f92748462638","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47848-0175-1000-dcd4-e4e6bf51ed98","parent":{"ref":"EID6ee472c1-0175-1000-ad68-f92748462638"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47848-0175-1000-07e7-47b5a3a9f55b","parent":{"ref":"EID6ee472c1-0175-1000-ad68-f92748462638"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47848-0175-1000-8d29-9b96b98361dd","parent":{"ref":"EID6ee472c1-0175-1000-ad68-f92748462638"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47848-0175-1000-5605-82800eff490d","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee472c1-0175-1000-ad68-f92748462638"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID7297a4bc-5860-48d1-bbbe-e216009a0fb2"},{"ref":"EIDf08d5a4e-ecfc-453f-b270-b8dcefaf4e68"},{"ref":"EID94531458-8c15-4755-a3c7-da957c3866ea"}]},"parent":{"ref":"EID6ee472c1-0175-1000-6ea5-66c67b9ed475"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:07:46Z","duration":1283,"status":"FAILED"}]},"parent":{"ref":"EID6ee3f059-0175-1000-c7cb-383ae840af45"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:07:46Z","duration":1416,"status":"FAILED"}]},"parent":{"ref":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:07:13Z","duration":34800,"status":"FAILED"},{"id":"EID6ee47849-0175-1000-56c1-e149bb444136","testCaseResults":{"TestCaseResult":[{"id":"EID6ee47849-0175-1000-755c-911e46d983db","testStepResults":{"TestStepResult":[{"id":"EID6ee47852-0175-1000-1d1e-2f35fe90f279","parent":{"ref":"EID6ee47849-0175-1000-755c-911e46d983db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47852-0175-1000-e513-d918c9beb440","parent":{"ref":"EID6ee47849-0175-1000-755c-911e46d983db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:07:48Z","duration":109,"status":"PASSED"},{"id":"EID6ee47852-0175-1000-5673-f3cbe01dcef0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47c1f-0175-1000-e437-86897757da82","parent":{"ref":"EID6ee47852-0175-1000-5673-f3cbe01dcef0"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47c1f-0175-1000-6967-c5f84c5e0e4c","parent":{"ref":"EID6ee47852-0175-1000-5673-f3cbe01dcef0"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47c1f-0175-1000-3298-3afe98ff37bb","parent":{"ref":"EID6ee47852-0175-1000-5673-f3cbe01dcef0"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID07cc556b-7331-459f-ae26-a95c754051bb"},{"ref":"EIDb76eb447-9a6f-4b37-a4f1-3e92e68850a2"},{"ref":"EIDb7603a8e-915f-48a5-aae7-163cc65fa22f"}]},"parent":{"ref":"EID6ee47849-0175-1000-755c-911e46d983db"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:07:48Z","duration":782,"status":"PASSED"},{"id":"EID6ee4801c-0175-1000-6b21-08a58878fdd9","attachments":{"attachment":{"ref":"EIDbd870b03-d3aa-4a5b-9ca2-187c21046423"}},"parent":{"ref":"EID6ee47849-0175-1000-755c-911e46d983db"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:07:50Z","duration":1,"status":"PASSED"},{"id":"EID6ee4802a-0175-1000-ecbc-46a425fbfa35","parent":{"ref":"EID6ee47849-0175-1000-755c-911e46d983db"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:07:50Z","duration":18,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:07:48Z","duration":2035,"status":"PASSED"},{"id":"EID6ee4803d-0175-1000-7ef5-c28832fef6f2","testStepResults":{"TestStepResult":[{"id":"EID6ee4803d-0175-1000-3948-cfa21adbdafb","parent":{"ref":"EID6ee4803d-0175-1000-7ef5-c28832fef6f2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:07:50Z","duration":991,"status":"PASSED"},{"id":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee487fc-0175-1000-13cb-8bc2695080ac","parent":{"ref":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee487fc-0175-1000-4287-c5d59cd388fb","parent":{"ref":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee487fc-0175-1000-c433-f05495ffbb92","parent":{"ref":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee487fc-0175-1000-0a3d-d0dcab1e0082","parent":{"ref":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee487fc-0175-1000-fdd4-fc581912eef2","parent":{"ref":"EID6ee4803d-0175-1000-2795-ae15bf52c8b6"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID76b849af-b1b8-4c8d-a6e7-3f1a1e468801"},{"ref":"EID43162ca5-f23f-4c4d-907c-fb1333876033"},{"ref":"EID81f69c45-0dd0-48b6-8c54-89fdc19c6582"}]},"parent":{"ref":"EID6ee4803d-0175-1000-7ef5-c28832fef6f2"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:07:50Z","duration":1883,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:07:50Z","duration":1983,"status":"PASSED"},{"id":"EID6ee487fc-0175-1000-fd35-b393fe7c266c","testStepResults":{"TestStepResult":[{"id":"EID6ee487fc-0175-1000-12b7-00d226433ba5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4896f-0175-1000-91d8-88bf6e0c5eed","parent":{"ref":"EID6ee487fc-0175-1000-12b7-00d226433ba5"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee4896f-0175-1000-a293-0b8096e53fe7","parent":{"ref":"EID6ee487fc-0175-1000-12b7-00d226433ba5"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee4896f-0175-1000-1b43-c6bb0791713f","parent":{"ref":"EID6ee487fc-0175-1000-12b7-00d226433ba5"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaadc39f2-0527-4010-9ef4-130319d2cf1d"},{"ref":"EID79bda58b-9ea2-495c-9c24-a59fadda1824"},{"ref":"EID961f7bdc-b7be-462d-9089-f634cf4a369c"}]},"parent":{"ref":"EID6ee487fc-0175-1000-fd35-b393fe7c266c"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:07:52Z","duration":298,"status":"PASSED"},{"id":"EID6ee4896f-0175-1000-1647-d7b55550806e","attachments":{"attachment":{"ref":"EID012d920a-4367-4b5f-92c0-afd0880d9307"}},"parent":{"ref":"EID6ee487fc-0175-1000-fd35-b393fe7c266c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:07:52Z","duration":1,"status":"PASSED"},{"id":"EID6ee4897b-0175-1000-a328-f5059e7768d8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee48d2e-0175-1000-9b32-697a3a2bcebe","parent":{"ref":"EID6ee4897b-0175-1000-a328-f5059e7768d8"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48d2e-0175-1000-f4b4-b603fba8d5de","parent":{"ref":"EID6ee4897b-0175-1000-a328-f5059e7768d8"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48d2e-0175-1000-1bd2-b6fbbae940bb","parent":{"ref":"EID6ee4897b-0175-1000-a328-f5059e7768d8"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48d2e-0175-1000-dc36-29002d9320da","parent":{"ref":"EID6ee4897b-0175-1000-a328-f5059e7768d8"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48d2e-0175-1000-76c7-0426da518d7f","parent":{"ref":"EID6ee4897b-0175-1000-a328-f5059e7768d8"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfb8ff377-f1e6-4942-b146-bf210f5ccbf3"},{"ref":"EIDc348f2e5-bd6d-4820-ae2c-88c34665b999"},{"ref":"EID3e0fccbe-c184-4b6e-b92e-a978e121c998"}]},"parent":{"ref":"EID6ee487fc-0175-1000-fd35-b393fe7c266c"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:07:52Z","duration":861,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:07:52Z","duration":1330,"status":"PASSED"},{"id":"EID6ee48d2e-0175-1000-334b-e86f826fe5ac","testStepResults":{"TestStepResult":[{"id":"EID6ee48d2e-0175-1000-68ae-d48d59a7e36d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee48ef8-0175-1000-b1ec-287c6dd489be","parent":{"ref":"EID6ee48d2e-0175-1000-68ae-d48d59a7e36d"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48ef8-0175-1000-db30-978d5fec8b86","parent":{"ref":"EID6ee48d2e-0175-1000-68ae-d48d59a7e36d"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48ef8-0175-1000-6df1-b9c10ce8817c","parent":{"ref":"EID6ee48d2e-0175-1000-68ae-d48d59a7e36d"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee48ef8-0175-1000-916b-72b06e55edfb","parent":{"ref":"EID6ee48d2e-0175-1000-68ae-d48d59a7e36d"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:07:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5d89bc14-e66a-4b9f-a682-185ec68f8fc0"},{"ref":"EIDa1cf80fe-6d3e-4a0b-baf1-d1d9666862ba"},{"ref":"EIDa1bebe9b-916e-4de8-aa26-137c3570b326"}]},"parent":{"ref":"EID6ee48d2e-0175-1000-334b-e86f826fe5ac"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:07:53Z","duration":375,"status":"PASSED"},{"id":"EID6ee48ef8-0175-1000-3d2f-f450edb5f903","attachments":{"attachment":{"ref":"EIDa6de145f-6707-4359-b672-912eb0a1c9eb"}},"parent":{"ref":"EID6ee48d2e-0175-1000-334b-e86f826fe5ac"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:07:53Z","duration":1,"status":"PASSED"},{"id":"EID6ee48f05-0175-1000-1ad0-ce561a7ccc02","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee49990-0175-1000-ddab-cefde50fd418","parent":{"ref":"EID6ee48f05-0175-1000-1ad0-ce561a7ccc02"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:07:56Z","duration":0,"status":"PASSED"},{"id":"EID6ee49990-0175-1000-16f7-88915131c2ec","parent":{"ref":"EID6ee48f05-0175-1000-1ad0-ce561a7ccc02"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:07:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0ff88482-4e19-4d1b-8857-e124837ab916"},{"ref":"EID22e5aebb-200b-4717-af26-2250aaac554d"}]},"parent":{"ref":"EID6ee48d2e-0175-1000-334b-e86f826fe5ac"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:07:53Z","duration":2694,"status":"PASSED"},{"id":"EID6ee499a0-0175-1000-6cb8-a6d806c3395b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee49b86-0175-1000-d1b4-f24fd5bf6c77","parent":{"ref":"EID6ee499a0-0175-1000-6cb8-a6d806c3395b"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee49b86-0175-1000-a49b-7af29c7a1cbb","parent":{"ref":"EID6ee499a0-0175-1000-6cb8-a6d806c3395b"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee49b86-0175-1000-24e5-fabed9bdb060","parent":{"ref":"EID6ee499a0-0175-1000-6cb8-a6d806c3395b"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee49b86-0175-1000-e93f-a06d54177d2c","parent":{"ref":"EID6ee499a0-0175-1000-6cb8-a6d806c3395b"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID348174b3-5625-451b-9f88-dbb561d3158c"},{"ref":"EID25aba0b6-9136-456a-b48b-224d63af2852"},{"ref":"EIDecfade20-7fb1-4267-ab7d-3714ac82f882"}]},"parent":{"ref":"EID6ee48d2e-0175-1000-334b-e86f826fe5ac"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:07:56Z","duration":312,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:07:53Z","duration":3672,"status":"PASSED"},{"id":"EID6ee49b87-0175-1000-0f15-2cee4ed01b3c","testStepResults":{"TestStepResult":{"id":"EID6ee49b87-0175-1000-fbb4-32add5ad4997","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee49e99-0175-1000-21d0-63b06ef24e88","parent":{"ref":"EID6ee49b87-0175-1000-fbb4-32add5ad4997"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee49e99-0175-1000-59d9-c3f0beb72112","parent":{"ref":"EID6ee49b87-0175-1000-fbb4-32add5ad4997"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"},{"id":"EID6ee49e99-0175-1000-8a4b-57c4b692ddfe","parent":{"ref":"EID6ee49b87-0175-1000-fbb4-32add5ad4997"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:07:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa26c981a-b0e8-4c07-9d40-2459cce3202f"},{"ref":"EID20203f80-6acf-425a-9e52-79e87d772bfb"},{"ref":"EID154936d6-ad8c-400c-bd3a-c61d56cf2dea"}]},"parent":{"ref":"EID6ee49b87-0175-1000-0f15-2cee4ed01b3c"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:07:57Z","duration":698,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:07:57Z","duration":797,"status":"PASSED"},{"id":"EID6ee49ea4-0175-1000-c01c-120453446251","testStepResults":{"TestStepResult":{"id":"EID6ee49eae-0175-1000-211a-6c3a8eee2e2a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a395-0175-1000-de8b-c34b716f3e5b","parent":{"ref":"EID6ee49eae-0175-1000-211a-6c3a8eee2e2a"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a395-0175-1000-64a3-5d106420283b","parent":{"ref":"EID6ee49eae-0175-1000-211a-6c3a8eee2e2a"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a395-0175-1000-4568-7009cf25c280","parent":{"ref":"EID6ee49eae-0175-1000-211a-6c3a8eee2e2a"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID42772194-67b7-4219-aeaf-5d0d30d81db3"},{"ref":"EIDa3ad1307-3db9-4c0d-af3b-3c1aa6b71ba1"},{"ref":"EID71babe37-e567-4395-9d34-e5f19963bb6b"}]},"parent":{"ref":"EID6ee49ea4-0175-1000-c01c-120453446251"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:07:57Z","duration":1195,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:07:57Z","duration":1265,"status":"PASSED"},{"id":"EID6ee4a395-0175-1000-2b97-b41c227cd71e","testStepResults":{"TestStepResult":{"id":"EID6ee4a395-0175-1000-876b-7be1d1250d89","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a57b-0175-1000-03a7-282cb72d41c8","parent":{"ref":"EID6ee4a395-0175-1000-876b-7be1d1250d89"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a57b-0175-1000-0628-839c5b562431","parent":{"ref":"EID6ee4a395-0175-1000-876b-7be1d1250d89"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a57b-0175-1000-c2d6-4a73620f16d3","parent":{"ref":"EID6ee4a395-0175-1000-876b-7be1d1250d89"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a57b-0175-1000-46e0-632489bf18d4","parent":{"ref":"EID6ee4a395-0175-1000-876b-7be1d1250d89"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a57b-0175-1000-a1c8-261e6faafd4c","parent":{"ref":"EID6ee4a395-0175-1000-876b-7be1d1250d89"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID62c0c27b-db0c-4a67-a50a-10bfecffa334"},{"ref":"EIDb3cf8797-6afc-4092-931e-ef9f49050b71"},{"ref":"EIDca2bc8c3-d9d4-4f6b-bd55-29f8064c3799"}]},"parent":{"ref":"EID6ee4a395-0175-1000-2b97-b41c227cd71e"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:07:59Z","duration":338,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:07:59Z","duration":486,"status":"PASSED"},{"id":"EID6ee4a57d-0175-1000-c870-17d8f5327a66","testStepResults":{"TestStepResult":{"id":"EID6ee4a57d-0175-1000-f90f-b6456afe9eca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a774-0175-1000-5dd5-0302db123ea5","parent":{"ref":"EID6ee4a57d-0175-1000-f90f-b6456afe9eca"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a774-0175-1000-4d88-56096d14bec3","parent":{"ref":"EID6ee4a57d-0175-1000-f90f-b6456afe9eca"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a774-0175-1000-1054-50a3831a9b92","parent":{"ref":"EID6ee4a57d-0175-1000-f90f-b6456afe9eca"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc7e16e5b-c819-4605-a592-7b18ef9c0ac3"},{"ref":"EID171c5da5-511f-4100-8353-9ae4a95798e3"},{"ref":"EIDa13b64b7-ba9c-4855-ad35-58516c3fb852"}]},"parent":{"ref":"EID6ee4a57d-0175-1000-c870-17d8f5327a66"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:07:59Z","duration":436,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:07:59Z","duration":503,"status":"PASSED"},{"id":"EID6ee4a774-0175-1000-f602-8ef9e536f31a","testStepResults":{"TestStepResult":{"id":"EID6ee4a774-0175-1000-88eb-8672947c841d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4aafe-0175-1000-3184-e9b8dd29d1fb","parent":{"ref":"EID6ee4a774-0175-1000-88eb-8672947c841d"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:08:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee4aafe-0175-1000-468c-7f24abd6bc1e","parent":{"ref":"EID6ee4a774-0175-1000-88eb-8672947c841d"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:08:01Z","duration":0,"status":"PASSED"},{"id":"EID6ee4aafe-0175-1000-c736-a4dd429da8eb","parent":{"ref":"EID6ee4a774-0175-1000-88eb-8672947c841d"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:08:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID35a2763a-f98a-4f42-84bc-43c6d2ad1298"},{"ref":"EID24440713-40bb-40ab-99b2-9b14d71ad1da"},{"ref":"EID48a4b19e-b453-4330-817e-0bcc88f613a7"}]},"parent":{"ref":"EID6ee4a774-0175-1000-f602-8ef9e536f31a"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:08:00Z","duration":841,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:08:00Z","duration":975,"status":"PASSED"},{"id":"EID6ee4ab44-0175-1000-4607-55ed9917b78c","testStepResults":{"TestStepResult":{"id":"EID6ee4ab44-0175-1000-2a04-761a5f0b111a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4b350-0175-1000-cda9-0645d641b8e8","parent":{"ref":"EID6ee4ab44-0175-1000-2a04-761a5f0b111a"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b350-0175-1000-e86d-b9a032d3f4fb","parent":{"ref":"EID6ee4ab44-0175-1000-2a04-761a5f0b111a"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b350-0175-1000-61bd-c3f059ade2fa","parent":{"ref":"EID6ee4ab44-0175-1000-2a04-761a5f0b111a"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b350-0175-1000-deea-b3bf84f6db16","parent":{"ref":"EID6ee4ab44-0175-1000-2a04-761a5f0b111a"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf111c326-3ce3-4dba-97d9-73d53dd73505"},{"ref":"EIDaf602d04-71b3-44c8-a602-160af385006c"},{"ref":"EID04191e10-7aae-45cc-8164-103d5090fcd5"}]},"parent":{"ref":"EID6ee4ab44-0175-1000-4607-55ed9917b78c"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:08:01Z","duration":1970,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:08:01Z","duration":2060,"status":"PASSED"},{"id":"EID6ee4b350-0175-1000-5c92-4f37270231bf","testStepResults":{"TestStepResult":{"id":"EID6ee4b350-0175-1000-0742-c8d4df2b8a1c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4b4db-0175-1000-9c7f-c97a6cd98ea1","parent":{"ref":"EID6ee4b350-0175-1000-0742-c8d4df2b8a1c"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b4db-0175-1000-d333-cf616c1d5a3b","parent":{"ref":"EID6ee4b350-0175-1000-0742-c8d4df2b8a1c"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b4db-0175-1000-5941-cdea815c73e8","parent":{"ref":"EID6ee4b350-0175-1000-0742-c8d4df2b8a1c"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b4db-0175-1000-2339-e07663e8c7b3","parent":{"ref":"EID6ee4b350-0175-1000-0742-c8d4df2b8a1c"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID20c0e637-1641-4f7e-a3c7-a8444cd6dcc0"},{"ref":"EIDe58364bf-c470-438f-a2a4-b98acf960408"},{"ref":"EIDcea22597-2597-41c1-ad15-1640ff8a2fa8"}]},"parent":{"ref":"EID6ee4b350-0175-1000-5c92-4f37270231bf"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:08:03Z","duration":310,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:08:03Z","duration":396,"status":"PASSED"},{"id":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370","testStepResults":{"TestStepResult":[{"id":"EID6ee4b4e4-0175-1000-1d59-4a55d7471aa9","parent":{"ref":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b4e4-0175-1000-9ae7-15996767349c","parent":{"ref":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:08:03Z","duration":1491,"status":"PASSED"},{"id":"EID6ee4b4e4-0175-1000-51c2-895cc52c383b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bacd-0175-1000-aa0e-9ac26ef23d8a","parent":{"ref":"EID6ee4b4e4-0175-1000-51c2-895cc52c383b"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bacd-0175-1000-c642-6b1f5647f0d4","parent":{"ref":"EID6ee4b4e4-0175-1000-51c2-895cc52c383b"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bacd-0175-1000-eeea-fd3b152d1b87","parent":{"ref":"EID6ee4b4e4-0175-1000-51c2-895cc52c383b"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bacd-0175-1000-1bee-bfcd4f1d5fc0","parent":{"ref":"EID6ee4b4e4-0175-1000-51c2-895cc52c383b"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0d05f053-30a2-4d15-a718-860b8cc3d9bc"},{"ref":"EID52c88cc9-bff6-47e1-b1f8-469b7c81ce60"},{"ref":"EIDb1d433d6-2f73-4f8d-a706-33774aaf0c9c"}]},"parent":{"ref":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:08:03Z","duration":1403,"status":"PASSED"},{"id":"EID6ee4bacd-0175-1000-56c6-1995a7b67ec5","attachments":{"attachment":{"ref":"EIDf24fbbc2-df74-46f8-81e4-f666fc0aad23"}},"parent":{"ref":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:08:05Z","duration":1,"status":"PASSED"},{"id":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bc60-0175-1000-f882-d41259851d4b","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-a1e0-7be6ea30da65","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-9b61-7f1f1251f12c","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-b4e5-24d47dae30d0","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-86c5-a6207eaba5fb","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-6e2f-ca366da3cade","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc60-0175-1000-aa47-407212cee97d","parent":{"ref":"EID6ee4bae2-0175-1000-1ea2-3ddb89783002"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID41bf87d1-77eb-4856-b879-8c754b43d1ac"},{"ref":"EID86121f6d-a282-4305-92cd-6ad41a954332"},{"ref":"EIDce457d39-176d-4b2f-b0d6-1e6c29e64044"}]},"parent":{"ref":"EID6ee4b4e4-0175-1000-9f8e-d29350fbd370"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:08:05Z","duration":276,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:08:03Z","duration":1925,"status":"PASSED"},{"id":"EID6ee4bc69-0175-1000-f80f-f8f2727227ae","testStepResults":{"TestStepResult":[{"id":"EID6ee4bc6a-0175-1000-4975-90ac0be693a0","parent":{"ref":"EID6ee4bc69-0175-1000-f80f-f8f2727227ae"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bc6a-0175-1000-29cb-7424638698f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bd5b-0175-1000-b052-34279e11d9ac","parent":{"ref":"EID6ee4bc6a-0175-1000-29cb-7424638698f7"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd5b-0175-1000-fe32-ba4319664b5e","parent":{"ref":"EID6ee4bc6a-0175-1000-29cb-7424638698f7"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd5b-0175-1000-e0ef-26c248be00b8","parent":{"ref":"EID6ee4bc6a-0175-1000-29cb-7424638698f7"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd5b-0175-1000-2f16-388202f1000b","parent":{"ref":"EID6ee4bc6a-0175-1000-29cb-7424638698f7"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID840de33e-ad4a-439c-806b-ce53ed5eea3c"},{"ref":"EID04a582f3-dbcd-4922-b9af-3778d56cbd21"},{"ref":"EIDffce7329-9a86-4df3-aca8-0d81cc099001"}]},"parent":{"ref":"EID6ee4bc69-0175-1000-f80f-f8f2727227ae"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:08:05Z","duration":141,"status":"PASSED"},{"id":"EID6ee4bd5b-0175-1000-8002-bedf51c4435e","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee4bd7d-0175-1000-88c7-80dc6f37f889","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4be71-0175-1000-cb55-4c1391c8fdd9","parent":{"ref":"EID6ee4bd7d-0175-1000-88c7-80dc6f37f889"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4be71-0175-1000-f350-cfe8dd668ba4","parent":{"ref":"EID6ee4bd7d-0175-1000-88c7-80dc6f37f889"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4be71-0175-1000-a884-8d204185ea3e","parent":{"ref":"EID6ee4bd7d-0175-1000-88c7-80dc6f37f889"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID84c89ff9-d800-49c6-9540-ded5c9ca6f40"},{"ref":"EIDa3a35ebe-c7c3-4832-8b85-a1dc321295ec"},{"ref":"EID3d965781-f3fc-45fd-8369-bbb70ac6f37b"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:05Z","duration":149,"status":"PASSED"},{"id":"EID6ee4be73-0175-1000-36ac-ca7b1a2ae4f5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bf38-0175-1000-a7de-66b404460406","parent":{"ref":"EID6ee4be73-0175-1000-36ac-ca7b1a2ae4f5"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bf38-0175-1000-309b-e1655eff6f7c","parent":{"ref":"EID6ee4be73-0175-1000-36ac-ca7b1a2ae4f5"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bf38-0175-1000-dc0b-7c2e77d782f7","parent":{"ref":"EID6ee4be73-0175-1000-36ac-ca7b1a2ae4f5"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:06Z","duration":1,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4f48280e-7b7c-4b2b-9926-1bb61b75c30b"},{"ref":"EIDe7b6f0a8-4995-42ee-b0c0-dbb541a48de0"},{"ref":"EID6938e2a0-543d-47d4-bcc4-44f4219caaf9"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:06Z","duration":148,"status":"PASSED"},{"id":"EID6ee4bf3a-0175-1000-dbaf-f239e016f805","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bf93-0175-1000-66d8-2bb56f755c22","parent":{"ref":"EID6ee4bf3a-0175-1000-dbaf-f239e016f805"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bf93-0175-1000-531b-2c0ce0140b09","parent":{"ref":"EID6ee4bf3a-0175-1000-dbaf-f239e016f805"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bf93-0175-1000-db3c-c09aa792c31c","parent":{"ref":"EID6ee4bf3a-0175-1000-dbaf-f239e016f805"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID415d863d-fc45-41fb-8bbd-6cbfe17a932b"},{"ref":"EID63e7f85b-a344-4be1-925f-e2f335cacd68"},{"ref":"EID1282f313-b3eb-4663-a280-486e3bb72050"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:06Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6ee4bc69-0175-1000-f80f-f8f2727227ae"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:08:05Z","duration":568,"status":"PASSED"},{"id":"EID6ee4bf94-0175-1000-5750-d078831d4b79","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4c156-0175-1000-a1f0-e5b03193deb2","parent":{"ref":"EID6ee4bf94-0175-1000-5750-d078831d4b79"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c156-0175-1000-5142-94045e396d8d","parent":{"ref":"EID6ee4bf94-0175-1000-5750-d078831d4b79"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c156-0175-1000-1bf9-0fb802bb7a6f","parent":{"ref":"EID6ee4bf94-0175-1000-5750-d078831d4b79"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c156-0175-1000-4fe0-db6b7ad916ea","parent":{"ref":"EID6ee4bf94-0175-1000-5750-d078831d4b79"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1ff1e63d-7b3e-47cb-a2ae-6245cbb9005d"},{"ref":"EID36e75484-0c3c-4cc2-b841-fa58f59fcb5d"},{"ref":"EIDc3a20415-0645-40fc-990d-58226f796fab"}]},"parent":{"ref":"EID6ee4bc69-0175-1000-f80f-f8f2727227ae"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:08:06Z","duration":368,"status":"PASSED"}]},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:08:05Z","duration":1270,"status":"PASSED"},{"id":"EID6ee4c15f-0175-1000-0a2c-b98afca46073","testStepResults":{"TestStepResult":{"id":"EID6ee4c15f-0175-1000-0b2f-19c1e449af83","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4c868-0175-1000-baca-6cd68785376d","parent":{"ref":"EID6ee4c15f-0175-1000-0b2f-19c1e449af83"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c868-0175-1000-8846-139307ebf270","parent":{"ref":"EID6ee4c15f-0175-1000-0b2f-19c1e449af83"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c868-0175-1000-ced5-91a865b934d4","parent":{"ref":"EID6ee4c15f-0175-1000-0b2f-19c1e449af83"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c868-0175-1000-af45-5bb95d6af305","parent":{"ref":"EID6ee4c15f-0175-1000-0b2f-19c1e449af83"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc13a80b3-3d06-4e02-bd8e-7248c56d75f3"},{"ref":"EID054f27ae-efb3-4d0f-ba6b-5c6a1030a7df"},{"ref":"EID76d4b698-5510-4103-bf80-e7031ceb7190"}]},"parent":{"ref":"EID6ee4c15f-0175-1000-0a2c-b98afca46073"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:08:06Z","duration":1698,"status":"PASSED"}},"parent":{"ref":"EID6ee47849-0175-1000-56c1-e149bb444136"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:08:06Z","duration":1811,"status":"PASSED"}]},"parent":{"ref":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:07:48Z","duration":20529,"status":"PASSED"},{"id":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4c87a-0175-1000-50e5-3a8e28b5df21","testStepResults":{"TestStepResult":[{"id":"EID6ee4c87a-0175-1000-a29b-0522b6199121","parent":{"ref":"EID6ee4c87a-0175-1000-50e5-3a8e28b5df21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:08:08Z","duration":2014,"status":"PASSED"},{"id":"EID6ee4c87b-0175-1000-201d-63487d2312c3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4cc42-0175-1000-d26a-1292ce453bed","parent":{"ref":"EID6ee4c87b-0175-1000-201d-63487d2312c3"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cc42-0175-1000-ccb7-1b9fa07850e2","parent":{"ref":"EID6ee4c87b-0175-1000-201d-63487d2312c3"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cc42-0175-1000-4cc5-075ae5810b9b","parent":{"ref":"EID6ee4c87b-0175-1000-201d-63487d2312c3"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:08:09Z","duration":1,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1ab00c28-fd77-41bf-9115-1fb972f075ed"},{"ref":"EIDa83da5e3-a78c-420d-862f-b5b80df03abf"},{"ref":"EID1799e73f-c64d-40c4-b8f2-e88df3b46dea"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-50e5-3a8e28b5df21"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:08:08Z","duration":880,"status":"PASSED"},{"id":"EID6ee4cc43-0175-1000-0fe7-b9b3fbfd357d","attachments":{"attachment":{"ref":"EIDcb98eedf-63f3-4c32-903e-fe83aea61f5a"}},"parent":{"ref":"EID6ee4c87a-0175-1000-50e5-3a8e28b5df21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:08:09Z","duration":2,"status":"PASSED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:08:08Z","duration":983,"status":"PASSED"},{"id":"EID6ee4cc5a-0175-1000-a1ce-eb0e4ffb7292","testStepResults":{"TestStepResult":[{"id":"EID6ee4cc5a-0175-1000-767a-9c2cde7a34ef","parent":{"ref":"EID6ee4cc5a-0175-1000-a1ce-eb0e4ffb7292"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:08:09Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4cc5a-0175-1000-6f61-ac74402745f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4cd80-0175-1000-c2e0-00a3ed57bc88","parent":{"ref":"EID6ee4cc5a-0175-1000-6f61-ac74402745f7"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cd80-0175-1000-e303-f88bab45e266","parent":{"ref":"EID6ee4cc5a-0175-1000-6f61-ac74402745f7"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cd80-0175-1000-46e8-5c409a36485a","parent":{"ref":"EID6ee4cc5a-0175-1000-6f61-ac74402745f7"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cd80-0175-1000-66b6-fdd2b52267de","parent":{"ref":"EID6ee4cc5a-0175-1000-6f61-ac74402745f7"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID597e933e-75e6-430c-9f54-5a3824d5aa66"},{"ref":"EID1e46b1f2-c0bc-4915-b12d-3646060eef77"},{"ref":"EIDcc165864-4b53-44bf-896a-0d25ffc0cbf1"}]},"parent":{"ref":"EID6ee4cc5a-0175-1000-a1ce-eb0e4ffb7292"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:08:09Z","duration":173,"status":"PASSED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:08:09Z","duration":294,"status":"PASSED"},{"id":"EID6ee4cd92-0175-1000-d74a-1aa4ae918250","testStepResults":{"TestStepResult":[{"id":"EID6ee4cd92-0175-1000-a1c6-9fc60cb040fc","parent":{"ref":"EID6ee4cd92-0175-1000-d74a-1aa4ae918250"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4cd92-0175-1000-6489-e708bd8dbe83","parent":{"ref":"EID6ee4cd92-0175-1000-d74a-1aa4ae918250"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cd92-0175-1000-006a-dea64fae696b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4ce6c-0175-1000-a3bb-e3a75e3068d0","parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce6c-0175-1000-8cb1-777b4794279a","parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce6c-0175-1000-f816-73579b3937a5","parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce6c-0175-1000-6513-005a65232db0","parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce6c-0175-1000-52b5-797e42db381b","parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce6c-0175-1000-6987-04e9454655bc","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"FAILED"},{"id":"EID6ee4ce6c-0175-1000-7a77-34233cf2074a","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee4cd92-0175-1000-006a-dea64fae696b"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID7bf7e62e-3fdc-49a1-adc7-b47898fc93d3"},{"ref":"EIDc9f82705-24ca-44a2-8263-873be7ff7101"},{"ref":"EID5aa60040-b29b-40f5-bc9f-0580f7325789"}]},"parent":{"ref":"EID6ee4cd92-0175-1000-d74a-1aa4ae918250"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:08:10Z","duration":90,"status":"FAILED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:08:10Z","duration":235,"status":"FAILED"},{"id":"EID6ee4ce86-0175-1000-731e-e722b0a36d31","testStepResults":{"TestStepResult":[{"id":"EID6ee4ce86-0175-1000-00ca-1461eb40ccd7","parent":{"ref":"EID6ee4ce86-0175-1000-731e-e722b0a36d31"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4ce86-0175-1000-3c67-885792b9c390","parent":{"ref":"EID6ee4ce86-0175-1000-731e-e722b0a36d31"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4cf3c-0175-1000-f64d-fe76ecce7066","parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-c8db-6f6f194696bd","parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-ce43-d98f17828479","parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-6d52-debba4864fef","parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-9b23-bd937afe9a3e","parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-d829-c125bc18671b","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee4ce86-0175-1000-93d5-3904ca0dcad1"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID22c6a00c-8863-4457-ad94-d12961e3e2f3"},{"ref":"EIDabd393d8-3009-41f4-8f0f-1c903990c57f"},{"ref":"EID9d3860fd-23f9-42ac-8d72-e03b93da04fa"}]},"parent":{"ref":"EID6ee4ce86-0175-1000-731e-e722b0a36d31"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:08:10Z","duration":79,"status":"FAILED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:08:10Z","duration":182,"status":"FAILED"},{"id":"EID6ee4cf3c-0175-1000-b71f-545cb462798d","testStepResults":{"TestStepResult":[{"id":"EID6ee4cf3c-0175-1000-2952-cfa9dfa7cb2a","parent":{"ref":"EID6ee4cf3c-0175-1000-b71f-545cb462798d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4cf3c-0175-1000-3a0b-dbf54edec297","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EIDf02b9cd6-6b66-4086-96c3-cdd1303cdd3d"},{"ref":"EIDd0a1522c-d6fb-4790-8f52-fb619c97b8c8"},{"ref":"EID601dd2a5-4619-49f1-8407-f5528e1a1936"},{"ref":"EID0e36c725-7647-46d0-9ef0-63f8f3015aca"},{"ref":"EIDf1ccd92b-ace2-4786-9146-e5047cf6fb55"},{"ref":"EID72536a25-119c-413b-8f0d-31bf668a6b19"},{"ref":"EIDa783ba0c-8485-4822-9f79-1a519fcf6fa6"},{"ref":"EIDa18421e2-702b-4247-b0a1-b07e49a00524"},{"ref":"EIDcf50b37a-fcc0-4e4d-8d51-acea33ae8a09"},{"ref":"EID1f4e97aa-0fac-4a4b-abc5-c0d981ce01cd"},{"ref":"EIDbd8777a8-9b70-429f-b834-f6a72e05588e"},{"ref":"EID71ef6da2-9e77-401d-9234-db16cb71e89e"},{"ref":"EID6e41b7d2-9324-4db7-8acf-3c925bc420e6"},{"ref":"EIDac2b60fd-7c7d-4546-b539-c58e8a570b9c"},{"ref":"EID8c9c99ed-be09-451a-9305-6cdf79ec9a47"}]},"parent":{"ref":"EID6ee4cf3c-0175-1000-b71f-545cb462798d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:08:10Z","duration":3029,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:08:10Z","duration":3270,"status":"SKIPPED"},{"id":"EID6ee4dc02-0175-1000-5a3a-43ea55f38f51","testStepResults":{"TestStepResult":[{"id":"EID6ee4dc10-0175-1000-50f2-d51262c9d417","parent":{"ref":"EID6ee4dc02-0175-1000-5a3a-43ea55f38f51"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:08:13Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4dc10-0175-1000-106e-945520df5e60","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4dca9-0175-1000-1a20-95dfa46060c7","parent":{"ref":"EID6ee4dc10-0175-1000-106e-945520df5e60"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-4ad6-4e842bc74f57","parent":{"ref":"EID6ee4dc10-0175-1000-106e-945520df5e60"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-0042-c50371f56815","parent":{"ref":"EID6ee4dc10-0175-1000-106e-945520df5e60"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-e37e-b3e6d063ef3f","parent":{"ref":"EID6ee4dc10-0175-1000-106e-945520df5e60"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa60d2ed8-edc2-4322-830f-2f385dbd6a69"},{"ref":"EIDfc68f265-df0f-4608-866c-bb8b45aa7ea0"},{"ref":"EIDf9bce392-abae-44a2-bfd3-fdd6d8632217"}]},"parent":{"ref":"EID6ee4dc02-0175-1000-5a3a-43ea55f38f51"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:08:13Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:08:13Z","duration":168,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616","testStepResults":{"TestStepResult":[{"id":"EID6ee4dcaa-0175-1000-02a4-fc9f86049436","parent":{"ref":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:08:13Z","duration":2013,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-0fba-3708a994ceba","parent":{"ref":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dcaa-0175-1000-ad56-64adbcb34dca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4dd3b-0175-1000-2f85-70318369a841","parent":{"ref":"EID6ee4dcaa-0175-1000-ad56-64adbcb34dca"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd3b-0175-1000-a121-674e1b37068a","parent":{"ref":"EID6ee4dcaa-0175-1000-ad56-64adbcb34dca"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd3b-0175-1000-f45d-14026d2258ed","parent":{"ref":"EID6ee4dcaa-0175-1000-ad56-64adbcb34dca"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd3b-0175-1000-6114-cc9cf91daada","parent":{"ref":"EID6ee4dcaa-0175-1000-ad56-64adbcb34dca"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID333d07ef-2a38-4a70-9f0b-308cb06edb7b"},{"ref":"EID1145f6bf-80ba-448d-8634-945f7c8a48a9"},{"ref":"EID304358df-b20f-458f-92b6-7f7c556f13e0"}]},"parent":{"ref":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:08:13Z","duration":81,"status":"PASSED"},{"id":"EID6ee4dd3c-0175-1000-c9ef-e97331b03bf9","attachments":{"attachment":{"ref":"EID4b9e9017-da4f-426b-89e7-30c7ba45eeda"}},"parent":{"ref":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd4a-0175-1000-4cef-6d8176416907","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4dd67-0175-1000-3023-574f7656d1c9","parent":{"ref":"EID6ee4dd4a-0175-1000-4cef-6d8176416907"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd67-0175-1000-8c2d-d1c9ccd95e9b","parent":{"ref":"EID6ee4dd4a-0175-1000-4cef-6d8176416907"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4dd67-0175-1000-4956-a8f319c81f62","parent":{"ref":"EID6ee4dd4a-0175-1000-4cef-6d8176416907"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8f5dd82-ed9f-4d6e-80bd-f8d7030c8c16"},{"ref":"EID65a654e3-190c-4ae3-9833-9889f1ffc798"}]},"parent":{"ref":"EID6ee4dcaa-0175-1000-17c5-00dafd5c8616"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:08:14Z","duration":13,"status":"PASSED"}]},"parent":{"ref":"EID6ee4c87a-0175-1000-4e83-8fe6d003fa1a"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:08:13Z","duration":189,"status":"PASSED"}]},"parent":{"ref":"EIDb7995d86-1f04-4896-ae20-fb8b349bc120"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:08:08Z","duration":5357,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EIDa783ba0c-8485-4822-9f79-1a519fcf6fa6","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa783ba0c-8485-4822-9f79-1a519fcf6fa6"}},{"type":"ServiceEndpoint","id":"EID0ff88482-4e19-4d1b-8857-e124837ab916","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9kb3dubG9hZHMva3JtX21hcmllbmVyYXBwb3J0YWdlZWVuaGVkZW5fZXUyMDE4X2dwa2cuemlw"},{"type":"ServiceEndpoint","id":"EIDdb584cdc-9329-483e-b881-d6df58ebab2d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID110a88a1-23ba-4ed7-8ac9-3dbc1c3bd987","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID110a88a1-23ba-4ed7-8ac9-3dbc1c3bd987"}},{"type":"ServiceEndpoint","id":"EID84c89ff9-d800-49c6-9540-ded5c9ca6f40","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID76d4b698-5510-4103-bf80-e7031ceb7190","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDf30cfab0-d80a-4714-a90c-f1c6fb0ce0ad","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf30cfab0-d80a-4714-a90c-f1c6fb0ce0ad"}},{"type":"ServiceResponse","id":"EID054f27ae-efb3-4d0f-ba6b-5c6a1030a7df","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID054f27ae-efb3-4d0f-ba6b-5c6a1030a7df"}},{"type":"GetParameter","id":"EIDa1bebe9b-916e-4de8-aa26-137c3570b326","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDea6803b3-bdb3-40f6-a4af-6d4f13e22d80","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDea6803b3-bdb3-40f6-a4af-6d4f13e22d80"}},{"type":"Message","id":"EIDe4531ca2-3102-4f20-9541-734e69223971","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe4531ca2-3102-4f20-9541-734e69223971"}},{"type":"Message","id":"EID8c9c99ed-be09-451a-9305-6cdf79ec9a47","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID8c9c99ed-be09-451a-9305-6cdf79ec9a47"}},{"type":"GetParameter","id":"EID04191e10-7aae-45cc-8164-103d5090fcd5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDbd870b03-d3aa-4a5b-9ca2-187c21046423","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDbd870b03-d3aa-4a5b-9ca2-187c21046423"}},{"type":"Message","id":"EID6e41b7d2-9324-4db7-8acf-3c925bc420e6","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID6e41b7d2-9324-4db7-8acf-3c925bc420e6"}},{"type":"Message","id":"EID7ca7d974-ec7e-41f7-8b8d-b212f060bf28","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID7ca7d974-ec7e-41f7-8b8d-b212f060bf28"}},{"type":"Message","id":"EIDdd729076-8f5b-47dc-83a4-4e4ef2fc1275","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDdd729076-8f5b-47dc-83a4-4e4ef2fc1275"}},{"type":"ServiceEndpoint","id":"EIDf47382ff-969f-413b-8ad4-5f82ba1fee20","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID1fb50f36-c5e0-44a0-8e53-86642cb137f4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDaadc39f2-0527-4010-9ef4-130319d2cf1d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID62c0c27b-db0c-4a67-a50a-10bfecffa334","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID41238ce4-e21b-4018-9fc0-e0b4756608f0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID22e5aebb-200b-4717-af26-2250aaac554d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9kb3dubG9hZHMva3JtX21hcmllbmVyYXBwb3J0YWdlZWVuaGVkZW5fZXUyMDE4X2dwa2cuemlw"},{"type":"Message","id":"EIDf24fbbc2-df74-46f8-81e4-f666fc0aad23","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf24fbbc2-df74-46f8-81e4-f666fc0aad23"}},{"type":"ServiceEndpoint","id":"EID22c6a00c-8863-4457-ad94-d12961e3e2f3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID52c88cc9-bff6-47e1-b1f8-469b7c81ce60","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID52c88cc9-bff6-47e1-b1f8-469b7c81ce60"}},{"type":"ServiceEndpoint","id":"EIDfc9b24f2-c651-4cea-be49-8c27f05fe202","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4fcc8046-8013-4274-bb5f-45e8fa516e03","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDdb4d0331-772e-48fc-8a99-9f2a1a0dd05f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDdb4d0331-772e-48fc-8a99-9f2a1a0dd05f"}},{"type":"ServiceEndpoint","id":"EID41bf87d1-77eb-4856-b879-8c754b43d1ac","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID1368d856-8f10-499a-a56a-e6e464f61d10","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID1368d856-8f10-499a-a56a-e6e464f61d10"}},{"type":"ServiceResponse","id":"EID79bda58b-9ea2-495c-9c24-a59fadda1824","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID79bda58b-9ea2-495c-9c24-a59fadda1824"}},{"type":"ServiceResponse","id":"EIDa3ad1307-3db9-4c0d-af3b-3c1aa6b71ba1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa3ad1307-3db9-4c0d-af3b-3c1aa6b71ba1"}},{"type":"Message","id":"EID093d8c5d-24d3-4a6a-a427-9b3bb5e13d6e","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID093d8c5d-24d3-4a6a-a427-9b3bb5e13d6e"}},{"type":"GetParameter","id":"EID14014cc4-8fc7-4e32-9659-52cf7a55f3be","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDcb98eedf-63f3-4c32-903e-fe83aea61f5a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDcb98eedf-63f3-4c32-903e-fe83aea61f5a"}},{"type":"ServiceEndpoint","id":"EID2e3c14ab-c4e5-409b-9d1c-09b2e58febb1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID3d09cb1d-2659-4c32-9b4b-5372380f0a80","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID3d09cb1d-2659-4c32-9b4b-5372380f0a80"}},{"type":"ServiceResponse","id":"EID121dc584-ba46-47b4-b362-31fe0f6dee58","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID121dc584-ba46-47b4-b362-31fe0f6dee58"}},{"type":"Message","id":"EID987998da-0659-4c08-9143-f8625c576f1f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID987998da-0659-4c08-9143-f8625c576f1f"}},{"type":"Message","id":"EID30ec55f3-7fdf-46c9-af93-88acbbad0954","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID30ec55f3-7fdf-46c9-af93-88acbbad0954"}},{"type":"ServiceEndpoint","id":"EID76b849af-b1b8-4c8d-a6e7-3f1a1e468801","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EIDcb8adbb0-2485-4abc-ae6a-3e6292d24490","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDcb8adbb0-2485-4abc-ae6a-3e6292d24490"}},{"type":"ServiceEndpoint","id":"EID348174b3-5625-451b-9f88-dbb561d3158c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EIDecfade20-7fb1-4267-ab7d-3714ac82f882","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID71babe37-e567-4395-9d34-e5f19963bb6b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID25a39f30-abbc-4997-8f4a-dd5223de1ebe","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID25a39f30-abbc-4997-8f4a-dd5223de1ebe"}},{"type":"ServiceResponse","id":"EID33becb7e-1542-4c0f-a4ba-d36133ebd0df","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID33becb7e-1542-4c0f-a4ba-d36133ebd0df"}},{"type":"ServiceResponse","id":"EID3eab0ede-e0c7-4d70-a868-1a0c25829f84","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID3eab0ede-e0c7-4d70-a868-1a0c25829f84"}},{"type":"GetParameter","id":"EID902968c8-5ceb-41f1-a459-9d768a2f4f90","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID28f54a83-5a01-46e8-8cb5-eb75088e106e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDa83da5e3-a78c-420d-862f-b5b80df03abf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa83da5e3-a78c-420d-862f-b5b80df03abf"}},{"type":"ServiceEndpoint","id":"EID1ff1e63d-7b3e-47cb-a2ae-6245cbb9005d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID415d863d-fc45-41fb-8bbd-6cbfe17a932b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID304358df-b20f-458f-92b6-7f7c556f13e0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID25aba0b6-9136-456a-b48b-224d63af2852","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID25aba0b6-9136-456a-b48b-224d63af2852"}},{"type":"ServiceResponse","id":"EIDb3cf8797-6afc-4092-931e-ef9f49050b71","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDb3cf8797-6afc-4092-931e-ef9f49050b71"}},{"type":"Message","id":"EIDf02b9cd6-6b66-4086-96c3-cdd1303cdd3d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf02b9cd6-6b66-4086-96c3-cdd1303cdd3d"}},{"type":"GetParameter","id":"EID6938e2a0-543d-47d4-bcc4-44f4219caaf9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID8e9aa79d-7136-401d-9659-b8dad2bdcc70","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID8e9aa79d-7136-401d-9659-b8dad2bdcc70"}},{"type":"ServiceEndpoint","id":"EIDf111c326-3ce3-4dba-97d9-73d53dd73505","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID1282f313-b3eb-4663-a280-486e3bb72050","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDf08d5a4e-ecfc-453f-b270-b8dcefaf4e68","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf08d5a4e-ecfc-453f-b270-b8dcefaf4e68"}},{"type":"ServiceResponse","id":"EIDbe717ada-132f-4a41-b73f-0554c78d2bdf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDbe717ada-132f-4a41-b73f-0554c78d2bdf"}},{"type":"ServiceEndpoint","id":"EID35a2763a-f98a-4f42-84bc-43c6d2ad1298","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID36e75484-0c3c-4cc2-b841-fa58f59fcb5d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID36e75484-0c3c-4cc2-b841-fa58f59fcb5d"}},{"type":"GetParameter","id":"EIDa7c6c022-328f-4834-a877-813e0e17073d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID9115763a-7ebc-40a0-92b5-327e707fbb5b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID840de33e-ad4a-439c-806b-ce53ed5eea3c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EIDcc165864-4b53-44bf-896a-0d25ffc0cbf1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDabd393d8-3009-41f4-8f0f-1c903990c57f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDabd393d8-3009-41f4-8f0f-1c903990c57f"}},{"type":"Message","id":"EID494fd063-bf3e-454b-bb54-171a50ec996e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID494fd063-bf3e-454b-bb54-171a50ec996e"}},{"type":"Message","id":"EID71ef6da2-9e77-401d-9234-db16cb71e89e","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID71ef6da2-9e77-401d-9234-db16cb71e89e"}},{"type":"ServiceEndpoint","id":"EID5fb9985d-3e83-4692-98ac-139ed338eb01","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDc2f90a90-ff05-4811-bd6b-44ddfaae1773","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDc2f90a90-ff05-4811-bd6b-44ddfaae1773"}},{"type":"GetParameter","id":"EID9d3860fd-23f9-42ac-8d72-e03b93da04fa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDe6b86584-3a77-43ca-b2f5-21c6d1db21bc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDcf50b37a-fcc0-4e4d-8d51-acea33ae8a09","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDcf50b37a-fcc0-4e4d-8d51-acea33ae8a09"}},{"type":"Message","id":"EID5ed427ac-2e67-44fd-b643-a2777669d277","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID5ed427ac-2e67-44fd-b643-a2777669d277"}},{"type":"Message","id":"EID8ad22974-9b4a-4346-9b0f-bdbd77838712","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID8ad22974-9b4a-4346-9b0f-bdbd77838712"}},{"type":"ServiceEndpoint","id":"EIDfb8ff377-f1e6-4942-b146-bf210f5ccbf3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID3e0fccbe-c184-4b6e-b92e-a978e121c998","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID8bd40abd-91d1-49f2-b581-aa0bae192e56","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID8bd40abd-91d1-49f2-b581-aa0bae192e56"}},{"type":"ServiceEndpoint","id":"EIDa26c981a-b0e8-4c07-9d40-2459cce3202f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDd0a1522c-d6fb-4790-8f52-fb619c97b8c8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDd0a1522c-d6fb-4790-8f52-fb619c97b8c8"}},{"type":"Message","id":"EIDf1ccd92b-ace2-4786-9146-e5047cf6fb55","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf1ccd92b-ace2-4786-9146-e5047cf6fb55"}},{"type":"Message","id":"EID38aead60-667c-4743-83e7-6e36f44aef92","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID38aead60-667c-4743-83e7-6e36f44aef92"}},{"type":"ServiceResponse","id":"EIDb76eb447-9a6f-4b37-a4f1-3e92e68850a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDb76eb447-9a6f-4b37-a4f1-3e92e68850a2"}},{"type":"GetParameter","id":"EIDc6e5c9f8-1d2f-4594-953b-4301b09ecf97","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDf9bce392-abae-44a2-bfd3-fdd6d8632217","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID72536a25-119c-413b-8f0d-31bf668a6b19","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID72536a25-119c-413b-8f0d-31bf668a6b19"}},{"type":"ServiceEndpoint","id":"EIDa60d2ed8-edc2-4322-830f-2f385dbd6a69","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDf518d4c3-6f3b-4fc5-b9b3-70e84f736d88","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID24440713-40bb-40ab-99b2-9b14d71ad1da","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID24440713-40bb-40ab-99b2-9b14d71ad1da"}},{"type":"GetParameter","id":"EIDa13b64b7-ba9c-4855-ad35-58516c3fb852","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID082c1e5d-bb6b-4f24-87c1-c190ecce7b96","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID082c1e5d-bb6b-4f24-87c1-c190ecce7b96"}},{"type":"ServiceResponse","id":"EID6ed5485c-66e0-46bd-be75-07ccf3fc52b6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID6ed5485c-66e0-46bd-be75-07ccf3fc52b6"}},{"type":"Message","id":"EID799dce4a-d215-41d9-810c-4f23dabea0f5","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID799dce4a-d215-41d9-810c-4f23dabea0f5"}},{"type":"Message","id":"EID5e0689f1-f7eb-4939-9498-27a704b2965b","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID5e0689f1-f7eb-4939-9498-27a704b2965b"}},{"type":"ServiceResponse","id":"EID3e680204-ecfd-4c2f-ae57-adcd54a5d6f2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID3e680204-ecfd-4c2f-ae57-adcd54a5d6f2"}},{"type":"Message","id":"EIDab5ee120-b323-4e95-a0c5-fa41f0e982e2","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDab5ee120-b323-4e95-a0c5-fa41f0e982e2"}},{"type":"GetParameter","id":"EID74410164-588f-4ba7-aabd-f3a1bb6fd2a8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID3ba29d8a-3ced-4797-a7dd-d58d28538116","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID7e488551-0b1d-437e-b550-af4accf1c1cc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID1799e73f-c64d-40c4-b8f2-e88df3b46dea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa6de145f-6707-4359-b672-912eb0a1c9eb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa6de145f-6707-4359-b672-912eb0a1c9eb"}},{"type":"Message","id":"EID012d920a-4367-4b5f-92c0-afd0880d9307","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID012d920a-4367-4b5f-92c0-afd0880d9307"}},{"type":"ServiceResponse","id":"EID63e7f85b-a344-4be1-925f-e2f335cacd68","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID63e7f85b-a344-4be1-925f-e2f335cacd68"}},{"type":"ServiceEndpoint","id":"EID7bf7e62e-3fdc-49a1-adc7-b47898fc93d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID3d965781-f3fc-45fd-8369-bbb70ac6f37b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID4f48280e-7b7c-4b2b-9926-1bb61b75c30b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID7297a4bc-5860-48d1-bbbe-e216009a0fb2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID33ab6579-80e0-4633-8784-ec6a865b7fe4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDffce7329-9a86-4df3-aca8-0d81cc099001","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EIDce97cfa4-4f08-48b6-98d2-5d4a02badf70","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID5d89bc14-e66a-4b9f-a682-185ec68f8fc0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID5aa60040-b29b-40f5-bc9f-0580f7325789","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDbd8777a8-9b70-429f-b834-f6a72e05588e","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDbd8777a8-9b70-429f-b834-f6a72e05588e"}},{"type":"Message","id":"EID87fc9588-f21e-4dd2-9c8f-4fb2a960d719","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID87fc9588-f21e-4dd2-9c8f-4fb2a960d719"}},{"type":"ServiceEndpoint","id":"EID7014511f-bb77-4700-ac84-1950117b9e04","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID154936d6-ad8c-400c-bd3a-c61d56cf2dea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EIDfc68f265-df0f-4608-866c-bb8b45aa7ea0","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDfc68f265-df0f-4608-866c-bb8b45aa7ea0"}},{"type":"ServiceResponse","id":"EIDfe6581c7-9a1b-4251-947e-66d45de40314","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDfe6581c7-9a1b-4251-947e-66d45de40314"}},{"type":"GetParameter","id":"EID65a654e3-190c-4ae3-9833-9889f1ffc798","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceEndpoint","id":"EID605af5f0-9c36-4804-92d4-d058941985f9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDe7b6f0a8-4995-42ee-b0c0-dbb541a48de0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe7b6f0a8-4995-42ee-b0c0-dbb541a48de0"}},{"type":"ServiceResponse","id":"EID43162ca5-f23f-4c4d-907c-fb1333876033","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID43162ca5-f23f-4c4d-907c-fb1333876033"}},{"type":"GetParameter","id":"EIDce457d39-176d-4b2f-b0d6-1e6c29e64044","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID5b48eb09-9b60-4d3a-87ce-abc47e09f0f4","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID5b48eb09-9b60-4d3a-87ce-abc47e09f0f4"}},{"type":"GetParameter","id":"EID961f7bdc-b7be-462d-9089-f634cf4a369c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID48a4b19e-b453-4330-817e-0bcc88f613a7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EID9e3b0aa3-be73-4816-99d9-05073c1ffdda","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID9e3b0aa3-be73-4816-99d9-05073c1ffdda"}},{"type":"ServiceEndpoint","id":"EID0d05f053-30a2-4d15-a718-860b8cc3d9bc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDb7603a8e-915f-48a5-aae7-163cc65fa22f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDb4424c1c-03d1-4c0e-9e9a-b58a294edcec","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID333d07ef-2a38-4a70-9f0b-308cb06edb7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID8cff9e02-b80c-402b-8c22-1205713a8431","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID8cff9e02-b80c-402b-8c22-1205713a8431"}},{"type":"GetParameter","id":"EIDca2bc8c3-d9d4-4f6b-bd55-29f8064c3799","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EIDa3a35ebe-c7c3-4832-8b85-a1dc321295ec","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa3a35ebe-c7c3-4832-8b85-a1dc321295ec"}},{"type":"ServiceResponse","id":"EID20203f80-6acf-425a-9e52-79e87d772bfb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID20203f80-6acf-425a-9e52-79e87d772bfb"}},{"type":"ServiceResponse","id":"EID1145f6bf-80ba-448d-8634-945f7c8a48a9","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID1145f6bf-80ba-448d-8634-945f7c8a48a9"}},{"type":"GetParameter","id":"EIDe1fe4858-7407-42ef-b487-6701bfb405c9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID9df18f6f-bd66-4048-bf8e-edba8834d498","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID023ceda5-0daf-4be9-8c4a-179f41371eeb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDaf602d04-71b3-44c8-a602-160af385006c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDaf602d04-71b3-44c8-a602-160af385006c"}},{"type":"ServiceEndpoint","id":"EIDbeae5212-3494-4b93-a1bd-81bdc758ca1f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDa1cf80fe-6d3e-4a0b-baf1-d1d9666862ba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa1cf80fe-6d3e-4a0b-baf1-d1d9666862ba"}},{"type":"ServiceEndpoint","id":"EID597e933e-75e6-430c-9f54-5a3824d5aa66","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDc348f2e5-bd6d-4820-ae2c-88c34665b999","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDc348f2e5-bd6d-4820-ae2c-88c34665b999"}},{"type":"ServiceEndpoint","id":"EIDd8f5dd82-ed9f-4d6e-80bd-f8d7030c8c16","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID04a582f3-dbcd-4922-b9af-3778d56cbd21","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID04a582f3-dbcd-4922-b9af-3778d56cbd21"}},{"type":"Message","id":"EID9f654110-1a24-43db-9482-5dc659e00b80","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID9f654110-1a24-43db-9482-5dc659e00b80"}},{"type":"GetParameter","id":"EID1c8bb413-4e6a-4230-9810-5976848059d8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDe31a5291-c4d0-40cb-b509-d665acd3b207","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe31a5291-c4d0-40cb-b509-d665acd3b207"}},{"type":"ServiceEndpoint","id":"EID1ab00c28-fd77-41bf-9115-1fb972f075ed","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDb1d433d6-2f73-4f8d-a706-33774aaf0c9c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID4b9e9017-da4f-426b-89e7-30c7ba45eeda","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID4b9e9017-da4f-426b-89e7-30c7ba45eeda"}},{"type":"ServiceEndpoint","id":"EIDc7e16e5b-c819-4605-a592-7b18ef9c0ac3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"GetParameter","id":"EID5853f0c2-b084-4e20-830e-5f7dcc9db042","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID1e46b1f2-c0bc-4915-b12d-3646060eef77","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID1e46b1f2-c0bc-4915-b12d-3646060eef77"}},{"type":"ServiceResponse","id":"EIDc9f82705-24ca-44a2-8263-873be7ff7101","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDc9f82705-24ca-44a2-8263-873be7ff7101"}},{"type":"GetParameter","id":"EIDf1cb77f7-ff63-4dd6-ab52-b39821266f99","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDed9b1f4d-3145-47b5-ad85-9b9d7f19c12b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDed9b1f4d-3145-47b5-ad85-9b9d7f19c12b"}},{"type":"ServiceResponse","id":"EID09a95fb9-9a5c-4114-bd6e-dcc4d4a78043","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID09a95fb9-9a5c-4114-bd6e-dcc4d4a78043"}},{"type":"ServiceEndpoint","id":"EID392d5967-680f-44ab-a5e4-5851cff0f5ec","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDe86ff05a-65eb-43e2-9a6e-385958f28247","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe86ff05a-65eb-43e2-9a6e-385958f28247"}},{"type":"ServiceResponse","id":"EIDe58364bf-c470-438f-a2a4-b98acf960408","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe58364bf-c470-438f-a2a4-b98acf960408"}},{"type":"Message","id":"EIDd69495ad-42f1-40ff-babc-3b0b8fdcdcd2","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDd69495ad-42f1-40ff-babc-3b0b8fdcdcd2"}},{"type":"GetParameter","id":"EIDcea22597-2597-41c1-ad15-1640ff8a2fa8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceEndpoint","id":"EID20c0e637-1641-4f7e-a3c7-a8444cd6dcc0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID5fe80150-5ed0-416c-be83-1265370927ba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID5fe80150-5ed0-416c-be83-1265370927ba"}},{"type":"Message","id":"EIDf47f537c-f2d9-448d-9894-9e93dc6b9db6","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDf47f537c-f2d9-448d-9894-9e93dc6b9db6"}},{"type":"GetParameter","id":"EID81f69c45-0dd0-48b6-8c54-89fdc19c6582","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID1a36e236-8819-4392-900a-48bb9dd3878e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID1a36e236-8819-4392-900a-48bb9dd3878e"}},{"type":"ServiceEndpoint","id":"EID42772194-67b7-4219-aeaf-5d0d30d81db3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"ServiceResponse","id":"EID171c5da5-511f-4100-8353-9ae4a95798e3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID171c5da5-511f-4100-8353-9ae4a95798e3"}},{"type":"ServiceEndpoint","id":"EIDc13a80b3-3d06-4e02-bd8e-7248c56d75f3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"Message","id":"EIDeeed11ca-69b0-4fd4-b534-3022b7a2eb92","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDeeed11ca-69b0-4fd4-b534-3022b7a2eb92"}},{"type":"ServiceResponse","id":"EIDcd7d057e-fd33-4b80-8e46-e339667fe652","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDcd7d057e-fd33-4b80-8e46-e339667fe652"}},{"type":"Message","id":"EIDe55a5b41-ae93-4123-92c1-aa275a98d842","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDe55a5b41-ae93-4123-92c1-aa275a98d842"}},{"type":"ServiceEndpoint","id":"EIDd7f01001-3771-4a23-95ec-3388792fa7dd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID86121f6d-a282-4305-92cd-6ad41a954332","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID86121f6d-a282-4305-92cd-6ad41a954332"}},{"type":"ServiceEndpoint","id":"EID876b7a60-c86c-40b1-8fc2-30b49c3c0557","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID07cc556b-7331-459f-ae26-a95c754051bb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID601dd2a5-4619-49f1-8407-f5528e1a1936","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID601dd2a5-4619-49f1-8407-f5528e1a1936"}},{"type":"Message","id":"EID0e36c725-7647-46d0-9ef0-63f8f3015aca","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID0e36c725-7647-46d0-9ef0-63f8f3015aca"}},{"type":"ServiceEndpoint","id":"EIDc372c928-e548-474d-89cc-7ff1341f533f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDd395f74c-cb2a-46df-8233-9f319500bbed","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC82NDFhMGY0OC04NzJiLTQ0NzAtYjEzMC1lM2QyOGU2YmZkZmIvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDc3a20415-0645-40fc-990d-58226f796fab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9rcm1fbWFyaWVuZXJhcHBvcnRhZ2VlZW5oZWRlbl9ldTIwMTgueG1s"},{"type":"LogFile","id":"EID569037f4-b010-4ebf-a61f-b35a1abe8e8c","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID569037f4-b010-4ebf-a61f-b35a1abe8e8c"}},{"type":"Message","id":"EID98112b1d-2667-474a-b7ff-09f932c0de26","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID98112b1d-2667-474a-b7ff-09f932c0de26"}},{"type":"ServiceEndpoint","id":"EID90952223-5242-44ab-b7ba-be6753cf47f6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDa18421e2-702b-4247-b0a1-b07e49a00524","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDa18421e2-702b-4247-b0a1-b07e49a00524"}},{"type":"ServiceResponse","id":"EIDc27aea2c-c5bd-4c66-b028-136bc652c29b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDc27aea2c-c5bd-4c66-b028-136bc652c29b"}},{"type":"GetParameter","id":"EID1003a81e-2bea-487d-8e8d-f779cf4cebdd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID7d87df33-82a7-4a4d-8337-b3bbd565f76f","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID7d87df33-82a7-4a4d-8337-b3bbd565f76f"}},{"type":"ServiceEndpoint","id":"EID7aa590b5-1035-4bf7-a500-5e36b0a46d68","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID1f4e97aa-0fac-4a4b-abc5-c0d981ce01cd","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID1f4e97aa-0fac-4a4b-abc5-c0d981ce01cd"}},{"type":"Message","id":"EIDac2b60fd-7c7d-4546-b539-c58e8a570b9c","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EIDac2b60fd-7c7d-4546-b539-c58e8a570b9c"}},{"type":"ServiceEndpoint","id":"EIDed6e0a53-577d-45af-a58c-e8bba19fed7d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID94531458-8c15-4755-a3c7-da957c3866ea","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbm1hcmllbmVzdHJhdGVnaWUyMDE4L2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID53233b6a-145c-4275-8e35-2768a275b14b","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7995d86-1f04-4896-ae20-fb8b349bc120/Attachments/EID53233b6a-145c-4275-8e35-2768a275b14b"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:07:11Z","duration":62854,"status":"FAILED"}}}}}
11:08:22.551 [print] EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2
11:08:22.551 [print] FAILED
11:08:22.551 [print] FAILED
11:08:22.551 [print] Conformance Class Download Service - Pre-defined Atom
11:08:22.551 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/b81dd0bc-c9b8-4759-b13a-e7b8aac238d2.json
11:08:22.551 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/b81dd0bc-c9b8-4759-b13a-e7b8aac238d2.json
11:08:22.551 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb81dd0bc-c9b8-4759-b13a-e7b8aac238d2/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:08:22.571 [print] [ "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:08:22.571 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToMetadataRecordForDownloadService" ]
11:13:59.333 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/gn/wfs?&request=GetCapabilities&service=WFS
11:13:59.333 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/gn/wfs?&request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:59.749 response time in milliseconds: 415.74 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:13:59 GMT 1 < ETag: "18178-5af58a64e98b9-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:13:59.756 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/gn/wfs?&request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:00.165 response time in milliseconds: 408.59 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:00 GMT 1 < ETag: "18178-5af58ad4f78a0-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:14:00.166 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:34.822 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}}}
11:16:34.824 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}}}
11:16:46.546 response time in milliseconds: 10966.12
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:45 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:16:43 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5.json","testRuns":{"TestRun":{"id":"EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:42.403Z","testTasks":{"TestTask":{"id":"EID6e255705-1b2d-41fb-8071-26515ee04741","parent":{"ref":"EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID8ed0c556-b459-4008-b1d1-cb5bc7b13771"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID8ed0c556-b459-4008-b1d1-cb5bc7b13771","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:35.266Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:39.285Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:16:46.556 [print] EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5
11:16:46.557 [print] UNDEFINED
11:16:46.557 [print] Conformance Class Download Service - Pre-defined Atom
11:16:46.557 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5.json
11:16:46.557 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/log
11:16:46.557 [print] statuspath TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5
11:16:46.557 [print] progresspath TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
11:16:46.559 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:47.077 response time in milliseconds: 518.01
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:16:47 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"25","max":"26","log":["28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)","28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:42 - Preparing 1 Test Task:","28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)","28.10.2020 11:16:42 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:42 - with parameters: ","28.10.2020 11:16:42 - etf.testcases = *","28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:42 - Setting state to CREATED","28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z","28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:44 - Project Properties: ","28.10.2020 11:16:44 - etf.testcases - * ","28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:16:44 - username - ","28.10.2020 11:16:44 - authUser - ","28.10.2020 11:16:44 - authMethod - basic ","28.10.2020 11:16:44 - TestRunTask initialized"]}
11:16:47.077 [print] {
"val": "25",
"max": "26",
"log": [
"28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)",
"28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:16:42 - Preparing 1 Test Task:",
"28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)",
"28.10.2020 11:16:42 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:16:42 - with parameters: ",
"28.10.2020 11:16:42 - etf.testcases = *",
"28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:16:42 - Setting state to CREATED",
"28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z",
"28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:16:44 - Project Properties: ",
"28.10.2020 11:16:44 - etf.testcases - * ",
"28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ",
"28.10.2020 11:16:44 - username - ",
"28.10.2020 11:16:44 - authUser - ",
"28.10.2020 11:16:44 - authMethod - basic ",
"28.10.2020 11:16:44 - TestRunTask initialized"
]
}
11:16:47.078 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:47.591 response time in milliseconds: 512.43
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:16:47 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)","28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:42 - Preparing 1 Test Task:","28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)","28.10.2020 11:16:42 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:42 - with parameters: ","28.10.2020 11:16:42 - etf.testcases = *","28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:42 - Setting state to CREATED","28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z","28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:44 - Project Properties: ","28.10.2020 11:16:44 - etf.testcases - * ","28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:16:44 - username - ","28.10.2020 11:16:44 - authUser - ","28.10.2020 11:16:44 - authMethod - basic ","28.10.2020 11:16:44 - TestRunTask initialized"]}
11:16:47.591 retry condition not satisfied: response.val == response.max
11:16:47.591 sleeping before retry #1
11:16:52.592 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:53.114 response time in milliseconds: 522.28
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:16:53 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"90","max":"91","log":["28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)","28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:42 - Preparing 1 Test Task:","28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)","28.10.2020 11:16:42 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:42 - with parameters: ","28.10.2020 11:16:42 - etf.testcases = *","28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:42 - Setting state to CREATED","28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z","28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:44 - Project Properties: ","28.10.2020 11:16:44 - etf.testcases - * ","28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:16:44 - username - ","28.10.2020 11:16:44 - authUser - ","28.10.2020 11:16:44 - authMethod - basic ","28.10.2020 11:16:44 - TestRunTask initialized","28.10.2020 11:16:52 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:16:53.115 retry condition not satisfied: response.val == response.max
11:16:53.115 sleeping before retry #2
11:16:58.116 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:58.868 response time in milliseconds: 751.18
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:16:58 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"160","max":"161","log":["28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)","28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:42 - Preparing 1 Test Task:","28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)","28.10.2020 11:16:42 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:42 - with parameters: ","28.10.2020 11:16:42 - etf.testcases = *","28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:42 - Setting state to CREATED","28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z","28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:44 - Project Properties: ","28.10.2020 11:16:44 - etf.testcases - * ","28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:16:44 - username - ","28.10.2020 11:16:44 - authUser - ","28.10.2020 11:16:44 - authMethod - basic ","28.10.2020 11:16:44 - TestRunTask initialized","28.10.2020 11:16:52 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:16:58.873 retry condition not satisfied: response.val == response.max
11:16:58.873 sleeping before retry #3
11:17:03.874 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:04.389 response time in milliseconds: 513.85
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:17:04 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:16:42 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:42 UTC 2020)","28.10.2020 11:16:42 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:42 - Preparing 1 Test Task:","28.10.2020 11:16:42 - TestTask 1 (6e255705-1b2d-41fb-8071-26515ee04741)","28.10.2020 11:16:42 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:42 - with parameters: ","28.10.2020 11:16:42 - etf.testcases = *","28.10.2020 11:16:42 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:42 - Setting state to CREATED","28.10.2020 11:16:42 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:43 - Starting TestRun.51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5 at 2020-10-28T11:16:44Z","28.10.2020 11:16:44 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:44 - Project Properties: ","28.10.2020 11:16:44 - etf.testcases - * ","28.10.2020 11:16:44 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml ","28.10.2020 11:16:44 - username - ","28.10.2020 11:16:44 - authUser - ","28.10.2020 11:16:44 - authMethod - basic ","28.10.2020 11:16:44 - TestRunTask initialized","28.10.2020 11:16:52 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:17:00 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:17:00 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:17:02 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:17:04.389 retry condition not satisfied: response.val == response.max
11:17:04.389 sleeping before retry #4
11:17:09.390 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:11.403 response time in milliseconds: 2012.47
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:17:11 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:17:11.403 retry condition satisfied
11:17:11.403 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:17:11.404 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:17:15.219 response time in milliseconds: 2746.46
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Cache-Control: public, max-age=120
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:17:14 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Last-Modified: Wed, 28 Oct 2020 11:17:06 GMT
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5.json","testRuns":{"TestRun":{"id":"EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:42.403Z","testTasks":{"TestTask":{"id":"EID6e255705-1b2d-41fb-8071-26515ee04741","parent":{"ref":"EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID8ed0c556-b459-4008-b1d1-cb5bc7b13771"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID8ed0c556-b459-4008-b1d1-cb5bc7b13771","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:35.266Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:39.285Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2009/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe","testObject":{"ref":"EID8ed0c556-b459-4008-b1d1-cb5bc7b13771"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eeca922-0175-1000-6fed-d03460731922","testCaseResults":{"TestCaseResult":[{"id":"EID6eeca923-0175-1000-bdd6-46ffab4605f6","testStepResults":{"TestStepResult":[{"id":"EID6eeca924-0175-1000-6ac7-93255437d4eb","parent":{"ref":"EID6eeca923-0175-1000-bdd6-46ffab4605f6"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:16:44Z","duration":27,"status":"PASSED"},{"id":"EID6eeca93f-0175-1000-9c18-3ac20f67b80d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecaa2e-0175-1000-7e64-a3f8bf04137b","parent":{"ref":"EID6eeca93f-0175-1000-9c18-3ac20f67b80d"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecaa2e-0175-1000-b675-b643e6a9296a","parent":{"ref":"EID6eeca93f-0175-1000-9c18-3ac20f67b80d"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecaa2e-0175-1000-0c92-59a137e997d1","parent":{"ref":"EID6eeca93f-0175-1000-9c18-3ac20f67b80d"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecaa2e-0175-1000-2e30-4414298ec1b2","parent":{"ref":"EID6eeca93f-0175-1000-9c18-3ac20f67b80d"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd30d0301-0040-4f2c-8451-59e5370aa6d3"},{"ref":"EIDfae7e492-6098-4f26-8ffb-088e3a6cc7a2"},{"ref":"EID43e8bcf9-1461-4f7d-abf0-13b3206a543d"}]},"parent":{"ref":"EID6eeca923-0175-1000-bdd6-46ffab4605f6"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:16:44Z","duration":93,"status":"PASSED"}]},"parent":{"ref":"EID6eeca922-0175-1000-6fed-d03460731922"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:16:44Z","duration":276,"status":"PASSED"},{"id":"EID6eecaa38-0175-1000-1cab-8d5a10dcd427","testStepResults":{"TestStepResult":{"id":"EID6eecaa38-0175-1000-2962-f9becec73791","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecaac2-0175-1000-342b-2869f25af79d","parent":{"ref":"EID6eecaa38-0175-1000-2962-f9becec73791"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecaac2-0175-1000-1427-9ea98c4f9101","parent":{"ref":"EID6eecaa38-0175-1000-2962-f9becec73791"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecaac2-0175-1000-21ed-590864b0b219","parent":{"ref":"EID6eecaa38-0175-1000-2962-f9becec73791"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID137b68e3-ea96-4377-992c-2104e735a40b"},{"ref":"EID5414f3fa-6bf5-4061-9059-3f51a9e5b99d"},{"ref":"EIDa5d23045-e0f1-4f1d-89d9-7dc8cc56bbb3"}]},"parent":{"ref":"EID6eecaa38-0175-1000-1cab-8d5a10dcd427"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:16:45Z","duration":58,"status":"PASSED"}},"parent":{"ref":"EID6eeca922-0175-1000-6fed-d03460731922"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:16:45Z","duration":138,"status":"PASSED"}]},"parent":{"ref":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:16:44Z","duration":427,"status":"PASSED"},{"id":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc","testCaseResults":{"TestCaseResult":[{"id":"EID6eecaacd-0175-1000-361a-a29ad78ed268","testStepResults":{"TestStepResult":[{"id":"EID6eecaacd-0175-1000-32e4-3aafa0501a4f","parent":{"ref":"EID6eecaacd-0175-1000-361a-a29ad78ed268"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:16:45Z","duration":58,"status":"PASSED"},{"id":"EID6eecaacd-0175-1000-28b7-3d2733c822a9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecabcf-0175-1000-1246-30b1110e4080","parent":{"ref":"EID6eecaacd-0175-1000-28b7-3d2733c822a9"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecabcf-0175-1000-f184-78045ae626ea","parent":{"ref":"EID6eecaacd-0175-1000-28b7-3d2733c822a9"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecabcf-0175-1000-aae3-4625e6981d31","parent":{"ref":"EID6eecaacd-0175-1000-28b7-3d2733c822a9"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecabcf-0175-1000-6489-13cfd2f8a213","parent":{"ref":"EID6eecaacd-0175-1000-28b7-3d2733c822a9"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"},{"id":"EID6eecabcf-0175-1000-b632-31c8f5871b95","parent":{"ref":"EID6eecaacd-0175-1000-28b7-3d2733c822a9"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:16:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID02c989f8-6aba-4144-9ca0-f926b299372d"},{"ref":"EID813ced29-4ea9-48da-a60b-6beda427b8ad"},{"ref":"EID6b9a60cc-001b-49bc-8bb3-3071aa2d6885"}]},"parent":{"ref":"EID6eecaacd-0175-1000-361a-a29ad78ed268"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:16:45Z","duration":117,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:16:45Z","duration":301,"status":"PASSED"},{"id":"EID6eecabfa-0175-1000-1270-c7a604de0502","testStepResults":{"TestStepResult":[{"id":"EID6eecabfa-0175-1000-d62b-93605eddc903","attachments":{"attachment":[{"ref":"EIDcb33ea8b-529b-4b3e-8b5c-6b5e413962ea"},{"ref":"EID9a47608d-fced-4180-8844-2c91f68393d9"}]},"parent":{"ref":"EID6eecabfa-0175-1000-1270-c7a604de0502"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:16:45Z","duration":130,"status":"PASSED"},{"id":"EID6eecacae-0175-1000-b242-658f16812bf7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecadc4-0175-1000-49eb-6f53d2406afa","parent":{"ref":"EID6eecacae-0175-1000-b242-658f16812bf7"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecadc4-0175-1000-edef-52385b6b0e32","parent":{"ref":"EID6eecacae-0175-1000-b242-658f16812bf7"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecadc4-0175-1000-e2b6-4f8398127164","parent":{"ref":"EID6eecacae-0175-1000-b242-658f16812bf7"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecadc4-0175-1000-7436-43e54acd43da","parent":{"ref":"EID6eecacae-0175-1000-b242-658f16812bf7"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa9b23f74-86cb-4e38-b4aa-b4b35d585a93"},{"ref":"EID2e9c56f3-132b-4e31-9ac9-93df5b0cee1c"},{"ref":"EIDab358153-b426-4a44-8fca-08d1a8b06bbc"}]},"parent":{"ref":"EID6eecabfa-0175-1000-1270-c7a604de0502"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:16:45Z","duration":114,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:16:45Z","duration":467,"status":"PASSED"},{"id":"EID6eecadce-0175-1000-60ef-1d566a82491e","testStepResults":{"TestStepResult":[{"id":"EID6eecadce-0175-1000-8b7e-7ca4bd148621","attachments":{"attachment":[{"ref":"EID71188997-0c9e-4ca2-82f6-aaae5c3f8cf5"},{"ref":"EID48f84cbb-d596-4fa3-a153-0a7de1e57e82"}]},"parent":{"ref":"EID6eecadce-0175-1000-60ef-1d566a82491e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:16:46Z","duration":124,"status":"PASSED"},{"id":"EID6eecae71-0175-1000-a3c8-090ecd2152b8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecaf81-0175-1000-59ef-f3c722608da4","parent":{"ref":"EID6eecae71-0175-1000-a3c8-090ecd2152b8"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecaf81-0175-1000-484a-1263c83e0179","parent":{"ref":"EID6eecae71-0175-1000-a3c8-090ecd2152b8"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecaf81-0175-1000-b260-228c5130f317","parent":{"ref":"EID6eecae71-0175-1000-a3c8-090ecd2152b8"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecaf81-0175-1000-49f4-0650fc1266a5","parent":{"ref":"EID6eecae71-0175-1000-a3c8-090ecd2152b8"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecaf81-0175-1000-6af2-681d3f6cf621","parent":{"ref":"EID6eecae71-0175-1000-a3c8-090ecd2152b8"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd3da24fb-c559-465a-99f8-097a8a5acaa1"},{"ref":"EIDc80e9955-7b64-4865-b2e2-8a5878cf3375"},{"ref":"EID9a81b34e-1b7c-4044-bd3d-f8b3c675a57d"}]},"parent":{"ref":"EID6eecadce-0175-1000-60ef-1d566a82491e"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:16:46Z","duration":176,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:16:46Z","duration":444,"status":"PASSED"},{"id":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01","testStepResults":{"TestStepResult":[{"id":"EID6eecaf8b-0175-1000-3cc6-38bf59e64e84","attachments":{"attachment":[{"ref":"EIDb4d4ea2d-1f82-425f-9747-ace0ffcd3dfb"},{"ref":"EID14b40385-8648-4b9a-8113-0dc59834653f"}]},"parent":{"ref":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:16:46Z","duration":117,"status":"PASSED"},{"id":"EID6eecb027-0175-1000-2ec3-ebebba034896","parent":{"ref":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecb027-0175-1000-8afc-8c438dd56b80","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecb0d4-0175-1000-578e-1fdf0062deb5","parent":{"ref":"EID6eecb027-0175-1000-8afc-8c438dd56b80"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecb0d4-0175-1000-8601-3fc466cfc579","parent":{"ref":"EID6eecb027-0175-1000-8afc-8c438dd56b80"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecb0d4-0175-1000-c63d-b358a2a82a3b","parent":{"ref":"EID6eecb027-0175-1000-8afc-8c438dd56b80"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"},{"id":"EID6eecb0d4-0175-1000-359c-5e8cb89f25d7","parent":{"ref":"EID6eecb027-0175-1000-8afc-8c438dd56b80"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:16:46Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb4b3636b-7d2d-4307-856a-cbca46b727c6"},{"ref":"EID92d0335d-82b0-4fdf-a3a9-a4dfab87eac2"},{"ref":"EID093d19f3-38a0-4d01-a217-f1fd0f92a164"}]},"parent":{"ref":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:16:46Z","duration":49,"status":"PASSED"},{"id":"EID6eecb0d4-0175-1000-091b-d4da281a6016","attachments":{"attachment":{"ref":"EIDdce0ea97-0678-407e-909a-270d59dd10e6"}},"parent":{"ref":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:16:46Z","duration":1,"status":"PASSED"},{"id":"EID6eecb0e0-0175-1000-841a-8657216b092d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecb249-0175-1000-15c1-f161a646d807","parent":{"ref":"EID6eecb0e0-0175-1000-841a-8657216b092d"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb249-0175-1000-5e1a-dabaa4137f9c","parent":{"ref":"EID6eecb0e0-0175-1000-841a-8657216b092d"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb249-0175-1000-3b95-1700128afda9","parent":{"ref":"EID6eecb0e0-0175-1000-841a-8657216b092d"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb24a-0175-1000-0084-3be5aeaf2f79","parent":{"ref":"EID6eecb0e0-0175-1000-841a-8657216b092d"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb24a-0175-1000-c4fc-6ca9255dcdb1","parent":{"ref":"EID6eecb0e0-0175-1000-841a-8657216b092d"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID68a17673-ae9e-40f3-b3f9-1cc6e6e21712"},{"ref":"EID1444a3fc-cd1e-4808-b92d-f62748dd2774"},{"ref":"EID0f567600-4ac6-4aa2-98e0-81b3ca2b87a2"}]},"parent":{"ref":"EID6eecaf8b-0175-1000-d9eb-0627b839ad01"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:16:46Z","duration":155,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:16:46Z","duration":703,"status":"PASSED"},{"id":"EID6eecb24a-0175-1000-380a-b488fc145e2d","testStepResults":{"TestStepResult":[{"id":"EID6eecb24a-0175-1000-06e6-d34adb5d6376","attachments":{"attachment":[{"ref":"EID0b55670d-2e08-4e92-a5a8-260ad063f830"},{"ref":"EIDbaea6461-00f7-4f2d-8fea-823ac272efef"}]},"parent":{"ref":"EID6eecb24a-0175-1000-380a-b488fc145e2d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:16:47Z","duration":141,"status":"PASSED"},{"id":"EID6eecb36b-0175-1000-6ec9-5312eb6f235d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecb3ee-0175-1000-fae1-041fbd695ab4","parent":{"ref":"EID6eecb36b-0175-1000-6ec9-5312eb6f235d"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb3ef-0175-1000-2c03-e22194652a4a","parent":{"ref":"EID6eecb36b-0175-1000-6ec9-5312eb6f235d"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb3ef-0175-1000-f23e-c0475e5b098c","parent":{"ref":"EID6eecb36b-0175-1000-6ec9-5312eb6f235d"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"},{"id":"EID6eecb3ef-0175-1000-1367-34361b69a579","parent":{"ref":"EID6eecb36b-0175-1000-6ec9-5312eb6f235d"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:16:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0709dc92-79fa-4e65-9242-2feec5370f62"},{"ref":"EIDf777ad0d-5df5-406f-9b0e-caab97be222b"},{"ref":"EID99f03d28-cbc3-488e-9b9e-c57d13d1c40e"}]},"parent":{"ref":"EID6eecb24a-0175-1000-380a-b488fc145e2d"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:16:47Z","duration":44,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:16:47Z","duration":421,"status":"PASSED"},{"id":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce","testStepResults":{"TestStepResult":[{"id":"EID6eecb3ef-0175-1000-6355-f6a68eea5896","attachments":{"attachment":[{"ref":"EIDf41ba235-74e3-44a0-adac-ad92f9f0f6ac"},{"ref":"EIDf4a626ee-09be-4f1d-9cb6-2e670bf02554"}]},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:16:47Z","duration":251,"status":"PASSED"},{"id":"EID6eecb57d-0175-1000-27bb-7c9592d2307b","parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb57d-0175-1000-883b-3fd8fd28dc94","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecb809-0175-1000-7c34-14120585e684","parent":{"ref":"EID6eecb57d-0175-1000-883b-3fd8fd28dc94"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb809-0175-1000-24bb-4cacfa218219","parent":{"ref":"EID6eecb57d-0175-1000-883b-3fd8fd28dc94"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb809-0175-1000-6991-fd6e6bccedd8","parent":{"ref":"EID6eecb57d-0175-1000-883b-3fd8fd28dc94"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb809-0175-1000-2f2e-213997137619","parent":{"ref":"EID6eecb57d-0175-1000-883b-3fd8fd28dc94"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7f1d2290-976d-4bd9-8ead-bccf366781e8"},{"ref":"EIDe3cfd4e9-4a52-4057-b337-30d47d3530d5"},{"ref":"EIDef087dde-e1a1-4748-8d30-de7196912613"}]},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:16:48Z","duration":564,"status":"PASSED"},{"id":"EID6eecb80a-0175-1000-b4cb-3e9863bfcf9d","attachments":{"attachment":{"ref":"EID4893f880-ae90-4e8c-93de-924c9d224760"}},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:16:48Z","duration":1,"status":"PASSED"},{"id":"EID6eecb822-0175-1000-b357-00bbe0540cc0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecb8da-0175-1000-6402-4d193e6d48bc","parent":{"ref":"EID6eecb822-0175-1000-b357-00bbe0540cc0"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb8da-0175-1000-cf06-f0cc7c515695","parent":{"ref":"EID6eecb822-0175-1000-b357-00bbe0540cc0"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"},{"id":"EID6eecb8da-0175-1000-79cd-e6648f3cdda3","parent":{"ref":"EID6eecb822-0175-1000-b357-00bbe0540cc0"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:16:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9cb15dc0-e8ec-4e17-8552-e380ef39ee7e"},{"ref":"EID23ed9cd3-0de2-49e5-8022-85309e5f33e9"},{"ref":"EID3b282513-fbf3-425d-b77d-5c59f07d752d"}]},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:16:48Z","duration":125,"status":"PASSED"},{"id":"EID6eecb8da-0175-1000-8087-bbd08e4663dc","attachments":{"attachment":{"ref":"EID6398b249-43fd-443b-bde9-a4b344f59b2a"}},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:16:48Z","duration":1,"status":"PASSED"},{"id":"EID6eecb8e6-0175-1000-48b5-9973c8006645","attachments":{"attachment":{"ref":"EIDed2a420e-d656-411f-a651-8c5f57acf047"}},"parent":{"ref":"EID6eecb3ef-0175-1000-bdee-e58ee678d6ce"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:16:48Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:16:47Z","duration":1283,"status":"PASSED"},{"id":"EID6eecb8f2-0175-1000-6990-26b5ba65da3b","testStepResults":{"TestStepResult":[{"id":"EID6eecb8f2-0175-1000-a6f4-d59005c3d665","attachments":{"attachment":[{"ref":"EIDa0d645c4-e693-43e5-9613-e0d630cc8de7"},{"ref":"EID919e5a43-83fd-4ab3-a10a-79bc51d9ac8c"}]},"parent":{"ref":"EID6eecb8f2-0175-1000-6990-26b5ba65da3b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:16:49Z","duration":214,"status":"PASSED"},{"id":"EID6eecb9ef-0175-1000-4859-4ddc2e65c09f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecba78-0175-1000-d95f-926fcd9ac614","parent":{"ref":"EID6eecb9ef-0175-1000-4859-4ddc2e65c09f"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecba78-0175-1000-5578-5d521aa1a560","parent":{"ref":"EID6eecb9ef-0175-1000-4859-4ddc2e65c09f"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecba78-0175-1000-3660-e585ae9f7e78","parent":{"ref":"EID6eecb9ef-0175-1000-4859-4ddc2e65c09f"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecba78-0175-1000-1f9f-1842b3b682a2","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eecb9ef-0175-1000-4859-4ddc2e65c09f"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID58cbd8d7-55f9-4573-8a1e-d452b8909330"},{"ref":"EID112bebb7-6327-4a75-8009-e711b32d965c"},{"ref":"EID26d15417-036b-42b0-9845-adbe9e837bfa"}]},"parent":{"ref":"EID6eecb8f2-0175-1000-6990-26b5ba65da3b"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:16:49Z","duration":36,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:16:49Z","duration":390,"status":"PASSED_MANUAL"},{"id":"EID6eecba81-0175-1000-28bd-1894f74f8ece","testStepResults":{"TestStepResult":{"id":"EID6eecba81-0175-1000-c998-e3aee4ce04fe","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecbb43-0175-1000-1246-158494ae2db1","parent":{"ref":"EID6eecba81-0175-1000-c998-e3aee4ce04fe"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbb43-0175-1000-9201-485e76051862","parent":{"ref":"EID6eecba81-0175-1000-c998-e3aee4ce04fe"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbb43-0175-1000-624a-3b79f954ea9c","parent":{"ref":"EID6eecba81-0175-1000-c998-e3aee4ce04fe"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbb43-0175-1000-528c-200fdab3df35","parent":{"ref":"EID6eecba81-0175-1000-c998-e3aee4ce04fe"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7daea2e7-9d5b-4bc5-a9cc-4ef42fa440fc"},{"ref":"EID98854801-1c72-4123-add6-ea7cc0592214"},{"ref":"EIDa804ba65-e8af-4d8f-8b79-1b3bacdbee9e"}]},"parent":{"ref":"EID6eecba81-0175-1000-28bd-1894f74f8ece"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:16:49Z","duration":85,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:16:49Z","duration":195,"status":"PASSED"},{"id":"EID6eecbb4e-0175-1000-1f72-f121861f73ac","testStepResults":{"TestStepResult":{"id":"EID6eecbb4e-0175-1000-ad86-e1f8cf1b77be","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecbbfd-0175-1000-da49-884e55a773aa","parent":{"ref":"EID6eecbb4e-0175-1000-ad86-e1f8cf1b77be"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbbfd-0175-1000-1ebd-c26ab66033c6","parent":{"ref":"EID6eecbb4e-0175-1000-ad86-e1f8cf1b77be"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbbfd-0175-1000-01ee-46c3bb91cc49","parent":{"ref":"EID6eecbb4e-0175-1000-ad86-e1f8cf1b77be"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"},{"id":"EID6eecbbfd-0175-1000-4066-99d57efd267b","parent":{"ref":"EID6eecbb4e-0175-1000-ad86-e1f8cf1b77be"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:16:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID03a4b02b-00df-4d37-8161-90cf03175ec9"},{"ref":"EIDf003f494-a0a2-4ab4-b7a4-7510c78b341a"},{"ref":"EID646c8691-14ce-416e-9ef9-3913c4b69fdd"}]},"parent":{"ref":"EID6eecbb4e-0175-1000-1f72-f121861f73ac"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:16:49Z","duration":71,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:16:49Z","duration":175,"status":"PASSED"},{"id":"EID6eecbbfd-0175-1000-80f6-a85200feb0ab","testStepResults":{"TestStepResult":[{"id":"EID6eecbbfd-0175-1000-a85e-c6eb0f482c96","attachments":{"attachment":[{"ref":"EID802e06d6-4c5c-43a2-a7cf-94dc387e96d0"},{"ref":"EID9f6b46f6-8a61-4859-8b49-c54c3b96c8af"},{"ref":"EID632dc433-c8b4-4771-990c-5b90fb09a9c6"},{"ref":"EIDfce6119e-4a4d-4c47-b785-7a4a49fe4b71"},{"ref":"EID4f7ae49a-8537-4d08-915d-0d4213197de9"},{"ref":"EID4e4fd03d-4bd6-4c6a-917f-9665076a4d93"},{"ref":"EID04856c5b-cc54-46b3-a9d6-3123bbc573a3"},{"ref":"EID649fb28a-33c0-4ab1-8cd8-920672407d0e"},{"ref":"EID9269fcc9-2bc9-4f8b-b583-02ef84364beb"},{"ref":"EIDc6b63487-a521-4151-926d-ec0898ee1837"},{"ref":"EIDafb0a01b-02f0-4a7f-a295-27d125db44e2"},{"ref":"EIDe6788715-6b36-420e-8de1-235a4a00bc07"}]},"parent":{"ref":"EID6eecbbfd-0175-1000-80f6-a85200feb0ab"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:16:49Z","duration":685,"status":"PASSED"},{"id":"EID6eecbf51-0175-1000-4a25-2e266c826429","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc02e-0175-1000-9d28-80259b6bd2c0","parent":{"ref":"EID6eecbf51-0175-1000-4a25-2e266c826429"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:16:50Z","duration":0,"status":"PASSED"},{"id":"EID6eecc02e-0175-1000-94fe-4f5cfe24a153","parent":{"ref":"EID6eecbf51-0175-1000-4a25-2e266c826429"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:16:50Z","duration":0,"status":"PASSED"},{"id":"EID6eecc02e-0175-1000-07e7-486f2caebe31","parent":{"ref":"EID6eecbf51-0175-1000-4a25-2e266c826429"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:16:50Z","duration":0,"status":"PASSED"},{"id":"EID6eecc02e-0175-1000-4e63-5ed94340ed35","parent":{"ref":"EID6eecbf51-0175-1000-4a25-2e266c826429"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:16:50Z","duration":0,"status":"PASSED"},{"id":"EID6eecc02e-0175-1000-f062-7b1655367b9a","parent":{"ref":"EID6eecbf51-0175-1000-4a25-2e266c826429"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:16:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID502ae46b-b713-40f5-93fb-2e183f58c21c"},{"ref":"EIDaa492b95-9f25-4a63-98f0-15decfc01d31"},{"ref":"EID5ff42549-ca05-4730-a026-a65dd123901b"}]},"parent":{"ref":"EID6eecbbfd-0175-1000-80f6-a85200feb0ab"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:16:50Z","duration":46,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:16:49Z","duration":1082,"status":"PASSED"},{"id":"EID6eecc038-0175-1000-1a95-7a5693025adc","testStepResults":{"TestStepResult":{"id":"EID6eecc038-0175-1000-2510-2307f5edd845","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc0f8-0175-1000-f18f-d6bef6d98318","parent":{"ref":"EID6eecc038-0175-1000-2510-2307f5edd845"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc0f8-0175-1000-9299-9140ec152979","parent":{"ref":"EID6eecc038-0175-1000-2510-2307f5edd845"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc0f8-0175-1000-2dc9-fdbe12f3b482","parent":{"ref":"EID6eecc038-0175-1000-2510-2307f5edd845"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc0f8-0175-1000-0f6e-667ee3852622","parent":{"ref":"EID6eecc038-0175-1000-2510-2307f5edd845"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa1c5c0ad-635e-4739-9424-69a51e8ab155"},{"ref":"EID60b277e3-2357-43aa-94a8-52443eb6899e"},{"ref":"EIDa10cbd32-d90e-4dce-8f11-398f5532a680"}]},"parent":{"ref":"EID6eecc038-0175-1000-1a95-7a5693025adc"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:16:50Z","duration":106,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:16:50Z","duration":192,"status":"PASSED"},{"id":"EID6eecc105-0175-1000-fd67-d090eda69fc0","testStepResults":{"TestStepResult":{"id":"EID6eecc105-0175-1000-c812-0436c01336b1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc204-0175-1000-bfe6-64245a340407","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc204-0175-1000-031a-98cb8e105f41","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc204-0175-1000-83b2-0a5aaf7d1fe1","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc204-0175-1000-0f98-3afd8dca27fb","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc204-0175-1000-b103-1cadfe75ea30","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc204-0175-1000-010d-c8a03a8727ba","parent":{"ref":"EID6eecc105-0175-1000-c812-0436c01336b1"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa114ef68-3469-4d54-b979-5ee3994915d0"},{"ref":"EID42e6c9ba-6d5f-4d7a-b299-a34a2cfd8fae"},{"ref":"EID5f2cb4b0-c800-4080-9dea-4a37952781a2"}]},"parent":{"ref":"EID6eecc105-0175-1000-fd67-d090eda69fc0"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:16:51Z","duration":113,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:16:51Z","duration":265,"status":"PASSED"},{"id":"EID6eecc20f-0175-1000-ef24-5bfb1aa45772","testStepResults":{"TestStepResult":{"id":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc2aa-0175-1000-801e-f996e8f82f45","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc2aa-0175-1000-6e1e-6fdb8d6880cc","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc2aa-0175-1000-09f5-9da4c30c362d","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc2aa-0175-1000-77bb-7a5236f4a095","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc2aa-0175-1000-fd58-feaa86a9af95","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc2aa-0175-1000-dec7-261860b3c959","parent":{"ref":"EID6eecc20f-0175-1000-788c-7c8d88ef14f1"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3792d798-2f60-41eb-b789-75706ba2e871"},{"ref":"EID6fa67810-c24a-44cc-8518-eff3a39cf00c"},{"ref":"EIDc1bb70d0-74a9-4d02-90d4-3b16e637e54d"}]},"parent":{"ref":"EID6eecc20f-0175-1000-ef24-5bfb1aa45772"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:16:51Z","duration":43,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:16:51Z","duration":164,"status":"PASSED"},{"id":"EID6eecc2b3-0175-1000-4555-de609f737c13","testStepResults":{"TestStepResult":{"id":"EID6eecc2b3-0175-1000-59cd-aaaca1c381ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc35e-0175-1000-8325-7fcbfb2e57f0","parent":{"ref":"EID6eecc2b3-0175-1000-59cd-aaaca1c381ca"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc35e-0175-1000-1121-231c92d14e67","parent":{"ref":"EID6eecc2b3-0175-1000-59cd-aaaca1c381ca"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc35e-0175-1000-fa46-ea8c2c6ffde6","parent":{"ref":"EID6eecc2b3-0175-1000-59cd-aaaca1c381ca"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"},{"id":"EID6eecc35e-0175-1000-c157-7372b8cb9bd9","parent":{"ref":"EID6eecc2b3-0175-1000-59cd-aaaca1c381ca"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:16:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7ab33628-58d1-4157-b0d6-8356a88b19a3"},{"ref":"EID47c55d8b-1e55-4cd4-98b5-f2c09e22c243"},{"ref":"EID5ffa2fdd-132e-4ac4-857e-f4fdaf168abc"}]},"parent":{"ref":"EID6eecc2b3-0175-1000-4555-de609f737c13"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:16:51Z","duration":77,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:16:51Z","duration":181,"status":"PASSED"},{"id":"EID6eecc368-0175-1000-3c98-8f70cbd7322b","testStepResults":{"TestStepResult":[{"id":"EID6eecc368-0175-1000-19bc-916a86cc6ba0","attachments":{"attachment":[{"ref":"EID1d0874df-ce32-4ed4-b775-9896bf1c2e55"},{"ref":"EID091e8590-5eca-4223-9a7f-7e35d4d854f0"},{"ref":"EIDc531f561-9229-414b-9f9a-decd2522a125"},{"ref":"EID9dc311a7-cd60-4b1c-9b0d-d652c37d7808"}]},"parent":{"ref":"EID6eecc368-0175-1000-3c98-8f70cbd7322b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:16:51Z","duration":239,"status":"PASSED"},{"id":"EID6eecc489-0175-1000-318f-2253798af9ae","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc54b-0175-1000-95d4-246c7cefa6ee","parent":{"ref":"EID6eecc489-0175-1000-318f-2253798af9ae"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc54b-0175-1000-e81f-bd2247df81a0","parent":{"ref":"EID6eecc489-0175-1000-318f-2253798af9ae"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc54b-0175-1000-f340-b0b3f8813bd3","parent":{"ref":"EID6eecc489-0175-1000-318f-2253798af9ae"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc54b-0175-1000-bdc0-a03b28e37b35","parent":{"ref":"EID6eecc489-0175-1000-318f-2253798af9ae"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55b6024e-d4e4-4dc2-bd72-9f1608d1b087"},{"ref":"EID2a5621d4-10c5-40db-868c-f27a02e77ed2"},{"ref":"EID2611c062-b232-4141-a0ce-9e21e1f63ef7"}]},"parent":{"ref":"EID6eecc368-0175-1000-3c98-8f70cbd7322b"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:16:51Z","duration":99,"status":"PASSED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:16:51Z","duration":493,"status":"PASSED"},{"id":"EID6eecc555-0175-1000-6815-c1d3e20d6899","testStepResults":{"TestStepResult":{"id":"EID6eecc555-0175-1000-5745-23fc8b80efab","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc778-0175-1000-f3fd-c85eb99fd971","parent":{"ref":"EID6eecc555-0175-1000-5745-23fc8b80efab"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc778-0175-1000-178e-af9c4608d08b","parent":{"ref":"EID6eecc555-0175-1000-5745-23fc8b80efab"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc778-0175-1000-97f3-9ede27247c4e","parent":{"ref":"EID6eecc555-0175-1000-5745-23fc8b80efab"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc778-0175-1000-a555-c9345bb0c82e","parent":{"ref":"EID6eecc555-0175-1000-5745-23fc8b80efab"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID89d8aea0-9f4f-4cd5-86fb-ee63ad230569"},{"ref":"EID901d2925-6765-483a-9d8b-238fca5496b8"},{"ref":"EIDe5855c6a-92e9-460f-9881-0648a22dc0df"}]},"parent":{"ref":"EID6eecc555-0175-1000-6815-c1d3e20d6899"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:16:52Z","duration":400,"status":"PASSED"}},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:16:52Z","duration":547,"status":"PASSED"},{"id":"EID6eecc778-0175-1000-27da-ea05e6a72f10","testStepResults":{"TestStepResult":[{"id":"EID6eecc778-0175-1000-79eb-9320fcff0e82","parent":{"ref":"EID6eecc778-0175-1000-27da-ea05e6a72f10"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc779-0175-1000-7641-c82bc45dabe5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc82b-0175-1000-c005-4a8d4098460d","parent":{"ref":"EID6eecc779-0175-1000-7641-c82bc45dabe5"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc82b-0175-1000-3049-83f8253957ec","parent":{"ref":"EID6eecc779-0175-1000-7641-c82bc45dabe5"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc82b-0175-1000-30a8-9b48a69fa532","parent":{"ref":"EID6eecc779-0175-1000-7641-c82bc45dabe5"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:16:52Z","duration":0,"status":"PASSED"},{"id":"EID6eecc82b-0175-1000-355b-3e58f474d81a","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eecc779-0175-1000-7641-c82bc45dabe5"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:16:52Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDdd2a69ed-1402-4b6c-ab27-f4d42ed7bf49"},{"ref":"EIDafb8653f-5115-4f9a-b4d6-dbf0d9dec5ff"},{"ref":"EID91aa5ebe-42f2-4d45-86ec-6f8f4ea09884"}]},"parent":{"ref":"EID6eecc778-0175-1000-27da-ea05e6a72f10"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:16:52Z","duration":54,"status":"FAILED"}]},"parent":{"ref":"EID6eecaacd-0175-1000-f5e6-ec21aea063cc"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:16:52Z","duration":281,"status":"FAILED"}]},"parent":{"ref":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:16:45Z","duration":7621,"status":"FAILED"},{"id":"EID6eecc892-0175-1000-6668-dce03519efb3","testCaseResults":{"TestCaseResult":[{"id":"EID6eecc892-0175-1000-1728-c3b7876b9061","testStepResults":{"TestStepResult":[{"id":"EID6eecc892-0175-1000-e992-8ce953c80477","parent":{"ref":"EID6eecc892-0175-1000-1728-c3b7876b9061"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc892-0175-1000-b9c9-006f4d47710e","parent":{"ref":"EID6eecc892-0175-1000-1728-c3b7876b9061"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":400,"status":"PASSED"},{"id":"EID6eecc892-0175-1000-33e3-9a9cf9f6038c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc90e-0175-1000-74c2-c87bc1f3b672","parent":{"ref":"EID6eecc892-0175-1000-33e3-9a9cf9f6038c"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc90e-0175-1000-1d44-57a7fd08506e","parent":{"ref":"EID6eecc892-0175-1000-33e3-9a9cf9f6038c"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc90e-0175-1000-43cf-e670d1897ec4","parent":{"ref":"EID6eecc892-0175-1000-33e3-9a9cf9f6038c"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID601d5d0a-9c4a-4b3a-9054-36b9daa292d7"},{"ref":"EID22e69c4b-acc2-44cf-9d56-a0e1f7a3a78d"},{"ref":"EIDf71222aa-9cf9-4ee8-b47d-95e9d48617e2"}]},"parent":{"ref":"EID6eecc892-0175-1000-1728-c3b7876b9061"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:16:53Z","duration":44,"status":"PASSED"},{"id":"EID6eecc90e-0175-1000-a5de-22429b5ff489","attachments":{"attachment":{"ref":"EID4fdbfa96-040a-4723-97c3-e36b81de63da"}},"parent":{"ref":"EID6eecc892-0175-1000-1728-c3b7876b9061"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc930-0175-1000-644d-a5af7d555a45","parent":{"ref":"EID6eecc892-0175-1000-1728-c3b7876b9061"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:16:53Z","duration":25,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:16:53Z","duration":184,"status":"PASSED"},{"id":"EID6eecc94a-0175-1000-522a-1c81c0c425fc","testStepResults":{"TestStepResult":[{"id":"EID6eecc94a-0175-1000-79ef-4bd363e339a5","parent":{"ref":"EID6eecc94a-0175-1000-522a-1c81c0c425fc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":58,"status":"PASSED"},{"id":"EID6eecc94a-0175-1000-4c63-84ea0016f69f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecc9e8-0175-1000-059a-356eac705ea5","parent":{"ref":"EID6eecc94a-0175-1000-4c63-84ea0016f69f"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc9e8-0175-1000-116e-844625f76f47","parent":{"ref":"EID6eecc94a-0175-1000-4c63-84ea0016f69f"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc9e8-0175-1000-939a-89fb89f932fd","parent":{"ref":"EID6eecc94a-0175-1000-4c63-84ea0016f69f"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc9e8-0175-1000-7efd-84ba69539b48","parent":{"ref":"EID6eecc94a-0175-1000-4c63-84ea0016f69f"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecc9e8-0175-1000-b5da-bb0efd13297f","parent":{"ref":"EID6eecc94a-0175-1000-4c63-84ea0016f69f"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbf9045fc-d46e-427c-a1ce-339cb41b1a00"},{"ref":"EID88edc4f4-e7a3-402c-bffa-1302fc143b51"},{"ref":"EIDc002e2c0-cb4a-498a-af7f-47bad8225621"}]},"parent":{"ref":"EID6eecc94a-0175-1000-522a-1c81c0c425fc"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:16:53Z","duration":84,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:16:53Z","duration":158,"status":"PASSED"},{"id":"EID6eecc9e8-0175-1000-e2cc-66182e11483a","testStepResults":{"TestStepResult":[{"id":"EID6eecc9e8-0175-1000-42b7-42cafc210d7b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecca68-0175-1000-006a-2371a31c7e00","parent":{"ref":"EID6eecc9e8-0175-1000-42b7-42cafc210d7b"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecca68-0175-1000-bcab-5595a9726465","parent":{"ref":"EID6eecc9e8-0175-1000-42b7-42cafc210d7b"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eecca68-0175-1000-897e-bdef1c96f305","parent":{"ref":"EID6eecc9e8-0175-1000-42b7-42cafc210d7b"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID56ac64bd-841d-4ac5-9886-5d9f3bda2051"},{"ref":"EID1a912a9c-3318-47d7-bad7-b04b6eb573da"},{"ref":"EID5a44a8d4-aad4-4bfe-8c02-ee610ff436e6"}]},"parent":{"ref":"EID6eecc9e8-0175-1000-e2cc-66182e11483a"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:16:53Z","duration":67,"status":"PASSED"},{"id":"EID6eecca69-0175-1000-81aa-7b0e94c4c5b5","attachments":{"attachment":{"ref":"EIDb2b0ae1c-5f81-40f0-a862-1bbf2e5788cb"}},"parent":{"ref":"EID6eecc9e8-0175-1000-e2cc-66182e11483a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":12,"status":"PASSED"},{"id":"EID6eecca7f-0175-1000-f504-80e244d400c9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeccb6d-0175-1000-e5c6-423f2ba84d0e","parent":{"ref":"EID6eecca7f-0175-1000-f504-80e244d400c9"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccb6d-0175-1000-09c8-f3183f80dc9b","parent":{"ref":"EID6eecca7f-0175-1000-f504-80e244d400c9"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccb6d-0175-1000-9afe-850dd0b68aa2","parent":{"ref":"EID6eecca7f-0175-1000-f504-80e244d400c9"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccb6d-0175-1000-70fb-0970ca1118a7","parent":{"ref":"EID6eecca7f-0175-1000-f504-80e244d400c9"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccb6d-0175-1000-630d-eef6969d95d4","parent":{"ref":"EID6eecca7f-0175-1000-f504-80e244d400c9"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa69e28c7-34e3-4508-947c-654d5a99f38a"},{"ref":"EIDa280396c-9c1c-4c70-9758-a989a48f05f6"},{"ref":"EID245ef0f2-0415-4c7e-a028-9db8302bb9fe"}]},"parent":{"ref":"EID6eecc9e8-0175-1000-e2cc-66182e11483a"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:16:53Z","duration":87,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:16:53Z","duration":389,"status":"PASSED"},{"id":"EID6eeccb6d-0175-1000-b3d1-6eb0af83b133","testStepResults":{"TestStepResult":[{"id":"EID6eeccb6d-0175-1000-96eb-baff37f7261e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeccbfb-0175-1000-acac-f4987c152a25","parent":{"ref":"EID6eeccb6d-0175-1000-96eb-baff37f7261e"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccbfb-0175-1000-5dd6-dce2a1fdd634","parent":{"ref":"EID6eeccb6d-0175-1000-96eb-baff37f7261e"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccbfb-0175-1000-8dc8-822ef3b780c8","parent":{"ref":"EID6eeccb6d-0175-1000-96eb-baff37f7261e"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccbfb-0175-1000-ba4e-098fb4b0f569","parent":{"ref":"EID6eeccb6d-0175-1000-96eb-baff37f7261e"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID720bc672-1558-4026-944a-17847243815d"},{"ref":"EIDff52db1b-00f6-44ae-8942-f2e293816c5f"},{"ref":"EID27172037-a666-4df1-8063-979cafb12ade"}]},"parent":{"ref":"EID6eeccb6d-0175-1000-b3d1-6eb0af83b133"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:16:53Z","duration":60,"status":"PASSED"},{"id":"EID6eeccbfb-0175-1000-9ec9-13641c70f5cf","attachments":{"attachment":{"ref":"EIDae474380-759d-44d7-808c-122daac315bd"}},"parent":{"ref":"EID6eeccb6d-0175-1000-b3d1-6eb0af83b133"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:16:53Z","duration":1,"status":"PASSED"},{"id":"EID6eeccc07-0175-1000-d19b-52d6c9198b52","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeccc6b-0175-1000-fc95-9dd8b04ef399","parent":{"ref":"EID6eeccc07-0175-1000-d19b-52d6c9198b52"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeccc6b-0175-1000-e9d1-4a60146971a8","parent":{"ref":"EID6eeccc07-0175-1000-d19b-52d6c9198b52"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:16:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID392977d8-9b34-4830-bec8-56af020ca3ba"},{"ref":"EID9892c7bf-d4fa-4f3a-a814-87a6c45ead7a"}]},"parent":{"ref":"EID6eeccb6d-0175-1000-b3d1-6eb0af83b133"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:16:53Z","duration":96,"status":"PASSED"},{"id":"EID6eeccc77-0175-1000-5507-eef801aa94b6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeccdc1-0175-1000-a582-dfdf36d7a872","parent":{"ref":"EID6eeccc77-0175-1000-5507-eef801aa94b6"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeccdc1-0175-1000-7784-d74a0c508ea9","parent":{"ref":"EID6eeccc77-0175-1000-5507-eef801aa94b6"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeccdc1-0175-1000-935e-6e85adab4863","parent":{"ref":"EID6eeccc77-0175-1000-5507-eef801aa94b6"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeccdc1-0175-1000-e59b-3708def684ef","parent":{"ref":"EID6eeccc77-0175-1000-5507-eef801aa94b6"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID304022bf-6a0c-4c8a-a430-3c071cab3e07"},{"ref":"EID46823a58-f9a8-4675-b039-8ca5ab753465"},{"ref":"EID5bf0b9c6-c3a2-40d3-9e8b-a9cde1d7194b"}]},"parent":{"ref":"EID6eeccb6d-0175-1000-b3d1-6eb0af83b133"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:16:54Z","duration":212,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:16:53Z","duration":596,"status":"PASSED"},{"id":"EID6eeccdc1-0175-1000-7d67-adb99b18b780","testStepResults":{"TestStepResult":{"id":"EID6eeccdc1-0175-1000-68ae-bff346840840","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecce49-0175-1000-3713-79086aab0405","parent":{"ref":"EID6eeccdc1-0175-1000-68ae-bff346840840"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecce49-0175-1000-3cac-805fc055c614","parent":{"ref":"EID6eeccdc1-0175-1000-68ae-bff346840840"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecce49-0175-1000-6643-a35a702d8989","parent":{"ref":"EID6eeccdc1-0175-1000-68ae-bff346840840"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7743101c-bbf0-42f8-bae7-61a8c4799712"},{"ref":"EID4085b37c-4c2b-4a00-98d3-0af856f37fc2"},{"ref":"EIDb487394c-2d57-4127-8b41-5f1d3d748a52"}]},"parent":{"ref":"EID6eeccdc1-0175-1000-7d67-adb99b18b780"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:16:54Z","duration":79,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:16:54Z","duration":136,"status":"PASSED"},{"id":"EID6eecce49-0175-1000-1914-8b960605ac68","testStepResults":{"TestStepResult":{"id":"EID6eecce49-0175-1000-c850-496547a84460","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeccf50-0175-1000-5a85-535bdcab05c1","parent":{"ref":"EID6eecce49-0175-1000-c850-496547a84460"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeccf50-0175-1000-552f-5764a9437740","parent":{"ref":"EID6eecce49-0175-1000-c850-496547a84460"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeccf50-0175-1000-acaa-86cc4f31d171","parent":{"ref":"EID6eecce49-0175-1000-c850-496547a84460"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1cc71fc0-a8a5-4d1a-a718-0bd76c24ec4e"},{"ref":"EID3d279737-8c89-434b-8e10-2513e0e85a26"},{"ref":"EID865e1549-4aab-4eb7-9fdc-a2b8945492d6"}]},"parent":{"ref":"EID6eecce49-0175-1000-1914-8b960605ac68"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:16:54Z","duration":207,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:16:54Z","duration":272,"status":"PASSED"},{"id":"EID6eeccf59-0175-1000-e6a2-360baa0d8726","testStepResults":{"TestStepResult":{"id":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd00c-0175-1000-6b5c-d2b73ce8317a","parent":{"ref":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecd00c-0175-1000-bfca-dd7fa9da5c6d","parent":{"ref":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecd00c-0175-1000-5d98-76e1d3908071","parent":{"ref":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecd00c-0175-1000-69f5-0099f53b183e","parent":{"ref":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"},{"id":"EID6eecd00c-0175-1000-14b8-22dd810721b2","parent":{"ref":"EID6eeccf59-0175-1000-d03a-8a6cbf98dc18"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:16:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1285a138-74f5-47cf-a847-a8b803a0a98f"},{"ref":"EIDe2ce2a42-e4f9-44b3-afa4-9b42fcd47e43"},{"ref":"EID9c7f4859-1abe-4c4d-b517-b03765541310"}]},"parent":{"ref":"EID6eeccf59-0175-1000-e6a2-360baa0d8726"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:16:54Z","duration":38,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:16:54Z","duration":179,"status":"PASSED"},{"id":"EID6eecd00c-0175-1000-2cca-b171f1f855b4","testStepResults":{"TestStepResult":{"id":"EID6eecd00c-0175-1000-71cb-5fc11ad5033c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd0b7-0175-1000-ff31-8ffbd20d1cdb","parent":{"ref":"EID6eecd00c-0175-1000-71cb-5fc11ad5033c"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd0b7-0175-1000-6217-bc9bd8025a86","parent":{"ref":"EID6eecd00c-0175-1000-71cb-5fc11ad5033c"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd0b7-0175-1000-ddab-80b5804b8d62","parent":{"ref":"EID6eecd00c-0175-1000-71cb-5fc11ad5033c"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbd2bd24e-756e-4924-a3a7-1f8f61efdb86"},{"ref":"EID8c9dfe38-6235-412a-8f94-0a5708554049"},{"ref":"EIDf183877f-ea7a-47f1-899a-f3913f482e44"}]},"parent":{"ref":"EID6eecd00c-0175-1000-2cca-b171f1f855b4"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:16:54Z","duration":112,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:16:54Z","duration":181,"status":"PASSED"},{"id":"EID6eecd0c2-0175-1000-40a0-6af2815479e7","testStepResults":{"TestStepResult":{"id":"EID6eecd0c2-0175-1000-5292-6041298f4c9e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd17a-0175-1000-7326-ae68c0c91837","parent":{"ref":"EID6eecd0c2-0175-1000-5292-6041298f4c9e"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd17a-0175-1000-5322-dc31d49a4fd4","parent":{"ref":"EID6eecd0c2-0175-1000-5292-6041298f4c9e"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd17a-0175-1000-df95-13bab48beeb7","parent":{"ref":"EID6eecd0c2-0175-1000-5292-6041298f4c9e"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3fb5d5a8-a0f7-4bfc-88ea-6a1c4b96be17"},{"ref":"EID7145f7d0-6290-4a09-8433-0bcff314572f"},{"ref":"EID09c87728-c8c6-4527-b62d-2756616b0e25"}]},"parent":{"ref":"EID6eecd0c2-0175-1000-40a0-6af2815479e7"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:16:55Z","duration":53,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:16:55Z","duration":184,"status":"PASSED"},{"id":"EID6eecd17d-0175-1000-c41b-8529c67d86b7","testStepResults":{"TestStepResult":{"id":"EID6eecd17d-0175-1000-5f72-a2eef60dd12d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd220-0175-1000-b772-6e22af832a2f","parent":{"ref":"EID6eecd17d-0175-1000-5f72-a2eef60dd12d"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd220-0175-1000-f71a-80cb86b2a453","parent":{"ref":"EID6eecd17d-0175-1000-5f72-a2eef60dd12d"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd220-0175-1000-59f4-ed0d3fa8b35c","parent":{"ref":"EID6eecd17d-0175-1000-5f72-a2eef60dd12d"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"},{"id":"EID6eecd220-0175-1000-d147-b38beafdd671","parent":{"ref":"EID6eecd17d-0175-1000-5f72-a2eef60dd12d"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:16:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID449b13d5-0151-44fd-98b4-725e879b5865"},{"ref":"EID16290a24-8e08-45cf-931b-3e241b52ce51"},{"ref":"EID005f4fed-cee4-4c83-907a-12a867c96f84"}]},"parent":{"ref":"EID6eecd17d-0175-1000-c41b-8529c67d86b7"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:16:55Z","duration":94,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:16:55Z","duration":163,"status":"PASSED"},{"id":"EID6eecd229-0175-1000-e8ca-50979612bed9","testStepResults":{"TestStepResult":{"id":"EID6eecd229-0175-1000-4c4b-fed0717b3e48","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd478-0175-1000-4d0b-9f5354c56044","parent":{"ref":"EID6eecd229-0175-1000-4c4b-fed0717b3e48"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-7044-0ad29e1c8432","parent":{"ref":"EID6eecd229-0175-1000-4c4b-fed0717b3e48"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-e42f-b3f60d8fa9fe","parent":{"ref":"EID6eecd229-0175-1000-4c4b-fed0717b3e48"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-0c0a-4ae1c3a17986","parent":{"ref":"EID6eecd229-0175-1000-4c4b-fed0717b3e48"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID92cefac2-4136-49b5-995f-7ac2d66c6530"},{"ref":"EIDdc47b342-c590-4916-8883-12ca594f6ba2"},{"ref":"EID926fd7da-021a-47cc-85e6-a922019c2545"}]},"parent":{"ref":"EID6eecd229-0175-1000-e8ca-50979612bed9"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:16:55Z","duration":522,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:16:55Z","duration":591,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-d82c-4afb56c16d2f","testStepResults":{"TestStepResult":[{"id":"EID6eecd478-0175-1000-4ccd-570b6d240241","parent":{"ref":"EID6eecd478-0175-1000-d82c-4afb56c16d2f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-5f21-d5727a2e760c","parent":{"ref":"EID6eecd478-0175-1000-d82c-4afb56c16d2f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:16:56Z","duration":175,"status":"PASSED"},{"id":"EID6eecd478-0175-1000-b145-ad13b04674e2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd702-0175-1000-8171-25153f72c85c","parent":{"ref":"EID6eecd478-0175-1000-b145-ad13b04674e2"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd702-0175-1000-b8d2-0cae4f0d9494","parent":{"ref":"EID6eecd478-0175-1000-b145-ad13b04674e2"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd702-0175-1000-2b77-459a6f9fa037","parent":{"ref":"EID6eecd478-0175-1000-b145-ad13b04674e2"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"},{"id":"EID6eecd702-0175-1000-0f80-e2e9955d8992","parent":{"ref":"EID6eecd478-0175-1000-b145-ad13b04674e2"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:16:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID65c89e05-c6f2-4a0e-85c6-e06ca492dad5"},{"ref":"EIDbe11d933-3e95-4139-813e-5363abcd3e75"},{"ref":"EID97d61db2-e4f2-465c-aedd-88279afafbfd"}]},"parent":{"ref":"EID6eecd478-0175-1000-d82c-4afb56c16d2f"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:16:56Z","duration":514,"status":"PASSED"},{"id":"EID6eecd702-0175-1000-771d-174804b13b10","attachments":{"attachment":{"ref":"EID2ed1e435-1852-47ca-aa64-426c6572bb98"}},"parent":{"ref":"EID6eecd478-0175-1000-d82c-4afb56c16d2f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:16:56Z","duration":1,"status":"PASSED"},{"id":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecd9cb-0175-1000-362d-7ecd6ea9acf6","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-61d6-d9dd74abb3b4","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-e23e-3e4e632d4616","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-e8dd-a426523e6595","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-8f24-cbbe7f414c84","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-3e0d-39d9c91b8ac7","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-42b1-b871d5960e3a","parent":{"ref":"EID6eecd71a-0175-1000-5d80-78eb9ba37bc6"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID35c0e803-b98d-4d6b-8fbf-071af1c62acb"},{"ref":"EID4ecd9388-88b7-4353-bb4e-a2b378eb4f14"},{"ref":"EID34045dae-fb7d-46a5-87de-f2eb9cbb82af"}]},"parent":{"ref":"EID6eecd478-0175-1000-d82c-4afb56c16d2f"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:16:56Z","duration":588,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:16:56Z","duration":1363,"status":"PASSED"},{"id":"EID6eecd9cb-0175-1000-6166-0472a3906d63","testStepResults":{"TestStepResult":[{"id":"EID6eecd9cb-0175-1000-ed02-7df4d2d18f60","parent":{"ref":"EID6eecd9cb-0175-1000-6166-0472a3906d63"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:16:57Z","duration":1,"status":"PASSED"},{"id":"EID6eecd9cc-0175-1000-f27d-bfbf9867ca2f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecdaeb-0175-1000-0162-c417ace058cd","parent":{"ref":"EID6eecd9cc-0175-1000-f27d-bfbf9867ca2f"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecdaeb-0175-1000-0922-001e5c9facb7","parent":{"ref":"EID6eecd9cc-0175-1000-f27d-bfbf9867ca2f"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecdaeb-0175-1000-8db3-744d9ea62acd","parent":{"ref":"EID6eecd9cc-0175-1000-f27d-bfbf9867ca2f"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"},{"id":"EID6eecdaeb-0175-1000-24e0-67e5df5e69b5","parent":{"ref":"EID6eecd9cc-0175-1000-f27d-bfbf9867ca2f"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:16:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID30d06d29-1af5-4e3b-bded-32c452557eba"},{"ref":"EID8386be2f-43ff-4d6a-b92a-267a74cb3f00"},{"ref":"EID5d5c45f6-af56-48c2-9428-9fb741cc5e86"}]},"parent":{"ref":"EID6eecd9cb-0175-1000-6166-0472a3906d63"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:16:57Z","duration":157,"status":"PASSED"},{"id":"EID6eecdaf4-0175-1000-66df-2e3646c09824","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eecdb10-0175-1000-303e-bcaefac0903a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecdc2e-0175-1000-ab93-96ef1aa2cf53","parent":{"ref":"EID6eecdb10-0175-1000-303e-bcaefac0903a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdc2e-0175-1000-3d46-205cb54f1990","parent":{"ref":"EID6eecdb10-0175-1000-303e-bcaefac0903a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdc2e-0175-1000-1bdd-2660629b8473","parent":{"ref":"EID6eecdb10-0175-1000-303e-bcaefac0903a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbed02850-3b31-4f4f-b0e8-c50a9e560117"},{"ref":"EID19e5992d-0bca-4219-9304-de96621b32cc"},{"ref":"EIDcaf93f86-663f-466f-9672-d80e0efc7afb"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:57Z","duration":151,"status":"PASSED"},{"id":"EID6eecdc30-0175-1000-5af6-2cedf3e8c840","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecdd3e-0175-1000-1b22-68aa1080b8bd","parent":{"ref":"EID6eecdc30-0175-1000-5af6-2cedf3e8c840"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdd3e-0175-1000-f169-628bfcc78ba1","parent":{"ref":"EID6eecdc30-0175-1000-5af6-2cedf3e8c840"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdd3e-0175-1000-eac7-70b1023587bf","parent":{"ref":"EID6eecdc30-0175-1000-5af6-2cedf3e8c840"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4aacd3a0-2e8b-4774-8acc-db7651cc611f"},{"ref":"EID21a418e6-976a-4458-8fab-739aec474fee"},{"ref":"EID04a560b1-b676-4a43-8b96-e08f2b6dc3d7"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:58Z","duration":176,"status":"PASSED"},{"id":"EID6eecdd40-0175-1000-ec52-1d8a6a478edd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecde09-0175-1000-0cb4-fd283e3f4337","parent":{"ref":"EID6eecdd40-0175-1000-ec52-1d8a6a478edd"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecde09-0175-1000-b820-e60443711f1b","parent":{"ref":"EID6eecdd40-0175-1000-ec52-1d8a6a478edd"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecde09-0175-1000-1eb4-461f3e34f636","parent":{"ref":"EID6eecdd40-0175-1000-ec52-1d8a6a478edd"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6517a30e-0fee-4f39-a8dc-619a1b353200"},{"ref":"EIDa7cd5854-4bb7-4e28-80b8-4e2327a7c465"},{"ref":"EID4ee9dfcb-538f-4510-afba-0b6f0e645d08"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:58Z","duration":153,"status":"PASSED"}]},"parent":{"ref":"EID6eecd9cb-0175-1000-6166-0472a3906d63"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:16:57Z","duration":790,"status":"PASSED"},{"id":"EID6eecde0a-0175-1000-bcd8-4024b3525bb9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecde9f-0175-1000-2948-f176aaa9cd53","parent":{"ref":"EID6eecde0a-0175-1000-bcd8-4024b3525bb9"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecde9f-0175-1000-7f40-68923d3e4605","parent":{"ref":"EID6eecde0a-0175-1000-bcd8-4024b3525bb9"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecde9f-0175-1000-0d9b-10d32faa0819","parent":{"ref":"EID6eecde0a-0175-1000-bcd8-4024b3525bb9"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecde9f-0175-1000-e747-d2bbdf2e81b9","parent":{"ref":"EID6eecde0a-0175-1000-bcd8-4024b3525bb9"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe2176ecf-53e7-4ff3-8d5f-7f4644d238d3"},{"ref":"EID243d363e-53d5-4cd8-af5a-40aa00ffe42d"},{"ref":"EID5d91bdfa-4274-4dcc-ab1e-c7993118e584"}]},"parent":{"ref":"EID6eecd9cb-0175-1000-6166-0472a3906d63"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:16:58Z","duration":82,"status":"PASSED"}]},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:16:57Z","duration":1266,"status":"PASSED"},{"id":"EID6eecdebd-0175-1000-ea29-c275a4ea833c","testStepResults":{"TestStepResult":{"id":"EID6eecdebd-0175-1000-d7a5-fc8210f1592f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecdf39-0175-1000-b87d-e18e95e4da88","parent":{"ref":"EID6eecdebd-0175-1000-d7a5-fc8210f1592f"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdf39-0175-1000-7394-1dc7db2f35a8","parent":{"ref":"EID6eecdebd-0175-1000-d7a5-fc8210f1592f"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdf39-0175-1000-02d1-b52226962b18","parent":{"ref":"EID6eecdebd-0175-1000-d7a5-fc8210f1592f"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdf39-0175-1000-863e-fd6711258327","parent":{"ref":"EID6eecdebd-0175-1000-d7a5-fc8210f1592f"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID08898b82-bfde-4a05-924d-75300dd78782"},{"ref":"EID8b3153c5-00b9-4dc0-8523-7174b39572b2"},{"ref":"EID5cedf569-7f16-4ea1-803b-f3b125e773f7"}]},"parent":{"ref":"EID6eecdebd-0175-1000-ea29-c275a4ea833c"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:16:58Z","duration":43,"status":"PASSED"}},"parent":{"ref":"EID6eecc892-0175-1000-6668-dce03519efb3"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:16:58Z","duration":124,"status":"PASSED"}]},"parent":{"ref":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:16:53Z","duration":5807,"status":"PASSED"},{"id":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3","testCaseResults":{"TestCaseResult":[{"id":"EID6eecdf42-0175-1000-a54c-a164a7d16e9d","testStepResults":{"TestStepResult":[{"id":"EID6eecdf42-0175-1000-8699-5ea57b60fa39","parent":{"ref":"EID6eecdf42-0175-1000-a54c-a164a7d16e9d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:16:58Z","duration":943,"status":"PASSED"},{"id":"EID6eecdf42-0175-1000-8d10-4e65c685e245","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecdfb3-0175-1000-65f6-74bbfd8eb75f","parent":{"ref":"EID6eecdf42-0175-1000-8d10-4e65c685e245"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdfb3-0175-1000-5fba-8a6166ba6451","parent":{"ref":"EID6eecdf42-0175-1000-8d10-4e65c685e245"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"},{"id":"EID6eecdfb3-0175-1000-a040-31ffa8881138","parent":{"ref":"EID6eecdf42-0175-1000-8d10-4e65c685e245"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2ac815b8-fba6-400e-9c13-f99bfaa08270"},{"ref":"EIDf55baa92-2080-4f76-b498-3b3cde6d9c22"},{"ref":"EID90adb0f4-a2b1-4f46-8f0c-19086963edca"}]},"parent":{"ref":"EID6eecdf42-0175-1000-a54c-a164a7d16e9d"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:16:58Z","duration":40,"status":"PASSED"},{"id":"EID6eecdfb4-0175-1000-cb7a-16953596bbc6","attachments":{"attachment":{"ref":"EID62a3eea2-93a8-4aa7-8399-1f72bdd50826"}},"parent":{"ref":"EID6eecdf42-0175-1000-a54c-a164a7d16e9d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:16:58Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:16:58Z","duration":139,"status":"PASSED"},{"id":"EID6eecdfcd-0175-1000-b55b-cecc55e96415","testStepResults":{"TestStepResult":[{"id":"EID6eecdfce-0175-1000-315e-14bdb3997fa3","parent":{"ref":"EID6eecdfcd-0175-1000-b55b-cecc55e96415"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:16:58Z","duration":943,"status":"PASSED"},{"id":"EID6eecdfcf-0175-1000-1e32-e686e4e2206e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece0ca-0175-1000-b718-cb8473f5f449","parent":{"ref":"EID6eecdfcf-0175-1000-1e32-e686e4e2206e"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece0ca-0175-1000-6cc2-933937da80e2","parent":{"ref":"EID6eecdfcf-0175-1000-1e32-e686e4e2206e"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece0ca-0175-1000-6bc5-be33b027db16","parent":{"ref":"EID6eecdfcf-0175-1000-1e32-e686e4e2206e"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece0ca-0175-1000-91c8-2e60afb01c7c","parent":{"ref":"EID6eecdfcf-0175-1000-1e32-e686e4e2206e"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf1669a6f-a8ae-495c-8482-8773b6e0779e"},{"ref":"EID451a1f53-3184-4eaf-8086-08d22dbfab8d"},{"ref":"EID098f9e5e-190a-4669-a302-5b9ce68e97f7"}]},"parent":{"ref":"EID6eecdfcd-0175-1000-b55b-cecc55e96415"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:16:58Z","duration":133,"status":"PASSED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:16:58Z","duration":265,"status":"PASSED"},{"id":"EID6eece0d7-0175-1000-facd-0bb0db021852","testStepResults":{"TestStepResult":[{"id":"EID6eece0d7-0175-1000-4938-cb0494b2d937","parent":{"ref":"EID6eece0d7-0175-1000-facd-0bb0db021852"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:16:59Z","duration":943,"status":"PASSED"},{"id":"EID6eece0d7-0175-1000-ab29-48ac5367534e","parent":{"ref":"EID6eece0d7-0175-1000-facd-0bb0db021852"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece0d7-0175-1000-ebed-bd08f82002c3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece1a8-0175-1000-ebf4-49120829f4ca","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-b0c1-c1c460718989","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-7472-8cc5ae832797","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-96ff-9dd053b3aded","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-fd1c-438fe166bf7d","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-b0bc-44215d739bd2","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"},{"id":"EID6eece1a8-0175-1000-fb9e-1c5403f42a5e","parent":{"ref":"EID6eece0d7-0175-1000-ebed-bd08f82002c3"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:16:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID34d61036-244a-4639-ba84-2e9843eba3a7"},{"ref":"EIDab61a611-e083-4425-9b85-b1a8e625555a"},{"ref":"EID9a20d74d-d81f-448b-9b52-cfddce216669"}]},"parent":{"ref":"EID6eece0d7-0175-1000-facd-0bb0db021852"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:16:59Z","duration":99,"status":"PASSED"},{"id":"EID6eece1b2-0175-1000-8ac3-da5815fdba62","invokedTests":{"":null,"TestStepResult":{"id":"EID6eece1e8-0175-1000-feb3-86f61613a54a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece4cf-0175-1000-ab4a-93af9b3fbd1a","parent":{"ref":"EID6eece1e8-0175-1000-feb3-86f61613a54a"},"resultedFrom":{"ref":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece4cf-0175-1000-4a68-fab3d0a556cd","parent":{"ref":"EID6eece1e8-0175-1000-feb3-86f61613a54a"},"resultedFrom":{"ref":"EID4c8b189c-31ec-4098-8f45-6952a58780c6"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece4cf-0175-1000-774c-6f7255b38143","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"parent":{"ref":"EID6eece1e8-0175-1000-feb3-86f61613a54a"},"resultedFrom":{"ref":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID874294dc-3ec3-4d7b-840e-796c5bb42cfa"},{"ref":"EID64da6c6c-cafa-4bcb-a10f-3b885e65c805"},{"ref":"EIDfa4365e4-7379-464d-a785-2e84ffa26802"}]},"resultedFrom":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"startTimestamp":"2020-10-28T11:16:59Z","duration":541,"status":"FAILED"}},"attachments":{"attachment":[{"ref":"EIDe00f6e6c-8de5-4b11-877d-ee343bcc1996"},{"ref":"EIDed477390-636b-43c4-a9b2-1821729de7be"}]},"parent":{"ref":"EID6eece0d7-0175-1000-facd-0bb0db021852"},"resultedFrom":{"ref":"EIDb0803022-623e-456c-aa2e-bc968ee33150"},"startTimestamp":"2020-10-28T11:16:59Z","duration":823,"status":"FAILED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:16:59Z","duration":1074,"status":"FAILED"},{"id":"EID6eece509-0175-1000-34bb-538662a2cf9a","testStepResults":{"TestStepResult":[{"id":"EID6eece509-0175-1000-d262-2e588ecab40e","parent":{"ref":"EID6eece509-0175-1000-34bb-538662a2cf9a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:17:00Z","duration":944,"status":"PASSED"},{"id":"EID6eece50a-0175-1000-b79d-b4dcbfca81b5","parent":{"ref":"EID6eece509-0175-1000-34bb-538662a2cf9a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece50a-0175-1000-bcc4-711a38667ad4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eece63e-0175-1000-35b7-84460f0ee637","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-d13b-4abe390cccbf","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-2426-821a9a3ef7d3","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-9c81-9be164eafcb4","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-96c6-7e947fa806cb","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-209d-8034c1af036a","parent":{"ref":"EID6eece50a-0175-1000-bcc4-711a38667ad4"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:17:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2b942eb8-0103-4259-8822-2771dba67ac5"},{"ref":"EID43e38242-c71a-4eb9-9dc8-58117f27ac84"},{"ref":"EIDabf0c3d4-1cf3-4479-b8a5-f07911bf0e70"}]},"parent":{"ref":"EID6eece509-0175-1000-34bb-538662a2cf9a"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:17:00Z","duration":89,"status":"PASSED"},{"id":"EID6eece63e-0175-1000-f515-307d6feddb92","parent":{"ref":"EID6eece509-0175-1000-34bb-538662a2cf9a"},"resultedFrom":{"ref":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b"},"startTimestamp":"2020-10-28T11:17:00Z","duration":51,"status":"PASSED"},{"id":"EID6eece672-0175-1000-0036-664d23081cba","parent":{"ref":"EID6eece509-0175-1000-34bb-538662a2cf9a"},"resultedFrom":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"startTimestamp":"2020-10-28T11:17:00Z","duration":1,"status":"UNDEFINED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:17:00Z","duration":362,"status":"UNDEFINED"},{"id":"EID6eece673-0175-1000-1cf0-4328ae6fdfb2","testStepResults":{"TestStepResult":[{"id":"EID6eece673-0175-1000-f694-50b7ed3d7518","parent":{"ref":"EID6eece673-0175-1000-1cf0-4328ae6fdfb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:17:00Z","duration":943,"status":"PASSED"},{"id":"EID6eece673-0175-1000-0a51-cfa5a55d70f0","messages":{"message":{"ref":"TR.unexpectedContentType","translationArguments":{"argument":[{"token":"actual","$":"application/x-zip-compressed"},{"token":"expected","$":"application/x-compressed"}]}}},"attachments":{"attachment":[{"ref":"EID9293dfe8-be0f-49b0-a571-298dca824011"},{"ref":"EIDab2c7bbc-34f3-46c0-bd9f-ce38172f87b4"},{"ref":"EID32909120-d172-4e22-ad11-9829d01d7987"},{"ref":"EIDb014a9a7-f35d-4c9e-bb3b-e5c0ea6ea36e"},{"ref":"EID3f748dca-f9ea-42bd-b3db-5d6e04c199bc"},{"ref":"EIDf100528b-3ed3-4469-a585-2d597227b4c6"},{"ref":"EID74bc7350-2bae-437b-8440-f9596d861835"},{"ref":"EID01b85349-e144-4fbf-9d45-5ace00c4c2a7"},{"ref":"EIDcf65d2f7-1460-4c82-8125-87fbd9baf47e"},{"ref":"EID8fe86b9b-6b03-44d6-939d-4c9ffc53a561"},{"ref":"EID6e764b42-4772-485a-a878-5cc1ffd7d049"},{"ref":"EIDb4db100f-0aa1-45be-9424-ed12a8a55ed3"},{"ref":"EID614e9f71-31d7-45c2-8da3-5f3b69c798fb"},{"ref":"EIDe16d8fae-a62b-4840-99b1-266845a89f6d"},{"ref":"EID3314f9d5-5682-4f37-b0f9-f53c13a012e2"},{"ref":"EID9e3b5bf9-ba71-4526-985a-e978d15ea5e4"},{"ref":"EID1888e2e2-eb3c-4ffa-ae34-1853ea9a4647"},{"ref":"EID7a2c8be2-6697-4682-9622-7cf362583c8c"},{"ref":"EIDdb77879e-fd5f-43cd-b884-27c12f302553"}]},"parent":{"ref":"EID6eece673-0175-1000-1cf0-4328ae6fdfb2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:17:00Z","duration":1188,"status":"SKIPPED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:17:00Z","duration":1604,"status":"SKIPPED"},{"id":"EID6eececb8-0175-1000-0429-94521a43ab60","testStepResults":{"TestStepResult":[{"id":"EID6eececb8-0175-1000-ecbe-b5314c19c2ad","parent":{"ref":"EID6eececb8-0175-1000-0429-94521a43ab60"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:17:02Z","duration":943,"status":"PASSED"},{"id":"EID6eececb8-0175-1000-43c9-a7d5f5022ad6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecef64-0175-1000-a65d-84ec3db1f18e","parent":{"ref":"EID6eececb8-0175-1000-43c9-a7d5f5022ad6"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecef64-0175-1000-e3c4-d8b59a05a168","parent":{"ref":"EID6eececb8-0175-1000-43c9-a7d5f5022ad6"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecef64-0175-1000-ece3-f4cca42e2d5f","parent":{"ref":"EID6eececb8-0175-1000-43c9-a7d5f5022ad6"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecef64-0175-1000-9949-f92daced1635","parent":{"ref":"EID6eececb8-0175-1000-43c9-a7d5f5022ad6"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID477ac333-f7c0-4f26-8275-648715a0d19a"},{"ref":"EID4ee82720-b9c4-4e1b-b850-1feb1bbeb531"},{"ref":"EID8e89d82d-cbbc-45fd-94f0-5a2ef962acfd"}]},"parent":{"ref":"EID6eececb8-0175-1000-0429-94521a43ab60"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:17:02Z","duration":542,"status":"PASSED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:17:02Z","duration":692,"status":"PASSED"},{"id":"EID6eecef75-0175-1000-c4f4-0dda26b11d34","testStepResults":{"TestStepResult":[{"id":"EID6eecef78-0175-1000-c0ec-5b961ab36452","parent":{"ref":"EID6eecef75-0175-1000-c4f4-0dda26b11d34"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:17:02Z","duration":943,"status":"PASSED"},{"id":"EID6eecef78-0175-1000-6461-899251e6e1d1","parent":{"ref":"EID6eecef75-0175-1000-c4f4-0dda26b11d34"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:17:02Z","duration":0,"status":"PASSED"},{"id":"EID6eecef78-0175-1000-7e3d-aef77acf1dca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf033-0175-1000-f26b-12ad9e775a4b","parent":{"ref":"EID6eecef78-0175-1000-7e3d-aef77acf1dca"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf033-0175-1000-a350-90e1383f1ae7","parent":{"ref":"EID6eecef78-0175-1000-7e3d-aef77acf1dca"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf033-0175-1000-557a-5d094e458eee","parent":{"ref":"EID6eecef78-0175-1000-7e3d-aef77acf1dca"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf033-0175-1000-20f1-e87b303a39af","parent":{"ref":"EID6eecef78-0175-1000-7e3d-aef77acf1dca"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd95988f3-6b72-49d4-8524-95d4f12cbfa5"},{"ref":"EID33db86e5-e9b7-48d9-ae07-ef892a9acd3f"},{"ref":"EIDd9351f00-69c2-45ee-b531-3244b8207687"}]},"parent":{"ref":"EID6eecef75-0175-1000-c4f4-0dda26b11d34"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:17:02Z","duration":105,"status":"PASSED"},{"id":"EID6eecf033-0175-1000-afb9-48db01806661","attachments":{"attachment":{"ref":"EID094ed6a1-a2ad-4fc9-bb09-96301ab958c5"}},"parent":{"ref":"EID6eecef75-0175-1000-c4f4-0dda26b11d34"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:17:03Z","duration":1,"status":"PASSED"},{"id":"EID6eecf042-0175-1000-b6b4-5edaba9d11b1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eecf052-0175-1000-35f9-852cae270908","parent":{"ref":"EID6eecf042-0175-1000-b6b4-5edaba9d11b1"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf052-0175-1000-9fca-8897f098a001","parent":{"ref":"EID6eecf042-0175-1000-b6b4-5edaba9d11b1"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"},{"id":"EID6eecf052-0175-1000-424f-6587c1e596a9","parent":{"ref":"EID6eecf042-0175-1000-b6b4-5edaba9d11b1"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID198288c9-c370-4c00-ae53-fce1adc84128"},{"ref":"EID6f0b2349-c191-4d5b-8a12-5ff1db9de762"}]},"parent":{"ref":"EID6eecef75-0175-1000-c4f4-0dda26b11d34"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:17:03Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eecdf41-0175-1000-2f92-d01ad38d73d3"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:17:02Z","duration":221,"status":"PASSED"}]},"parent":{"ref":"EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:16:58Z","duration":4369,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EID0f567600-4ac6-4aa2-98e0-81b3ca2b87a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa7cd5854-4bb7-4e28-80b8-4e2327a7c465","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDa7cd5854-4bb7-4e28-80b8-4e2327a7c465"}},{"type":"Message","id":"EIDed477390-636b-43c4-a9b2-1821729de7be","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDed477390-636b-43c4-a9b2-1821729de7be"}},{"type":"ServiceResponse","id":"EID8b3153c5-00b9-4dc0-8523-7174b39572b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID8b3153c5-00b9-4dc0-8523-7174b39572b2"}},{"type":"ServiceEndpoint","id":"EID03a4b02b-00df-4d37-8161-90cf03175ec9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDc002e2c0-cb4a-498a-af7f-47bad8225621","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID7f1d2290-976d-4bd9-8ead-bccf366781e8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDfce6119e-4a4d-4c47-b785-7a4a49fe4b71","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDfce6119e-4a4d-4c47-b785-7a4a49fe4b71"}},{"type":"ServiceResponse","id":"EID3d279737-8c89-434b-8e10-2513e0e85a26","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID3d279737-8c89-434b-8e10-2513e0e85a26"}},{"type":"GetParameter","id":"EID5a44a8d4-aad4-4bfe-8c02-ee610ff436e6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID2ed1e435-1852-47ca-aa64-426c6572bb98","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID2ed1e435-1852-47ca-aa64-426c6572bb98"}},{"type":"ServiceResponse","id":"EID4ee82720-b9c4-4e1b-b850-1feb1bbeb531","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4ee82720-b9c4-4e1b-b850-1feb1bbeb531"}},{"type":"ServiceResponse","id":"EID451a1f53-3184-4eaf-8086-08d22dbfab8d","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID451a1f53-3184-4eaf-8086-08d22dbfab8d"}},{"type":"Message","id":"EIDafb0a01b-02f0-4a7f-a295-27d125db44e2","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDafb0a01b-02f0-4a7f-a295-27d125db44e2"}},{"type":"Message","id":"EIDb4db100f-0aa1-45be-9424-ed12a8a55ed3","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDb4db100f-0aa1-45be-9424-ed12a8a55ed3"}},{"type":"Message","id":"EIDf4a626ee-09be-4f1d-9cb6-2e670bf02554","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf4a626ee-09be-4f1d-9cb6-2e670bf02554"}},{"type":"Message","id":"EID71188997-0c9e-4ca2-82f6-aaae5c3f8cf5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID71188997-0c9e-4ca2-82f6-aaae5c3f8cf5"}},{"type":"Message","id":"EIDc6b63487-a521-4151-926d-ec0898ee1837","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDc6b63487-a521-4151-926d-ec0898ee1837"}},{"type":"Message","id":"EID7a2c8be2-6697-4682-9622-7cf362583c8c","label":"Message.19","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID7a2c8be2-6697-4682-9622-7cf362583c8c"}},{"type":"ServiceEndpoint","id":"EID08898b82-bfde-4a05-924d-75300dd78782","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID926fd7da-021a-47cc-85e6-a922019c2545","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID98854801-1c72-4123-add6-ea7cc0592214","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID98854801-1c72-4123-add6-ea7cc0592214"}},{"type":"GetParameter","id":"EIDf71222aa-9cf9-4ee8-b47d-95e9d48617e2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1a912a9c-3318-47d7-bad7-b04b6eb573da","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID1a912a9c-3318-47d7-bad7-b04b6eb573da"}},{"type":"Message","id":"EIDf100528b-3ed3-4469-a585-2d597227b4c6","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf100528b-3ed3-4469-a585-2d597227b4c6"}},{"type":"ServiceEndpoint","id":"EIDbed02850-3b31-4f4f-b0e8-c50a9e560117","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EIDc531f561-9229-414b-9f9a-decd2522a125","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDc531f561-9229-414b-9f9a-decd2522a125"}},{"type":"Message","id":"EID9a47608d-fced-4180-8844-2c91f68393d9","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9a47608d-fced-4180-8844-2c91f68393d9"}},{"type":"ServiceEndpoint","id":"EID3792d798-2f60-41eb-b789-75706ba2e871","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5cedf569-7f16-4ea1-803b-f3b125e773f7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDdd2a69ed-1402-4b6c-ab27-f4d42ed7bf49","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID42e6c9ba-6d5f-4d7a-b299-a34a2cfd8fae","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID42e6c9ba-6d5f-4d7a-b299-a34a2cfd8fae"}},{"type":"ServiceResponse","id":"EIDe3cfd4e9-4a52-4057-b337-30d47d3530d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDe3cfd4e9-4a52-4057-b337-30d47d3530d5"}},{"type":"GetParameter","id":"EID90adb0f4-a2b1-4f46-8f0c-19086963edca","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID5414f3fa-6bf5-4061-9059-3f51a9e5b99d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID5414f3fa-6bf5-4061-9059-3f51a9e5b99d"}},{"type":"ServiceEndpoint","id":"EIDa114ef68-3469-4d54-b979-5ee3994915d0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID58cbd8d7-55f9-4573-8a1e-d452b8909330","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID632dc433-c8b4-4771-990c-5b90fb09a9c6","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID632dc433-c8b4-4771-990c-5b90fb09a9c6"}},{"type":"ServiceEndpoint","id":"EID2ac815b8-fba6-400e-9c13-f99bfaa08270","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2a5621d4-10c5-40db-868c-f27a02e77ed2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID2a5621d4-10c5-40db-868c-f27a02e77ed2"}},{"type":"Message","id":"EID4893f880-ae90-4e8c-93de-924c9d224760","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4893f880-ae90-4e8c-93de-924c9d224760"}},{"type":"ServiceEndpoint","id":"EID449b13d5-0151-44fd-98b4-725e879b5865","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID7daea2e7-9d5b-4bc5-a9cc-4ef42fa440fc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDab2c7bbc-34f3-46c0-bd9f-ce38172f87b4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDab2c7bbc-34f3-46c0-bd9f-ce38172f87b4"}},{"type":"ServiceEndpoint","id":"EIDa69e28c7-34e3-4508-947c-654d5a99f38a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID16290a24-8e08-45cf-931b-3e241b52ce51","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID16290a24-8e08-45cf-931b-3e241b52ce51"}},{"type":"ServiceEndpoint","id":"EID02c989f8-6aba-4144-9ca0-f926b299372d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID098f9e5e-190a-4669-a302-5b9ce68e97f7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID1444a3fc-cd1e-4808-b92d-f62748dd2774","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID1444a3fc-cd1e-4808-b92d-f62748dd2774"}},{"type":"ServiceResponse","id":"EID8c9dfe38-6235-412a-8f94-0a5708554049","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID8c9dfe38-6235-412a-8f94-0a5708554049"}},{"type":"ServiceResponse","id":"EIDc80e9955-7b64-4865-b2e2-8a5878cf3375","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDc80e9955-7b64-4865-b2e2-8a5878cf3375"}},{"type":"ServiceEndpoint","id":"EID9cb15dc0-e8ec-4e17-8552-e380ef39ee7e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDa280396c-9c1c-4c70-9758-a989a48f05f6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDa280396c-9c1c-4c70-9758-a989a48f05f6"}},{"type":"ServiceEndpoint","id":"EID89d8aea0-9f4f-4cd5-86fb-ee63ad230569","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID92cefac2-4136-49b5-995f-7ac2d66c6530","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID646c8691-14ce-416e-9ef9-3913c4b69fdd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID091e8590-5eca-4223-9a7f-7e35d4d854f0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID091e8590-5eca-4223-9a7f-7e35d4d854f0"}},{"type":"ServiceEndpoint","id":"EID7743101c-bbf0-42f8-bae7-61a8c4799712","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EIDb4d4ea2d-1f82-425f-9747-ace0ffcd3dfb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDb4d4ea2d-1f82-425f-9747-ace0ffcd3dfb"}},{"type":"Message","id":"EIDbaea6461-00f7-4f2d-8fea-823ac272efef","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDbaea6461-00f7-4f2d-8fea-823ac272efef"}},{"type":"GetParameter","id":"EID43e8bcf9-1461-4f7d-abf0-13b3206a543d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID30d06d29-1af5-4e3b-bded-32c452557eba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EIDcb33ea8b-529b-4b3e-8b5c-6b5e413962ea","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDcb33ea8b-529b-4b3e-8b5c-6b5e413962ea"}},{"type":"GetParameter","id":"EID27172037-a666-4df1-8063-979cafb12ade","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID874294dc-3ec3-4d7b-840e-796c5bb42cfa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9kb3dubG9hZA=="},{"type":"GetParameter","id":"EID3b282513-fbf3-425d-b77d-5c59f07d752d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID55b6024e-d4e4-4dc2-bd72-9f1608d1b087","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID9f6b46f6-8a61-4859-8b49-c54c3b96c8af","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9f6b46f6-8a61-4859-8b49-c54c3b96c8af"}},{"type":"GetParameter","id":"EID4ee9dfcb-538f-4510-afba-0b6f0e645d08","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EIDb487394c-2d57-4127-8b41-5f1d3d748a52","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID2b942eb8-0103-4259-8822-2771dba67ac5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDae474380-759d-44d7-808c-122daac315bd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDae474380-759d-44d7-808c-122daac315bd"}},{"type":"LogFile","id":"EID817de8fb-839b-4cfb-8b65-e4759a5a0d54","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID817de8fb-839b-4cfb-8b65-e4759a5a0d54"}},{"type":"GetParameter","id":"EID245ef0f2-0415-4c7e-a028-9db8302bb9fe","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID720bc672-1558-4026-944a-17847243815d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID5ff42549-ca05-4730-a026-a65dd123901b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9c7f4859-1abe-4c4d-b517-b03765541310","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID8e89d82d-cbbc-45fd-94f0-5a2ef962acfd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID2e9c56f3-132b-4e31-9ac9-93df5b0cee1c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID2e9c56f3-132b-4e31-9ac9-93df5b0cee1c"}},{"type":"ServiceEndpoint","id":"EID304022bf-6a0c-4c8a-a430-3c071cab3e07","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID8386be2f-43ff-4d6a-b92a-267a74cb3f00","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID8386be2f-43ff-4d6a-b92a-267a74cb3f00"}},{"type":"GetParameter","id":"EIDa804ba65-e8af-4d8f-8b79-1b3bacdbee9e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDff52db1b-00f6-44ae-8942-f2e293816c5f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDff52db1b-00f6-44ae-8942-f2e293816c5f"}},{"type":"ServiceResponse","id":"EID60b277e3-2357-43aa-94a8-52443eb6899e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID60b277e3-2357-43aa-94a8-52443eb6899e"}},{"type":"ServiceResponse","id":"EIDbe11d933-3e95-4139-813e-5363abcd3e75","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDbe11d933-3e95-4139-813e-5363abcd3e75"}},{"type":"ServiceEndpoint","id":"EID1cc71fc0-a8a5-4d1a-a718-0bd76c24ec4e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDafb8653f-5115-4f9a-b4d6-dbf0d9dec5ff","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDafb8653f-5115-4f9a-b4d6-dbf0d9dec5ff"}},{"type":"ServiceResponse","id":"EID901d2925-6765-483a-9d8b-238fca5496b8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID901d2925-6765-483a-9d8b-238fca5496b8"}},{"type":"ServiceEndpoint","id":"EID502ae46b-b713-40f5-93fb-2e183f58c21c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID47c55d8b-1e55-4cd4-98b5-f2c09e22c243","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID47c55d8b-1e55-4cd4-98b5-f2c09e22c243"}},{"type":"ServiceEndpoint","id":"EID3fb5d5a8-a0f7-4bfc-88ea-6a1c4b96be17","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EID09c87728-c8c6-4527-b62d-2756616b0e25","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EID4085b37c-4c2b-4a00-98d3-0af856f37fc2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4085b37c-4c2b-4a00-98d3-0af856f37fc2"}},{"type":"ServiceResponse","id":"EID46823a58-f9a8-4675-b039-8ca5ab753465","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID46823a58-f9a8-4675-b039-8ca5ab753465"}},{"type":"GetParameter","id":"EID6b9a60cc-001b-49bc-8bb3-3071aa2d6885","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID74bc7350-2bae-437b-8440-f9596d861835","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID74bc7350-2bae-437b-8440-f9596d861835"}},{"type":"Message","id":"EID0b55670d-2e08-4e92-a5a8-260ad063f830","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID0b55670d-2e08-4e92-a5a8-260ad063f830"}},{"type":"ServiceEndpoint","id":"EIDd30d0301-0040-4f2c-8451-59e5370aa6d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDaa492b95-9f25-4a63-98f0-15decfc01d31","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDaa492b95-9f25-4a63-98f0-15decfc01d31"}},{"type":"Message","id":"EID4fdbfa96-040a-4723-97c3-e36b81de63da","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4fdbfa96-040a-4723-97c3-e36b81de63da"}},{"type":"Message","id":"EID62a3eea2-93a8-4aa7-8399-1f72bdd50826","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID62a3eea2-93a8-4aa7-8399-1f72bdd50826"}},{"type":"ServiceEndpoint","id":"EID392977d8-9b34-4830-bec8-56af020ca3ba","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV92X2dwa2cuemlw"},{"type":"Message","id":"EIDe16d8fae-a62b-4840-99b1-266845a89f6d","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDe16d8fae-a62b-4840-99b1-266845a89f6d"}},{"type":"ServiceResponse","id":"EID6fa67810-c24a-44cc-8518-eff3a39cf00c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID6fa67810-c24a-44cc-8518-eff3a39cf00c"}},{"type":"ServiceEndpoint","id":"EIDbd2bd24e-756e-4924-a3a7-1f8f61efdb86","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID919e5a43-83fd-4ab3-a10a-79bc51d9ac8c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID919e5a43-83fd-4ab3-a10a-79bc51d9ac8c"}},{"type":"GetParameter","id":"EID5ffa2fdd-132e-4ac4-857e-f4fdaf168abc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDb2b0ae1c-5f81-40f0-a862-1bbf2e5788cb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDb2b0ae1c-5f81-40f0-a862-1bbf2e5788cb"}},{"type":"ServiceResponse","id":"EIDf777ad0d-5df5-406f-9b0e-caab97be222b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf777ad0d-5df5-406f-9b0e-caab97be222b"}},{"type":"ServiceEndpoint","id":"EID137b68e3-ea96-4377-992c-2104e735a40b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID601d5d0a-9c4a-4b3a-9054-36b9daa292d7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID91aa5ebe-42f2-4d45-86ec-6f8f4ea09884","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID1d0874df-ce32-4ed4-b775-9896bf1c2e55","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID1d0874df-ce32-4ed4-b775-9896bf1c2e55"}},{"type":"Message","id":"EID4f7ae49a-8537-4d08-915d-0d4213197de9","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4f7ae49a-8537-4d08-915d-0d4213197de9"}},{"type":"GetParameter","id":"EIDabf0c3d4-1cf3-4479-b8a5-f07911bf0e70","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID614e9f71-31d7-45c2-8da3-5f3b69c798fb","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID614e9f71-31d7-45c2-8da3-5f3b69c798fb"}},{"type":"ServiceResponse","id":"EID92d0335d-82b0-4fdf-a3a9-a4dfab87eac2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID92d0335d-82b0-4fdf-a3a9-a4dfab87eac2"}},{"type":"Message","id":"EID3f748dca-f9ea-42bd-b3db-5d6e04c199bc","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID3f748dca-f9ea-42bd-b3db-5d6e04c199bc"}},{"type":"ServiceResponse","id":"EID64da6c6c-cafa-4bcb-a10f-3b885e65c805","label":"Service Response","encoding":"UTF-8","mimeType":"application/zip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID64da6c6c-cafa-4bcb-a10f-3b885e65c805"}},{"type":"Message","id":"EIDb014a9a7-f35d-4c9e-bb3b-e5c0ea6ea36e","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDb014a9a7-f35d-4c9e-bb3b-e5c0ea6ea36e"}},{"type":"ServiceResponse","id":"EIDf55baa92-2080-4f76-b498-3b3cde6d9c22","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf55baa92-2080-4f76-b498-3b3cde6d9c22"}},{"type":"ServiceResponse","id":"EIDe2ce2a42-e4f9-44b3-afa4-9b42fcd47e43","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDe2ce2a42-e4f9-44b3-afa4-9b42fcd47e43"}},{"type":"ServiceResponse","id":"EID43e38242-c71a-4eb9-9dc8-58117f27ac84","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID43e38242-c71a-4eb9-9dc8-58117f27ac84"}},{"type":"Message","id":"EID9e3b5bf9-ba71-4526-985a-e978d15ea5e4","label":"Message.16","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9e3b5bf9-ba71-4526-985a-e978d15ea5e4"}},{"type":"GetParameter","id":"EID093d19f3-38a0-4d01-a217-f1fd0f92a164","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID68a17673-ae9e-40f3-b3f9-1cc6e6e21712","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID112bebb7-6327-4a75-8009-e711b32d965c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID112bebb7-6327-4a75-8009-e711b32d965c"}},{"type":"ServiceEndpoint","id":"EID4aacd3a0-2e8b-4774-8acc-db7651cc611f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID8fe86b9b-6b03-44d6-939d-4c9ffc53a561","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID8fe86b9b-6b03-44d6-939d-4c9ffc53a561"}},{"type":"Message","id":"EIDdb77879e-fd5f-43cd-b884-27c12f302553","label":"Message.20","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDdb77879e-fd5f-43cd-b884-27c12f302553"}},{"type":"GetParameter","id":"EIDef087dde-e1a1-4748-8d30-de7196912613","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9a81b34e-1b7c-4044-bd3d-f8b3c675a57d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDdce0ea97-0678-407e-909a-270d59dd10e6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDdce0ea97-0678-407e-909a-270d59dd10e6"}},{"type":"ServiceEndpoint","id":"EID6517a30e-0fee-4f39-a8dc-619a1b353200","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID48f84cbb-d596-4fa3-a153-0a7de1e57e82","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID48f84cbb-d596-4fa3-a153-0a7de1e57e82"}},{"type":"Message","id":"EID01b85349-e144-4fbf-9d45-5ace00c4c2a7","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID01b85349-e144-4fbf-9d45-5ace00c4c2a7"}},{"type":"GetParameter","id":"EIDa10cbd32-d90e-4dce-8f11-398f5532a680","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID243d363e-53d5-4cd8-af5a-40aa00ffe42d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID243d363e-53d5-4cd8-af5a-40aa00ffe42d"}},{"type":"Message","id":"EID9293dfe8-be0f-49b0-a571-298dca824011","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9293dfe8-be0f-49b0-a571-298dca824011"}},{"type":"ServiceResponse","id":"EID33db86e5-e9b7-48d9-ae07-ef892a9acd3f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID33db86e5-e9b7-48d9-ae07-ef892a9acd3f"}},{"type":"GetParameter","id":"EIDfa4365e4-7379-464d-a785-2e84ffa26802","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV9sX2dwa2cuemlw"},{"type":"Message","id":"EIDcf65d2f7-1460-4c82-8125-87fbd9baf47e","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDcf65d2f7-1460-4c82-8125-87fbd9baf47e"}},{"type":"Message","id":"EIDa0d645c4-e693-43e5-9613-e0d630cc8de7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDa0d645c4-e693-43e5-9613-e0d630cc8de7"}},{"type":"ServiceResponse","id":"EID88edc4f4-e7a3-402c-bffa-1302fc143b51","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID88edc4f4-e7a3-402c-bffa-1302fc143b51"}},{"type":"ServiceResponse","id":"EID23ed9cd3-0de2-49e5-8022-85309e5f33e9","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID23ed9cd3-0de2-49e5-8022-85309e5f33e9"}},{"type":"ServiceResponse","id":"EID22e69c4b-acc2-44cf-9d56-a0e1f7a3a78d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID22e69c4b-acc2-44cf-9d56-a0e1f7a3a78d"}},{"type":"GetParameter","id":"EID5f2cb4b0-c800-4080-9dea-4a37952781a2","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EID2611c062-b232-4141-a0ce-9e21e1f63ef7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID21a418e6-976a-4458-8fab-739aec474fee","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID21a418e6-976a-4458-8fab-739aec474fee"}},{"type":"ServiceEndpoint","id":"EID34d61036-244a-4639-ba84-2e9843eba3a7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID5d5c45f6-af56-48c2-9428-9fb741cc5e86","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID7145f7d0-6290-4a09-8433-0bcff314572f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID7145f7d0-6290-4a09-8433-0bcff314572f"}},{"type":"Message","id":"EID32909120-d172-4e22-ad11-9829d01d7987","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID32909120-d172-4e22-ad11-9829d01d7987"}},{"type":"GetParameter","id":"EIDcaf93f86-663f-466f-9672-d80e0efc7afb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID0709dc92-79fa-4e65-9242-2feec5370f62","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID813ced29-4ea9-48da-a60b-6beda427b8ad","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID813ced29-4ea9-48da-a60b-6beda427b8ad"}},{"type":"GetParameter","id":"EIDc1bb70d0-74a9-4d02-90d4-3b16e637e54d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID04856c5b-cc54-46b3-a9d6-3123bbc573a3","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID04856c5b-cc54-46b3-a9d6-3123bbc573a3"}},{"type":"GetParameter","id":"EID865e1549-4aab-4eb7-9fdc-a2b8945492d6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"GetParameter","id":"EIDa5d23045-e0f1-4f1d-89d9-7dc8cc56bbb3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd3da24fb-c559-465a-99f8-097a8a5acaa1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf003f494-a0a2-4ab4-b7a4-7510c78b341a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf003f494-a0a2-4ab4-b7a4-7510c78b341a"}},{"type":"GetParameter","id":"EIDab358153-b426-4a44-8fca-08d1a8b06bbc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EIDf41ba235-74e3-44a0-adac-ad92f9f0f6ac","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDf41ba235-74e3-44a0-adac-ad92f9f0f6ac"}},{"type":"ServiceEndpoint","id":"EID56ac64bd-841d-4ac5-9886-5d9f3bda2051","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EID1888e2e2-eb3c-4ffa-ae34-1853ea9a4647","label":"Message.18","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID1888e2e2-eb3c-4ffa-ae34-1853ea9a4647"}},{"type":"GetParameter","id":"EID97d61db2-e4f2-465c-aedd-88279afafbfd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID3314f9d5-5682-4f37-b0f9-f53c13a012e2","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID3314f9d5-5682-4f37-b0f9-f53c13a012e2"}},{"type":"GetParameter","id":"EID34045dae-fb7d-46a5-87de-f2eb9cbb82af","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID198288c9-c370-4c00-ae53-fce1adc84128","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"Message","id":"EID14b40385-8648-4b9a-8113-0dc59834653f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID14b40385-8648-4b9a-8113-0dc59834653f"}},{"type":"ServiceEndpoint","id":"EIDd95988f3-6b72-49d4-8524-95d4f12cbfa5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID5bf0b9c6-c3a2-40d3-9e8b-a9cde1d7194b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EIDe6788715-6b36-420e-8de1-235a4a00bc07","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDe6788715-6b36-420e-8de1-235a4a00bc07"}},{"type":"ServiceEndpoint","id":"EID7ab33628-58d1-4157-b0d6-8356a88b19a3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDfae7e492-6098-4f26-8ffb-088e3a6cc7a2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDfae7e492-6098-4f26-8ffb-088e3a6cc7a2"}},{"type":"Message","id":"EID4e4fd03d-4bd6-4c6a-917f-9665076a4d93","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4e4fd03d-4bd6-4c6a-917f-9665076a4d93"}},{"type":"GetParameter","id":"EID005f4fed-cee4-4c83-907a-12a867c96f84","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID477ac333-f7c0-4f26-8275-648715a0d19a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID04a560b1-b676-4a43-8b96-e08f2b6dc3d7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EIDa1c5c0ad-635e-4739-9424-69a51e8ab155","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf183877f-ea7a-47f1-899a-f3913f482e44","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceResponse","id":"EIDdc47b342-c590-4916-8883-12ca594f6ba2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDdc47b342-c590-4916-8883-12ca594f6ba2"}},{"type":"Message","id":"EID094ed6a1-a2ad-4fc9-bb09-96301ab958c5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID094ed6a1-a2ad-4fc9-bb09-96301ab958c5"}},{"type":"ServiceResponse","id":"EID4ecd9388-88b7-4353-bb4e-a2b378eb4f14","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID4ecd9388-88b7-4353-bb4e-a2b378eb4f14"}},{"type":"GetParameter","id":"EID5d91bdfa-4274-4dcc-ab1e-c7993118e584","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EIDe2176ecf-53e7-4ff3-8d5f-7f4644d238d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID1285a138-74f5-47cf-a847-a8b803a0a98f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"Message","id":"EIDe00f6e6c-8de5-4b11-877d-ee343bcc1996","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDe00f6e6c-8de5-4b11-877d-ee343bcc1996"}},{"type":"GetParameter","id":"EID99f03d28-cbc3-488e-9b9e-c57d13d1c40e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDab61a611-e083-4425-9b85-b1a8e625555a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDab61a611-e083-4425-9b85-b1a8e625555a"}},{"type":"GetParameter","id":"EIDe5855c6a-92e9-460f-9881-0648a22dc0df","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDd9351f00-69c2-45ee-b531-3244b8207687","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID649fb28a-33c0-4ab1-8cd8-920672407d0e","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID649fb28a-33c0-4ab1-8cd8-920672407d0e"}},{"type":"ServiceEndpoint","id":"EIDf1669a6f-a8ae-495c-8482-8773b6e0779e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID19e5992d-0bca-4219-9304-de96621b32cc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID19e5992d-0bca-4219-9304-de96621b32cc"}},{"type":"GetParameter","id":"EID6f0b2349-c191-4d5b-8a12-5ff1db9de762","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EID9892c7bf-d4fa-4f3a-a814-87a6c45ead7a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvZG93bmxvYWRzL2tyd19vcHBlcnZsYWt0ZXdhdGVybGljaGFtZW5fbmxkX2V1MjAwOV92X2dwa2cuemlw"},{"type":"Message","id":"EID6e764b42-4772-485a-a878-5cc1ffd7d049","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID6e764b42-4772-485a-a878-5cc1ffd7d049"}},{"type":"Message","id":"EIDed2a420e-d656-411f-a651-8c5f57acf047","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EIDed2a420e-d656-411f-a651-8c5f57acf047"}},{"type":"Message","id":"EID802e06d6-4c5c-43a2-a7cf-94dc387e96d0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID802e06d6-4c5c-43a2-a7cf-94dc387e96d0"}},{"type":"GetParameter","id":"EID26d15417-036b-42b0-9845-adbe9e837bfa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"Message","id":"EID9269fcc9-2bc9-4f8b-b583-02ef84364beb","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9269fcc9-2bc9-4f8b-b583-02ef84364beb"}},{"type":"Message","id":"EID6398b249-43fd-443b-bde9-a4b344f59b2a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID6398b249-43fd-443b-bde9-a4b344f59b2a"}},{"type":"Message","id":"EID9dc311a7-cd60-4b1c-9b0d-d652c37d7808","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID7e3ef858-31b3-4bba-b3f0-d02dd7f48bfe/Attachments/EID9dc311a7-cd60-4b1c-9b0d-d652c37d7808"}},{"type":"GetParameter","id":"EID9a20d74d-d81f-448b-9b52-cfddce216669","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC9lOTE3MTliMS1hMTM5LTQyY2YtOGExYS1kYjc4Y2Q3NDc3ZjgvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDa9b23f74-86cb-4e38-b4aa-b4b35d585a93","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDbf9045fc-d46e-427c-a1ce-339cb41b1a00","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID35c0e803-b98d-4d6b-8fbf-071af1c62acb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAva3J3X29wcGVydmxha3Rld2F0ZXJsaWNoYW1lbl9ubGRfZXUyMDA5X3YueG1s"},{"type":"ServiceEndpoint","id":"EID65c89e05-c6f2-4a0e-85c6-e06ca492dad5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb4b3636b-7d2d-4307-856a-cbca46b727c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J3cy9rYWRlcnJpY2h0bGlqbndhdGVyMjAwOS9hdG9tL3YxXzAvaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:16:44Z","duration":18261,"status":"FAILED"}}}}}
11:17:15.225 [print] EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5
11:17:15.225 [print] FAILED
11:17:15.225 [print] FAILED
11:17:15.225 [print] Conformance Class Download Service - Pre-defined Atom
11:17:15.225 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5.json
11:17:15.225 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5.json
11:17:15.225 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID51543eec-6f5a-4bc1-ad2c-8a5bf690e7e5/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:17:15.232 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
11:17:15.232 [print] [ "TR.missingLinkToMetadataRecordForDownloadService" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:40.827 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs?"}}}
11:10:40.828 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 257
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-cte/wfs?"}}}
11:10:43.459 response time in milliseconds: 2526.42
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:43 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883443273","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:43.461 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:16.073 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:10:16.074 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:10:17.282 response time in milliseconds: 1206.63
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:17 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883417218","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:17.283 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:13.940 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/au/wfs?request=GetCapabilities
11:15:13.941 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/au/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:14.357 response time in milliseconds: 415.97 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:14 GMT 1 < ETag: "18765-5af58a64cc00f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:14.364 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/au/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:14.765 response time in milliseconds: 401.34 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:14 GMT 1 < ETag: "18765-5af58a64cc00f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:14.766 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:06:05.113 [print] testing url:https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebiedtypen/wfs?request=GetCapabilities
11:06:05.114 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebiedtypen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:05.521 response time in milliseconds: 406.72 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:06:05.526 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingsgebiedtypen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:06.002 response time in milliseconds: 476.21 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:06:06.003 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:15:59.775 [print] testing url:https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml
11:15:59.775 request: 1 > HEAD https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:00.143 response time in milliseconds: 367.72 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3316 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:00 GMT 1 < Etag: "3947748438" 1 < Last-Modified: Tue, 27 Oct 2020 19:15:16 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:16:00.148 request: 1 > HEAD https://service.pdok.nl/kadaster/cp/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: service.pdok.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:00.510 response time in milliseconds: 362.25 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: Content-Type 1 < Access-Control-Allow-Method: GET,OPTIONS,HEAD 1 < Access-Control-Allow-Origin: * 1 < Content-Length: 3316 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:16:00 GMT 1 < Etag: "3947748438" 1 < Last-Modified: Tue, 27 Oct 2020 19:15:16 GMT 1 < Server: PDOK ATOM SERVER 1 < Strict-Transport-Security: max-age=3600; includeSubDomains; preload
11:13:24.740 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:13:24.744 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:25.140 response time in milliseconds: 396.44 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:24 GMT 1 < X-Cnection: [close, close]
11:13:25.145 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:25.554 response time in milliseconds: 408.12 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:25 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:04:44.242 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:04:44.245 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:04:49.864 response time in milliseconds: 4842.85
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:04:49 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:04:47 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/ccccbbb9-d6ca-4f82-b144-0cafe77ceb89.json","testRuns":{"TestRun":{"id":"EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:04:46.958Z","testTasks":{"TestTask":{"id":"EIDc15fdccb-250c-4144-be65-a85fba8c9483","parent":{"ref":"EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID99845b30-ee48-4029-be20-168de906f849"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID99845b30-ee48-4029-be20-168de906f849","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:04:44.697Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:04:46.499Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:04:49.872 [print] EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89
11:04:49.873 [print] UNDEFINED
11:04:49.874 [print] Conformance Class Download Service - Pre-defined Atom
11:04:49.875 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/ccccbbb9-d6ca-4f82-b144-0cafe77ceb89.json
11:04:49.876 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/log
11:04:49.877 [print] statuspath TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89
11:04:49.880 [print] progresspath TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
11:04:49.881 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:50.399 response time in milliseconds: 516.30
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:04:50 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized"]}
11:04:50.399 [print] {
"val": "12",
"max": "13",
"log": [
"28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)",
"28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:04:46 - Preparing 1 Test Task:",
"28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)",
"28.10.2020 11:04:46 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:04:46 - with parameters: ",
"28.10.2020 11:04:46 - etf.testcases = *",
"28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:04:47 - Setting state to CREATED",
"28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z",
"28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:04:49 - Project Properties: ",
"28.10.2020 11:04:49 - etf.testcases - * ",
"28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:04:49 - username - ",
"28.10.2020 11:04:49 - authUser - ",
"28.10.2020 11:04:49 - authMethod - basic ",
"28.10.2020 11:04:49 - TestRunTask initialized"
]
}
11:04:50.401 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:50.920 response time in milliseconds: 518.21
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:04:50 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"12","max":"13","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized"]}
11:04:50.921 retry condition not satisfied: response.val == response.max
11:04:50.921 sleeping before retry #1
11:04:55.922 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:04:56.435 response time in milliseconds: 511.70
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:04:56 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"41","max":"42","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized"]}
11:04:56.436 retry condition not satisfied: response.val == response.max
11:04:56.436 sleeping before retry #2
11:05:01.437 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:01.965 response time in milliseconds: 524.00
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:05:01 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"58","max":"59","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:05:01.965 retry condition not satisfied: response.val == response.max
11:05:01.965 sleeping before retry #3
11:05:06.967 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:07.490 response time in milliseconds: 522.61
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:05:07 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"78","max":"79","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:05:07.491 retry condition not satisfied: response.val == response.max
11:05:07.491 sleeping before retry #4
11:05:12.492 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:13.021 response time in milliseconds: 527.15
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:05:12 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"160","max":"161","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:13.021 retry condition not satisfied: response.val == response.max
11:05:13.021 sleeping before retry #5
11:05:18.023 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:18.536 response time in milliseconds: 512.61
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:05:18 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:18.537 retry condition not satisfied: response.val == response.max
11:05:18.537 sleeping before retry #6
11:05:23.538 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:24.079 response time in milliseconds: 534.27
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:05:24 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:24.079 retry condition not satisfied: response.val == response.max
11:05:24.080 sleeping before retry #7
11:05:29.081 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:29.595 response time in milliseconds: 513.55
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:05:29 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:29.596 retry condition not satisfied: response.val == response.max
11:05:29.596 sleeping before retry #8
11:05:34.597 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:35.110 response time in milliseconds: 511.62
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:05:35 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:35.111 retry condition not satisfied: response.val == response.max
11:05:35.111 sleeping before retry #9
11:05:40.113 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:40.635 response time in milliseconds: 521.72
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:05:40 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:40.636 retry condition not satisfied: response.val == response.max
11:05:40.636 sleeping before retry #10
11:05:45.637 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:46.375 response time in milliseconds: 736.45
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:05:46 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:46.375 retry condition not satisfied: response.val == response.max
11:05:46.375 sleeping before retry #11
11:05:51.377 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:51.929 response time in milliseconds: 549.60
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:05:51 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:05:51.929 retry condition not satisfied: response.val == response.max
11:05:51.929 sleeping before retry #12
11:05:56.931 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:05:57.481 response time in milliseconds: 545.87
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:05:57 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:05:57.481 retry condition not satisfied: response.val == response.max
11:05:57.481 sleeping before retry #13
11:06:02.483 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:03.011 response time in milliseconds: 527.23
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:06:02 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:03.019 retry condition not satisfied: response.val == response.max
11:06:03.019 sleeping before retry #14
11:06:08.021 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:08.525 response time in milliseconds: 503.72
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:06:08 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:08.526 retry condition not satisfied: response.val == response.max
11:06:08.526 sleeping before retry #15
11:06:13.526 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:14.040 response time in milliseconds: 513.19
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:06:13 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:14.041 retry condition not satisfied: response.val == response.max
11:06:14.041 sleeping before retry #16
11:06:19.042 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:19.556 response time in milliseconds: 512.89
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:06:19 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:19.557 retry condition not satisfied: response.val == response.max
11:06:19.557 sleeping before retry #17
11:06:24.558 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:25.088 response time in milliseconds: 526.84
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:06:25 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:25.090 retry condition not satisfied: response.val == response.max
11:06:25.090 sleeping before retry #18
11:06:30.092 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:32.101 response time in milliseconds: 2007.29
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:06:32 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:06:32.106 retry condition not satisfied: response.val == response.max
11:06:32.106 sleeping before retry #19
11:06:37.107 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDccccbbb9-d6ca-4f82-b144-0cafe77ceb89/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:06:37.725 response time in milliseconds: 614.12
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:06:37 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:04:46 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:04:46 UTC 2020)","28.10.2020 11:04:46 - Resolving Executable Test Suite dependencies","28.10.2020 11:04:46 - Preparing 1 Test Task:","28.10.2020 11:04:46 - TestTask 1 (c15fdccb-250c-4144-be65-a85fba8c9483)","28.10.2020 11:04:46 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:04:46 - with parameters: ","28.10.2020 11:04:46 - etf.testcases = *","28.10.2020 11:04:47 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:04:47 - Setting state to CREATED","28.10.2020 11:04:47 - Changed state from CREATED to INITIALIZING","28.10.2020 11:04:47 - Starting TestRun.ccccbbb9-d6ca-4f82-b144-0cafe77ceb89 at 2020-10-28T11:04:48Z","28.10.2020 11:04:48 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:04:49 - Project Properties: ","28.10.2020 11:04:49 - etf.testcases - * ","28.10.2020 11:04:49 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:04:49 - username - ","28.10.2020 11:04:49 - authUser - ","28.10.2020 11:04:49 - authMethod - basic ","28.10.2020 11:04:49 - TestRunTask initialized","28.10.2020 11:05:01 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:05:08 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:05:55 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:05:57 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:06:36 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:06:37.725 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:32.327 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/mosselenoesterhabitats/wfs?request=GetCapabilities"}}}
11:16:32.331 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 289
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/mosselenoesterhabitats/wfs?request=GetCapabilities"}}}
11:16:35.006 response time in milliseconds: 2571.47
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:34 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883794843","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:16:35.007 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:09.245 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/cbsvierkanten500mv2/wfs?request=GetCapabilities"}}}
11:12:09.246 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 286
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/cbsvierkanten500mv2/wfs?request=GetCapabilities"}}}
11:12:13.399 response time in milliseconds: 4047.79
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:13 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883533230","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:12:13.399 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:06:41.809 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/ps-natura2000/wfs?request=GetCapabilities
11:06:41.810 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-natura2000/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:42.215 response time in milliseconds: 403.96 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:42 GMT 1 < ETag: "25c56-5af58ad50ef9f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:06:42.221 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-natura2000/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:42.614 response time in milliseconds: 392.77 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:42 GMT 1 < ETag: "25c56-5af58ad50ef9f-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:06:42.615 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:14:06.934 [print] testing url:https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wfs?request=GetCapabilities
11:14:06.934 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:07.384 response time in milliseconds: 449.40 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:06 GMT 1 < X-Cnection: [close, close]
11:14:07.389 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:07.795 response time in milliseconds: 405.64 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:14:07 GMT 1 < X-Cnection: [close, close]
11:14:07.795 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:14:27.977 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:14:27.978 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:28.367 response time in milliseconds: 388.78 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:28 GMT 1 < X-Cnection: [close, close]
11:14:28.373 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:28.757 response time in milliseconds: 384.00 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:28 GMT 1 < X-Cnection: [close, close]
11:14:28.759 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:39.160 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml"}}}
11:13:39.160 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 258
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml"}}}
11:14:01.345 response time in milliseconds: 21434.18
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:00 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:13:58 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/4bd38577-95aa-4e2d-989c-a3abaea72003.json","testRuns":{"TestRun":{"id":"EID4bd38577-95aa-4e2d-989c-a3abaea72003","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:13:55.279Z","testTasks":{"TestTask":{"id":"EIDc32f1d21-cc73-4535-8e05-74c6f287accf","parent":{"ref":"EID4bd38577-95aa-4e2d-989c-a3abaea72003"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID65debf6d-9cc5-43e6-ad78-30d7a5259fda"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID65debf6d-9cc5-43e6-ad78-30d7a5259fda","remoteResource":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:13:39.602Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:13:51.346Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:01.354 [print] EID4bd38577-95aa-4e2d-989c-a3abaea72003
11:14:01.354 [print] UNDEFINED
11:14:01.354 [print] Conformance Class Download Service - Pre-defined Atom
11:14:01.354 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4bd38577-95aa-4e2d-989c-a3abaea72003.json
11:14:01.354 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/log
11:14:01.355 [print] statuspath TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003
11:14:01.355 [print] progresspath TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
11:14:01.355 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:01.867 response time in milliseconds: 511.30
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:01 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"0","max":"240","log":["28.10.2020 11:13:55 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:55 UTC 2020)","28.10.2020 11:13:55 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:55 - Preparing 1 Test Task:","28.10.2020 11:13:55 - TestTask 1 (c32f1d21-cc73-4535-8e05-74c6f287accf)","28.10.2020 11:13:55 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:55 - with parameters: ","28.10.2020 11:13:55 - etf.testcases = *","28.10.2020 11:13:55 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:55 - Setting state to CREATED","28.10.2020 11:13:55 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:00 - Starting TestRun.4bd38577-95aa-4e2d-989c-a3abaea72003 at 2020-10-28T11:14:01Z","28.10.2020 11:14:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:01 - Project Properties: ","28.10.2020 11:14:01 - etf.testcases - * ","28.10.2020 11:14:01 - serviceEndpoint - https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml ","28.10.2020 11:14:01 - username - ","28.10.2020 11:14:01 - authUser - ","28.10.2020 11:14:01 - authMethod - basic ","28.10.2020 11:14:01 - TestRunTask initialized"]}
11:14:01.867 [print] {
"val": "0",
"max": "240",
"log": [
"28.10.2020 11:13:55 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:55 UTC 2020)",
"28.10.2020 11:13:55 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:13:55 - Preparing 1 Test Task:",
"28.10.2020 11:13:55 - TestTask 1 (c32f1d21-cc73-4535-8e05-74c6f287accf)",
"28.10.2020 11:13:55 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:13:55 - with parameters: ",
"28.10.2020 11:13:55 - etf.testcases = *",
"28.10.2020 11:13:55 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:13:55 - Setting state to CREATED",
"28.10.2020 11:13:55 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:00 - Starting TestRun.4bd38577-95aa-4e2d-989c-a3abaea72003 at 2020-10-28T11:14:01Z",
"28.10.2020 11:14:01 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:01 - Project Properties: ",
"28.10.2020 11:14:01 - etf.testcases - * ",
"28.10.2020 11:14:01 - serviceEndpoint - https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml ",
"28.10.2020 11:14:01 - username - ",
"28.10.2020 11:14:01 - authUser - ",
"28.10.2020 11:14:01 - authMethod - basic ",
"28.10.2020 11:14:01 - TestRunTask initialized"
]
}
11:14:01.868 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:02.386 response time in milliseconds: 517.92
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:02 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:13:55 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:55 UTC 2020)","28.10.2020 11:13:55 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:55 - Preparing 1 Test Task:","28.10.2020 11:13:55 - TestTask 1 (c32f1d21-cc73-4535-8e05-74c6f287accf)","28.10.2020 11:13:55 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:55 - with parameters: ","28.10.2020 11:13:55 - etf.testcases = *","28.10.2020 11:13:55 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:55 - Setting state to CREATED","28.10.2020 11:13:55 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:00 - Starting TestRun.4bd38577-95aa-4e2d-989c-a3abaea72003 at 2020-10-28T11:14:01Z","28.10.2020 11:14:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:01 - Project Properties: ","28.10.2020 11:14:01 - etf.testcases - * ","28.10.2020 11:14:01 - serviceEndpoint - https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml ","28.10.2020 11:14:01 - username - ","28.10.2020 11:14:01 - authUser - ","28.10.2020 11:14:01 - authMethod - basic ","28.10.2020 11:14:01 - TestRunTask initialized"]}
11:14:02.387 retry condition not satisfied: response.val == response.max
11:14:02.387 sleeping before retry #1
11:14:07.387 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:07.914 response time in milliseconds: 526.08
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:07 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"127","max":"128","log":["28.10.2020 11:13:55 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:55 UTC 2020)","28.10.2020 11:13:55 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:55 - Preparing 1 Test Task:","28.10.2020 11:13:55 - TestTask 1 (c32f1d21-cc73-4535-8e05-74c6f287accf)","28.10.2020 11:13:55 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:55 - with parameters: ","28.10.2020 11:13:55 - etf.testcases = *","28.10.2020 11:13:55 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:55 - Setting state to CREATED","28.10.2020 11:13:55 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:00 - Starting TestRun.4bd38577-95aa-4e2d-989c-a3abaea72003 at 2020-10-28T11:14:01Z","28.10.2020 11:14:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:01 - Project Properties: ","28.10.2020 11:14:01 - etf.testcases - * ","28.10.2020 11:14:01 - serviceEndpoint - https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml ","28.10.2020 11:14:01 - username - ","28.10.2020 11:14:01 - authUser - ","28.10.2020 11:14:01 - authMethod - basic ","28.10.2020 11:14:01 - TestRunTask initialized"]}
11:14:07.914 retry condition not satisfied: response.val == response.max
11:14:07.914 sleeping before retry #2
11:14:12.915 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:13.424 response time in milliseconds: 508.28
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:14:13 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"203","max":"204","log":["28.10.2020 11:13:55 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:13:55 UTC 2020)","28.10.2020 11:13:55 - Resolving Executable Test Suite dependencies","28.10.2020 11:13:55 - Preparing 1 Test Task:","28.10.2020 11:13:55 - TestTask 1 (c32f1d21-cc73-4535-8e05-74c6f287accf)","28.10.2020 11:13:55 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:13:55 - with parameters: ","28.10.2020 11:13:55 - etf.testcases = *","28.10.2020 11:13:55 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:13:55 - Setting state to CREATED","28.10.2020 11:13:55 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:00 - Starting TestRun.4bd38577-95aa-4e2d-989c-a3abaea72003 at 2020-10-28T11:14:01Z","28.10.2020 11:14:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:01 - Project Properties: ","28.10.2020 11:14:01 - etf.testcases - * ","28.10.2020 11:14:01 - serviceEndpoint - https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml ","28.10.2020 11:14:01 - username - ","28.10.2020 11:14:01 - authUser - ","28.10.2020 11:14:01 - authMethod - basic ","28.10.2020 11:14:01 - TestRunTask initialized","28.10.2020 11:14:08 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:14:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:10 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:11 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:14:13.424 retry condition not satisfied: response.val == response.max
11:14:13.424 sleeping before retry #3
11:14:18.425 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:20.431 response time in milliseconds: 2005.02
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:14:20 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:14:20.433 retry condition satisfied
11:14:20.433 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:14:20.434 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:24.148 response time in milliseconds: 2644.67
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:14:23 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:14:19 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/4bd38577-95aa-4e2d-989c-a3abaea72003.json","testRuns":{"TestRun":{"id":"EID4bd38577-95aa-4e2d-989c-a3abaea72003","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:13:55.279Z","testTasks":{"TestTask":{"id":"EIDc32f1d21-cc73-4535-8e05-74c6f287accf","parent":{"ref":"EID4bd38577-95aa-4e2d-989c-a3abaea72003"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID65debf6d-9cc5-43e6-ad78-30d7a5259fda"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID65debf6d-9cc5-43e6-ad78-30d7a5259fda","remoteResource":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:13:39.602Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:13:51.346Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://service.pdok.nl/hwh/hydrografie/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7","testObject":{"ref":"EID65debf6d-9cc5-43e6-ad78-30d7a5259fda"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eea2b40-0175-1000-1da3-3690af33258f","testCaseResults":{"TestCaseResult":[{"id":"EID6eea2b40-0175-1000-1235-c29262ab6168","testStepResults":{"TestStepResult":[{"id":"EID6eea2b41-0175-1000-8552-905c0b236d6d","parent":{"ref":"EID6eea2b40-0175-1000-1235-c29262ab6168"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:14:01Z","duration":18,"status":"PASSED"},{"id":"EID6eea2b54-0175-1000-4b23-6334fd7a1d46","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea2bd4-0175-1000-c290-c1f027f1d13a","parent":{"ref":"EID6eea2b54-0175-1000-4b23-6334fd7a1d46"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2bd4-0175-1000-f8fc-609a8da132e8","parent":{"ref":"EID6eea2b54-0175-1000-4b23-6334fd7a1d46"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2bd4-0175-1000-1263-5aff6aac0752","parent":{"ref":"EID6eea2b54-0175-1000-4b23-6334fd7a1d46"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2bd4-0175-1000-3f1d-152db2c195d1","parent":{"ref":"EID6eea2b54-0175-1000-4b23-6334fd7a1d46"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDff8fda02-2d27-46a7-a02c-ec28a27222ab"},{"ref":"EIDab9e16f7-1bde-4b2e-9afc-dfd409f053f0"},{"ref":"EID09d95701-367b-4786-831c-c8ed3564295a"}]},"parent":{"ref":"EID6eea2b40-0175-1000-1235-c29262ab6168"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:14:01Z","duration":60,"status":"PASSED"}]},"parent":{"ref":"EID6eea2b40-0175-1000-1da3-3690af33258f"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:14:01Z","duration":148,"status":"PASSED"},{"id":"EID6eea2bd4-0175-1000-f137-0cb69c568fe7","testStepResults":{"TestStepResult":{"id":"EID6eea2bd4-0175-1000-e975-7c359d2f4c12","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea2c23-0175-1000-1106-3c57d87a1604","parent":{"ref":"EID6eea2bd4-0175-1000-e975-7c359d2f4c12"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c23-0175-1000-eb95-188e9d3860f0","parent":{"ref":"EID6eea2bd4-0175-1000-e975-7c359d2f4c12"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c23-0175-1000-ffbd-ab0764375ccf","parent":{"ref":"EID6eea2bd4-0175-1000-e975-7c359d2f4c12"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID86148f55-09da-48c5-8cf6-802a364b8ab2"},{"ref":"EID7dd80eaf-aaa7-4ed4-8c21-8bf5a34abb32"},{"ref":"EIDbd9dddb5-c8b0-456a-ae0d-818529ee2163"}]},"parent":{"ref":"EID6eea2bd4-0175-1000-f137-0cb69c568fe7"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:14:01Z","duration":26,"status":"PASSED"}},"parent":{"ref":"EID6eea2b40-0175-1000-1da3-3690af33258f"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:14:01Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:14:01Z","duration":229,"status":"PASSED"},{"id":"EID6eea2c26-0175-1000-8e02-129beb15ddc4","testCaseResults":{"TestCaseResult":[{"id":"EID6eea2c26-0175-1000-f2a3-46e1bf563d0e","testStepResults":{"TestStepResult":[{"id":"EID6eea2c26-0175-1000-570f-c17b1d78ed22","parent":{"ref":"EID6eea2c26-0175-1000-f2a3-46e1bf563d0e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:14:01Z","duration":26,"status":"PASSED"},{"id":"EID6eea2c26-0175-1000-ab30-7953450876eb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea2c8c-0175-1000-def8-13792f248c3d","parent":{"ref":"EID6eea2c26-0175-1000-ab30-7953450876eb"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c8c-0175-1000-2f12-86a94e615bfb","parent":{"ref":"EID6eea2c26-0175-1000-ab30-7953450876eb"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c8c-0175-1000-333e-89c7e0266e8a","parent":{"ref":"EID6eea2c26-0175-1000-ab30-7953450876eb"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c8c-0175-1000-5d18-d2e3f90f957c","parent":{"ref":"EID6eea2c26-0175-1000-ab30-7953450876eb"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"},{"id":"EID6eea2c8c-0175-1000-1a9a-bb6ea347f7a2","parent":{"ref":"EID6eea2c26-0175-1000-ab30-7953450876eb"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:14:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDccfc3a00-a99e-4ffe-a2db-9601290cc44a"},{"ref":"EIDa4fc3297-f459-4204-a15b-5753e70282c7"},{"ref":"EID69abd9c3-6111-485b-ad78-23453fb9e9c8"}]},"parent":{"ref":"EID6eea2c26-0175-1000-f2a3-46e1bf563d0e"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:14:01Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:14:01Z","duration":103,"status":"PASSED"},{"id":"EID6eea2c8d-0175-1000-9d02-1fcef9f68ade","testStepResults":{"TestStepResult":[{"id":"EID6eea2c8d-0175-1000-8c13-93813e7a6f6c","attachments":{"attachment":[{"ref":"EIDc87c50df-fb57-476e-9542-9956cd24c6eb"},{"ref":"EID14c4fb38-68bb-47d6-a3af-fccb693bae5b"}]},"parent":{"ref":"EID6eea2c8d-0175-1000-9d02-1fcef9f68ade"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:14:01Z","duration":87,"status":"PASSED"},{"id":"EID6eea2d13-0175-1000-ad97-185381192c84","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea2da4-0175-1000-90d3-be914b8fd47b","parent":{"ref":"EID6eea2d13-0175-1000-ad97-185381192c84"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2da4-0175-1000-2c91-bd0b732026cb","parent":{"ref":"EID6eea2d13-0175-1000-ad97-185381192c84"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2da4-0175-1000-d3d2-fb63ffc3f0b4","parent":{"ref":"EID6eea2d13-0175-1000-ad97-185381192c84"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2da4-0175-1000-f3b6-8612a8e1c14a","parent":{"ref":"EID6eea2d13-0175-1000-ad97-185381192c84"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID89ce5c1e-96ba-4095-8c31-459d06d49fc6"},{"ref":"EIDbece2d7b-2681-450a-8c11-e6d799478f71"},{"ref":"EID1b969492-771f-4e19-8ec8-2bb0f371abcc"}]},"parent":{"ref":"EID6eea2c8d-0175-1000-9d02-1fcef9f68ade"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:14:02Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:14:01Z","duration":288,"status":"PASSED"},{"id":"EID6eea2dad-0175-1000-8bf7-42e812af9433","testStepResults":{"TestStepResult":[{"id":"EID6eea2dad-0175-1000-f77d-4e248ef1ee5b","attachments":{"attachment":[{"ref":"EID9dcb58e4-2735-4b63-9631-dbd467c93a71"},{"ref":"EID5bd322f5-9441-44d0-9268-5ec3c5c56e3f"}]},"parent":{"ref":"EID6eea2dad-0175-1000-8bf7-42e812af9433"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:14:02Z","duration":175,"status":"PASSED"},{"id":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea2f04-0175-1000-72f5-5ae63aa54eda","parent":{"ref":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2f04-0175-1000-bf1c-aaf239bb9d9b","parent":{"ref":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2f04-0175-1000-eb71-167aaf5a2e2c","parent":{"ref":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2f04-0175-1000-3ea3-dd2945c47c4f","parent":{"ref":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2f04-0175-1000-da3b-4e61ba86ba83","parent":{"ref":"EID6eea2e9c-0175-1000-a00b-fb65727a1a6e"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6a968ff0-78c6-4fd3-9d86-0b104183ad9f"},{"ref":"EIDfb914a2c-0185-4740-8b8d-1278ca3d0b5a"},{"ref":"EID553c13bf-3c9d-4358-bb97-9a1c27c231b7"}]},"parent":{"ref":"EID6eea2dad-0175-1000-8bf7-42e812af9433"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:14:02Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:14:02Z","duration":357,"status":"PASSED"},{"id":"EID6eea2f13-0175-1000-69d6-301df0251567","testStepResults":{"TestStepResult":[{"id":"EID6eea2f13-0175-1000-8c61-0b801f3bfd5f","attachments":{"attachment":[{"ref":"EIDdc9f0529-0c3c-4aed-9cf6-39446ad94c69"},{"ref":"EID9857c643-6ba3-4b04-ba51-d307df2d7440"}]},"parent":{"ref":"EID6eea2f13-0175-1000-69d6-301df0251567"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:14:02Z","duration":63,"status":"PASSED"},{"id":"EID6eea2fae-0175-1000-455c-bc8c069ade2b","parent":{"ref":"EID6eea2f13-0175-1000-69d6-301df0251567"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea2faf-0175-1000-55b8-577526c15857","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea304f-0175-1000-d051-4d50c73636af","parent":{"ref":"EID6eea2faf-0175-1000-55b8-577526c15857"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea304f-0175-1000-6dfd-83377be48a19","parent":{"ref":"EID6eea2faf-0175-1000-55b8-577526c15857"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea304f-0175-1000-6182-1a1ba5dea07c","parent":{"ref":"EID6eea2faf-0175-1000-55b8-577526c15857"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"},{"id":"EID6eea304f-0175-1000-6a65-c2de25d67fae","parent":{"ref":"EID6eea2faf-0175-1000-55b8-577526c15857"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:14:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID74140003-fd29-4ba3-9aa7-9fc2fe03ba69"},{"ref":"EID417d2d42-bbe9-4c65-bde7-e892353aac68"},{"ref":"EID5404588f-05d3-4508-a7ca-a8836d0ce3de"}]},"parent":{"ref":"EID6eea2f13-0175-1000-69d6-301df0251567"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:14:02Z","duration":21,"status":"PASSED"},{"id":"EID6eea304f-0175-1000-be29-f9641a913b70","attachments":{"attachment":{"ref":"EID808e2066-f919-408b-ac9d-bcbc173f7117"}},"parent":{"ref":"EID6eea2f13-0175-1000-69d6-301df0251567"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:14:02Z","duration":3,"status":"PASSED"},{"id":"EID6eea3063-0175-1000-0c9f-32bbb62d7602","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea30da-0175-1000-f8a5-3d9af70face2","parent":{"ref":"EID6eea3063-0175-1000-0c9f-32bbb62d7602"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea30da-0175-1000-2f23-99b040292fa3","parent":{"ref":"EID6eea3063-0175-1000-0c9f-32bbb62d7602"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea30da-0175-1000-897a-b1a37573d509","parent":{"ref":"EID6eea3063-0175-1000-0c9f-32bbb62d7602"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea30da-0175-1000-9f44-7cbb6dde42c9","parent":{"ref":"EID6eea3063-0175-1000-0c9f-32bbb62d7602"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea30da-0175-1000-9e93-687fa97ef69d","parent":{"ref":"EID6eea3063-0175-1000-0c9f-32bbb62d7602"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf18cd14e-41e6-4f3b-8163-25eec0200fce"},{"ref":"EIDf45621af-a788-4567-b266-47a3ea98763d"},{"ref":"EID9f1722f9-c63e-4598-803f-660192d0a91b"}]},"parent":{"ref":"EID6eea2f13-0175-1000-69d6-301df0251567"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:14:02Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:14:02Z","duration":455,"status":"PASSED"},{"id":"EID6eea30db-0175-1000-3cac-57d33eb9c395","testStepResults":{"TestStepResult":[{"id":"EID6eea30db-0175-1000-72f3-544f72c134be","attachments":{"attachment":[{"ref":"EIDa58d5438-dd54-452d-9af6-24160aed15c9"},{"ref":"EID339dfd1c-981d-421b-b1bd-d136629ffdf4"}]},"parent":{"ref":"EID6eea30db-0175-1000-3cac-57d33eb9c395"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":113,"status":"PASSED"},{"id":"EID6eea3178-0175-1000-557a-0ff76a1ece9d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea31cc-0175-1000-ffef-d876d8208b15","parent":{"ref":"EID6eea3178-0175-1000-557a-0ff76a1ece9d"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea31cc-0175-1000-dad8-f2828cf3b7a8","parent":{"ref":"EID6eea3178-0175-1000-557a-0ff76a1ece9d"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea31cc-0175-1000-4f00-cb1c9414a439","parent":{"ref":"EID6eea3178-0175-1000-557a-0ff76a1ece9d"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea31cc-0175-1000-3548-d5c4ba0ce0b5","parent":{"ref":"EID6eea3178-0175-1000-557a-0ff76a1ece9d"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4a0791f3-c07e-44fa-b33e-4994bedb1fa4"},{"ref":"EID7d92bfe5-8ab7-4b1a-8ba4-369d308afd42"},{"ref":"EID5e2906e2-422b-4195-8d0d-c77e059ff442"}]},"parent":{"ref":"EID6eea30db-0175-1000-3cac-57d33eb9c395"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:14:03Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:14:03Z","duration":241,"status":"PASSED"},{"id":"EID6eea31cc-0175-1000-a41b-99dcee5f3253","testStepResults":{"TestStepResult":[{"id":"EID6eea31cc-0175-1000-86ef-2ece87bf7d42","attachments":{"attachment":[{"ref":"EID1fb64c52-e8a2-46c9-9652-b5af89152d93"},{"ref":"EIDba6c2f78-ea4f-4cb5-8c9a-024543b14081"}]},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":64,"status":"PASSED"},{"id":"EID6eea3233-0175-1000-1b4f-85b6125eae04","parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":15,"status":"PASSED"},{"id":"EID6eea3242-0175-1000-7683-308d98c6c5ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3345-0175-1000-d455-2a454a939f85","parent":{"ref":"EID6eea3242-0175-1000-7683-308d98c6c5ca"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea3345-0175-1000-ebf4-481af84a5f8e","parent":{"ref":"EID6eea3242-0175-1000-7683-308d98c6c5ca"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea3345-0175-1000-8332-c434b8ced610","parent":{"ref":"EID6eea3242-0175-1000-7683-308d98c6c5ca"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea3345-0175-1000-ca0b-8a50887cfc98","parent":{"ref":"EID6eea3242-0175-1000-7683-308d98c6c5ca"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe79d5d68-f8e4-4c90-a915-587c53947e00"},{"ref":"EIDea3c8c18-b50d-4811-95d3-765c8f689788"},{"ref":"EID2cbf265d-9214-4fc1-bf84-b1ee5fc03f54"}]},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:14:03Z","duration":46,"status":"PASSED"},{"id":"EID6eea334d-0175-1000-0939-eaf4b901317e","attachments":{"attachment":{"ref":"EID82eab4b9-b85a-4bd1-b598-28d222511993"}},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":1,"status":"PASSED"},{"id":"EID6eea335c-0175-1000-cb3d-e69d953677fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea33fc-0175-1000-5cba-b1ac710be230","parent":{"ref":"EID6eea335c-0175-1000-cb3d-e69d953677fc"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea33fc-0175-1000-74ee-331e385cf261","parent":{"ref":"EID6eea335c-0175-1000-cb3d-e69d953677fc"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"},{"id":"EID6eea33fc-0175-1000-7b13-63689c7a4333","parent":{"ref":"EID6eea335c-0175-1000-cb3d-e69d953677fc"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:14:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2b594008-3d1c-43d1-826e-f4dd15245a95"},{"ref":"EID7bb24651-a831-4621-b403-9015149f4ea8"},{"ref":"EID4a957987-be3c-4905-80fa-cc272717d3c9"}]},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:14:03Z","duration":110,"status":"PASSED"},{"id":"EID6eea33fc-0175-1000-20bb-65e54924b2bf","attachments":{"attachment":{"ref":"EIDc8756e75-8df2-4d13-8c59-b4f365967809"}},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":1,"status":"PASSED"},{"id":"EID6eea345b-0175-1000-d783-4e9f45fcb29f","attachments":{"attachment":{"ref":"EID21a448ec-5824-406e-ae2b-3d4a02f14223"}},"parent":{"ref":"EID6eea31cc-0175-1000-a41b-99dcee5f3253"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:14:03Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:14:03Z","duration":677,"status":"PASSED"},{"id":"EID6eea3471-0175-1000-8868-8f9bb166cf69","testStepResults":{"TestStepResult":[{"id":"EID6eea347b-0175-1000-d49a-53cf5c0e0c3f","attachments":{"attachment":[{"ref":"EID6483b97c-9829-4294-b6ac-90838f5b3a02"},{"ref":"EIDd93da728-79b2-41bd-922b-b8fc12872edd"}]},"parent":{"ref":"EID6eea3471-0175-1000-8868-8f9bb166cf69"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:14:04Z","duration":83,"status":"PASSED"},{"id":"EID6eea34f4-0175-1000-03b1-6b4e29cae34e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3545-0175-1000-6d86-2b8648a3aa76","parent":{"ref":"EID6eea34f4-0175-1000-03b1-6b4e29cae34e"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea3545-0175-1000-c937-9783f680537b","parent":{"ref":"EID6eea34f4-0175-1000-03b1-6b4e29cae34e"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea3545-0175-1000-9319-978a77621160","parent":{"ref":"EID6eea34f4-0175-1000-03b1-6b4e29cae34e"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea3545-0175-1000-61e1-cc8e7f07e8e3","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea34f4-0175-1000-03b1-6b4e29cae34e"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID8c75adef-e65a-4106-8a96-c175da7a2e7a"},{"ref":"EID3aa6b1d7-780d-43d8-8860-cbd3a116aab4"},{"ref":"EID1c02b1dc-7b78-44c8-8569-075669f7e2c1"}]},"parent":{"ref":"EID6eea3471-0175-1000-8868-8f9bb166cf69"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:14:04Z","duration":20,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:14:04Z","duration":212,"status":"PASSED_MANUAL"},{"id":"EID6eea3546-0175-1000-a578-f34ff0cea837","testStepResults":{"TestStepResult":{"id":"EID6eea3546-0175-1000-09c7-a422bc56c262","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea359c-0175-1000-521a-d7b0759924f7","parent":{"ref":"EID6eea3546-0175-1000-09c7-a422bc56c262"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea359c-0175-1000-b859-c62bf5a7e2ff","parent":{"ref":"EID6eea3546-0175-1000-09c7-a422bc56c262"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea359c-0175-1000-5d82-c5db499d8e45","parent":{"ref":"EID6eea3546-0175-1000-09c7-a422bc56c262"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea359c-0175-1000-d41f-8edc1de1e071","parent":{"ref":"EID6eea3546-0175-1000-09c7-a422bc56c262"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7e79785f-2719-4ae4-a278-9a26a657e114"},{"ref":"EID8eb7ef04-f67f-47ba-82d5-6df031545036"},{"ref":"EID48f24335-e513-4a33-856a-950eb1fdeea0"}]},"parent":{"ref":"EID6eea3546-0175-1000-a578-f34ff0cea837"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:14:04Z","duration":25,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:14:04Z","duration":87,"status":"PASSED"},{"id":"EID6eea359e-0175-1000-1c07-0d8bbce9f78c","testStepResults":{"TestStepResult":{"id":"EID6eea359e-0175-1000-5a60-82031dca75e4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea35fd-0175-1000-a452-627d78215b69","parent":{"ref":"EID6eea359e-0175-1000-5a60-82031dca75e4"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea35fd-0175-1000-41a1-1fa43a99fefc","parent":{"ref":"EID6eea359e-0175-1000-5a60-82031dca75e4"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea35fd-0175-1000-dc64-d51c43473848","parent":{"ref":"EID6eea359e-0175-1000-5a60-82031dca75e4"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"},{"id":"EID6eea35fd-0175-1000-ac3f-edc3a11d1f19","parent":{"ref":"EID6eea359e-0175-1000-5a60-82031dca75e4"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:14:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0319a1a5-6cd5-43e4-8d39-ff88ef27d755"},{"ref":"EID2b9e43b2-23ce-4095-9704-fae286e534e1"},{"ref":"EID83f9f4b6-c91b-4b1c-9fd5-6cfcb68cfad4"}]},"parent":{"ref":"EID6eea359e-0175-1000-1c07-0d8bbce9f78c"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:14:04Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:14:04Z","duration":95,"status":"PASSED"},{"id":"EID6eea35fd-0175-1000-1ddf-227df095d34f","testStepResults":{"TestStepResult":[{"id":"EID6eea35fd-0175-1000-c7f8-cb847bb318dd","attachments":{"attachment":[{"ref":"EID5332ebe9-6ebd-4998-a617-c761e1428df9"},{"ref":"EIDbdaee47d-ec2f-40eb-9535-fe27422f73d0"},{"ref":"EID5a77312d-9014-4c79-93ef-4685feb3ed75"},{"ref":"EID73d75313-eeb0-4e87-987c-2b767162ce60"},{"ref":"EID5d95de88-ca4d-43ac-8e72-460a26421875"},{"ref":"EID27b273d5-3b8f-421e-ae4c-2e2b915f5b49"},{"ref":"EIDf7ba2f8b-ada1-4bd5-b366-55d73d329cd2"},{"ref":"EID5f69857d-3c86-4078-8624-839c34a16426"},{"ref":"EID3fd1da8a-b4cf-46aa-90d2-8547ae3e632d"},{"ref":"EIDf9fa776c-f6b9-455f-b4dc-265f77ccc71f"},{"ref":"EID60db141b-f310-4e23-8d02-2b8c49c042f8"},{"ref":"EID6a345515-19f7-48b4-93da-ba9d17ac439d"}]},"parent":{"ref":"EID6eea35fd-0175-1000-1ddf-227df095d34f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:14:04Z","duration":274,"status":"PASSED"},{"id":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea386a-0175-1000-f4e1-e172315b99ea","parent":{"ref":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea386a-0175-1000-905e-c39afcf7b706","parent":{"ref":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea386a-0175-1000-93d6-c31ad5eefef0","parent":{"ref":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea386a-0175-1000-7f7a-55d88e596d13","parent":{"ref":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea386a-0175-1000-0e7b-95e40bc853e6","parent":{"ref":"EID6eea3800-0175-1000-3b9e-8f92f2bb457a"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe6613234-1896-4f7d-9d5d-d9d0f9b46ee4"},{"ref":"EIDdac1a31c-0c00-418d-9528-0be47e367d46"},{"ref":"EID6933abe1-7e42-4988-b8b8-97b2805b2154"}]},"parent":{"ref":"EID6eea35fd-0175-1000-1ddf-227df095d34f"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:14:04Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:14:04Z","duration":629,"status":"PASSED"},{"id":"EID6eea3873-0175-1000-7d3a-02850df98d84","testStepResults":{"TestStepResult":{"id":"EID6eea3873-0175-1000-c34b-5118bdd89496","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea391a-0175-1000-86ad-bb05dee6bd29","parent":{"ref":"EID6eea3873-0175-1000-c34b-5118bdd89496"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea391a-0175-1000-4bc1-6b46128ef15f","parent":{"ref":"EID6eea3873-0175-1000-c34b-5118bdd89496"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea391a-0175-1000-990a-055fad98fc20","parent":{"ref":"EID6eea3873-0175-1000-c34b-5118bdd89496"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea391a-0175-1000-72e0-88c4ac7a1c36","parent":{"ref":"EID6eea3873-0175-1000-c34b-5118bdd89496"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID28b73eac-93a2-41d9-816d-8a3a0faf8a7c"},{"ref":"EID9f7a41ff-9b55-4ab7-abf8-b8fd083a4d98"},{"ref":"EID3899e9ce-a98d-4768-a82c-e472f31a24d6"}]},"parent":{"ref":"EID6eea3873-0175-1000-7d3a-02850df98d84"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:14:05Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:14:05Z","duration":167,"status":"PASSED"},{"id":"EID6eea391a-0175-1000-9937-5ee9f09c6478","testStepResults":{"TestStepResult":{"id":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3994-0175-1000-8ce8-9644d0d6af16","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-19cb-447802e093b7","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-9268-508935a5a2dc","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-d89f-952e35ec04eb","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-aa9d-2dbfb452d207","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-22cd-741fd2fe2108","parent":{"ref":"EID6eea391a-0175-1000-5c5c-ff97e942e1ed"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID56a5b45f-2d10-487c-8d5d-b70e0f1624dc"},{"ref":"EID5d58ef4a-0980-4735-9681-9d6d57899fa6"},{"ref":"EID940c00ad-dfa9-4038-be25-39d6ab3f4cb1"}]},"parent":{"ref":"EID6eea391a-0175-1000-9937-5ee9f09c6478"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:14:05Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:14:05Z","duration":122,"status":"PASSED"},{"id":"EID6eea3994-0175-1000-dcc7-4097733b49d8","testStepResults":{"TestStepResult":{"id":"EID6eea3994-0175-1000-61aa-c92e24535df9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3a11-0175-1000-2470-cd5265d01876","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-08a3-bbbd94bd8e99","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-d337-8400797ecd12","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-f089-9a148d81d978","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-e8b2-a9ef9adf564c","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-7e18-61e81658d7df","parent":{"ref":"EID6eea3994-0175-1000-61aa-c92e24535df9"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID697c9395-79ab-49be-a0fb-479ce131b892"},{"ref":"EID5fadcc86-24de-4b80-850b-d8889c9b8eb8"},{"ref":"EID00f25cad-3d9b-45fb-a1d1-e54953b08a25"}]},"parent":{"ref":"EID6eea3994-0175-1000-dcc7-4097733b49d8"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:14:05Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:14:05Z","duration":125,"status":"PASSED"},{"id":"EID6eea3a11-0175-1000-5e0d-e662c876e2d4","testStepResults":{"TestStepResult":{"id":"EID6eea3a11-0175-1000-03f3-be31b1a32111","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3a6a-0175-1000-7837-a6827b35a854","parent":{"ref":"EID6eea3a11-0175-1000-03f3-be31b1a32111"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a6a-0175-1000-5315-8e480744c5d3","parent":{"ref":"EID6eea3a11-0175-1000-03f3-be31b1a32111"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a6a-0175-1000-0dfd-4c916ecfb48d","parent":{"ref":"EID6eea3a11-0175-1000-03f3-be31b1a32111"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3a6a-0175-1000-d9b5-4a2a46be802f","parent":{"ref":"EID6eea3a11-0175-1000-03f3-be31b1a32111"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0fd2b36c-6b07-4457-9ced-70390c3fd082"},{"ref":"EID1a83bdaf-d96e-433b-9711-874fe8dd1b7a"},{"ref":"EID0881435a-c732-438d-a939-8715a4bf0a32"}]},"parent":{"ref":"EID6eea3a11-0175-1000-5e0d-e662c876e2d4"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:14:05Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:14:05Z","duration":89,"status":"PASSED"},{"id":"EID6eea3a6a-0175-1000-ee5e-9e64936f2cc0","testStepResults":{"TestStepResult":[{"id":"EID6eea3a6a-0175-1000-d950-d81b55439b74","attachments":{"attachment":[{"ref":"EID94de6bfd-04d0-4803-b329-a0a2b02de0e7"},{"ref":"EID1976fa29-9a2d-4136-83d5-44735c764679"},{"ref":"EIDe8c126d0-a132-48d3-9d30-7af8e3560f4c"},{"ref":"EID73b47052-2f59-4c33-b8cf-3835a63a746b"}]},"parent":{"ref":"EID6eea3a6a-0175-1000-ee5e-9e64936f2cc0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:14:05Z","duration":190,"status":"PASSED"},{"id":"EID6eea3b60-0175-1000-8a05-2712a1409f4e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3c0a-0175-1000-c5f4-a771baf7d880","parent":{"ref":"EID6eea3b60-0175-1000-8a05-2712a1409f4e"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c0a-0175-1000-f863-7fea3b404ba2","parent":{"ref":"EID6eea3b60-0175-1000-8a05-2712a1409f4e"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c0a-0175-1000-846a-24b23370d240","parent":{"ref":"EID6eea3b60-0175-1000-8a05-2712a1409f4e"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c0a-0175-1000-e0cb-b4a1c3b9844e","parent":{"ref":"EID6eea3b60-0175-1000-8a05-2712a1409f4e"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:14:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcafd4893-b6ae-4254-ab7b-e398d0f7a903"},{"ref":"EIDe6c3445e-da65-4857-8090-cece77dee53f"},{"ref":"EIDde4fa64b-37ba-46a8-b2f3-64b227fc8c64"}]},"parent":{"ref":"EID6eea3a6a-0175-1000-ee5e-9e64936f2cc0"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:14:05Z","duration":26,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:14:05Z","duration":416,"status":"PASSED"},{"id":"EID6eea3c0a-0175-1000-07d0-dad7ed4aa678","testStepResults":{"TestStepResult":{"id":"EID6eea3c0a-0175-1000-a90b-36d458578f74","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3c85-0175-1000-6297-d5f40b57e6bf","parent":{"ref":"EID6eea3c0a-0175-1000-a90b-36d458578f74"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c85-0175-1000-310e-14acdfb9a967","parent":{"ref":"EID6eea3c0a-0175-1000-a90b-36d458578f74"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c85-0175-1000-3012-1afb4bf115cd","parent":{"ref":"EID6eea3c0a-0175-1000-a90b-36d458578f74"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c85-0175-1000-ecf2-66dd8d720d91","parent":{"ref":"EID6eea3c0a-0175-1000-a90b-36d458578f74"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID46ce6415-7804-4aa4-b41a-5d6aa272fc6d"},{"ref":"EID2a5ca580-18bd-4c35-968c-70ffbc41f554"},{"ref":"EIDd910cf3b-9e8d-43c5-a014-4bac36fdc0d1"}]},"parent":{"ref":"EID6eea3c0a-0175-1000-07d0-dad7ed4aa678"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:14:05Z","duration":22,"status":"PASSED"}},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:14:05Z","duration":123,"status":"PASSED"},{"id":"EID6eea3c86-0175-1000-d43a-48d9c86834f9","testStepResults":{"TestStepResult":[{"id":"EID6eea3c86-0175-1000-2810-29d5cd722996","parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3c86-0175-1000-4be6-b6ce3be925fc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3d72-0175-1000-e308-f63293645eb9","parent":{"ref":"EID6eea3c86-0175-1000-4be6-b6ce3be925fc"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3d73-0175-1000-99f0-a3f1e657e4fa","parent":{"ref":"EID6eea3c86-0175-1000-4be6-b6ce3be925fc"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3d73-0175-1000-0836-4c74a795f57e","parent":{"ref":"EID6eea3c86-0175-1000-4be6-b6ce3be925fc"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3d73-0175-1000-8ae6-4c18e949dec3","parent":{"ref":"EID6eea3c86-0175-1000-4be6-b6ce3be925fc"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48e88261-1065-4872-8d69-be24dd112702"},{"ref":"EID84d48706-5115-4729-b490-56183e1f0948"},{"ref":"EID98199a60-1a34-4249-989c-7669e5854188"}]},"parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:14:06Z","duration":36,"status":"PASSED"},{"id":"EID6eea3d73-0175-1000-8404-67f3b01a2791","attachments":{"attachment":{"ref":"EID9b1a85ab-9813-491e-acd6-524889d67e97"}},"parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":1,"status":"PASSED"},{"id":"EID6eea3d82-0175-1000-ea08-f5de6b47e755","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3e39-0175-1000-4532-cd137bf963e6","parent":{"ref":"EID6eea3d82-0175-1000-ea08-f5de6b47e755"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3e39-0175-1000-04d5-4df8245a94a5","parent":{"ref":"EID6eea3d82-0175-1000-ea08-f5de6b47e755"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3e39-0175-1000-d2d3-06b5fdce3120","parent":{"ref":"EID6eea3d82-0175-1000-ea08-f5de6b47e755"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3e39-0175-1000-bf65-a3d27ebb019e","parent":{"ref":"EID6eea3d82-0175-1000-ea08-f5de6b47e755"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID707e911e-1231-4acf-98d2-fd295a72c00b"},{"ref":"EID00b868dc-8cb3-4a1f-b813-cbb043f0b80d"},{"ref":"EID31d4d621-2f4a-4f19-aec0-4630102ba090"}]},"parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:14:06Z","duration":84,"status":"PASSED"},{"id":"EID6eea3e39-0175-1000-4671-46f08d635236","attachments":{"attachment":{"ref":"EID4c2d6e49-772d-4997-a365-41fa1ab06ff5"}},"parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":1,"status":"PASSED"},{"id":"EID6eea3e47-0175-1000-98e2-db59bb9e3d69","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3eb5-0175-1000-4759-df017afd1154","parent":{"ref":"EID6eea3e47-0175-1000-98e2-db59bb9e3d69"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3eb5-0175-1000-fd32-28189eb1eaef","parent":{"ref":"EID6eea3e47-0175-1000-98e2-db59bb9e3d69"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3eb5-0175-1000-8ba9-c27ee531d4fe","parent":{"ref":"EID6eea3e47-0175-1000-98e2-db59bb9e3d69"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3eb5-0175-1000-9d5a-e582d744d49b","parent":{"ref":"EID6eea3e47-0175-1000-98e2-db59bb9e3d69"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfe1bb3f7-c788-45f7-8fa1-c6de6533f7f2"},{"ref":"EID14729103-8ae6-4a2c-92cb-c57d54a7ab1c"},{"ref":"EID827e84ef-989e-4120-8135-8517af4679bf"}]},"parent":{"ref":"EID6eea3c86-0175-1000-d43a-48d9c86834f9"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:14:06Z","duration":42,"status":"PASSED"}]},"parent":{"ref":"EID6eea2c26-0175-1000-8e02-129beb15ddc4"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:14:06Z","duration":559,"status":"PASSED"}]},"parent":{"ref":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:14:01Z","duration":4754,"status":"PASSED_MANUAL"},{"id":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b","testCaseResults":{"TestCaseResult":[{"id":"EID6eea3eb8-0175-1000-5401-208e8c7e7864","testStepResults":{"TestStepResult":[{"id":"EID6eea3eb8-0175-1000-42c5-a7e565b47870","parent":{"ref":"EID6eea3eb8-0175-1000-5401-208e8c7e7864"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3eb8-0175-1000-3c06-a68a36b4d00a","parent":{"ref":"EID6eea3eb8-0175-1000-5401-208e8c7e7864"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":21,"status":"PASSED"},{"id":"EID6eea3eb8-0175-1000-2e05-c718dc2090ca","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3f08-0175-1000-0e2d-ad27eb1fd99f","parent":{"ref":"EID6eea3eb8-0175-1000-2e05-c718dc2090ca"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3f08-0175-1000-5980-817d085e10e1","parent":{"ref":"EID6eea3eb8-0175-1000-2e05-c718dc2090ca"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3f08-0175-1000-e4b5-67dbd51ea448","parent":{"ref":"EID6eea3eb8-0175-1000-2e05-c718dc2090ca"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6ce2fdb8-3e88-45d4-9d77-cc4be49cb2a9"},{"ref":"EID9fd16b6d-57a9-4040-8956-52cb806c519e"},{"ref":"EIDd8d06608-6350-45c3-bda6-14019ed67504"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-5401-208e8c7e7864"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:14:06Z","duration":21,"status":"PASSED"},{"id":"EID6eea3f08-0175-1000-2f13-e83c26fb28da","attachments":{"attachment":{"ref":"EID50fffebd-9dfd-4008-9065-733bd5063345"}},"parent":{"ref":"EID6eea3eb8-0175-1000-5401-208e8c7e7864"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3f58-0175-1000-0a9a-1e693139e544","parent":{"ref":"EID6eea3eb8-0175-1000-5401-208e8c7e7864"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:14:06Z","duration":10,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:14:06Z","duration":171,"status":"PASSED"},{"id":"EID6eea3f63-0175-1000-386e-8e5675301b4c","testStepResults":{"TestStepResult":[{"id":"EID6eea3f63-0175-1000-34a7-98b7664c592d","parent":{"ref":"EID6eea3f63-0175-1000-386e-8e5675301b4c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:14:06Z","duration":26,"status":"PASSED"},{"id":"EID6eea3f63-0175-1000-bf54-0a935fbbca25","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea3ffc-0175-1000-3625-f3ea00f9757e","parent":{"ref":"EID6eea3f63-0175-1000-bf54-0a935fbbca25"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3ffc-0175-1000-a053-24b2ab01adcf","parent":{"ref":"EID6eea3f63-0175-1000-bf54-0a935fbbca25"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3ffc-0175-1000-0ed6-34b0511f2e55","parent":{"ref":"EID6eea3f63-0175-1000-bf54-0a935fbbca25"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3ffc-0175-1000-d495-21e971ed9a8e","parent":{"ref":"EID6eea3f63-0175-1000-bf54-0a935fbbca25"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"},{"id":"EID6eea3ffc-0175-1000-c575-2ada3077d479","parent":{"ref":"EID6eea3f63-0175-1000-bf54-0a935fbbca25"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:14:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID40833975-e080-4050-a858-536de64b3852"},{"ref":"EIDd43ae4db-c41e-4c20-a57d-e07dd51a3918"},{"ref":"EIDd8045bc3-2f40-4493-84af-f52929fa2795"}]},"parent":{"ref":"EID6eea3f63-0175-1000-386e-8e5675301b4c"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:14:06Z","duration":20,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:14:06Z","duration":153,"status":"PASSED"},{"id":"EID6eea3ffc-0175-1000-95f0-e48a0283f82b","testStepResults":{"TestStepResult":[{"id":"EID6eea3ffd-0175-1000-6650-7a2e496d4f9d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4049-0175-1000-fbe3-d300d44b4fd6","parent":{"ref":"EID6eea3ffd-0175-1000-6650-7a2e496d4f9d"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4049-0175-1000-49e2-dc79cd6f38e5","parent":{"ref":"EID6eea3ffd-0175-1000-6650-7a2e496d4f9d"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4049-0175-1000-e3bd-ba0670265448","parent":{"ref":"EID6eea3ffd-0175-1000-6650-7a2e496d4f9d"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc26577c0-1273-4561-8192-48751307da01"},{"ref":"EID9b4943a0-f709-4b46-b751-480f4cf527cf"},{"ref":"EID8fbff508-b82d-4ae9-b290-7b418200fdf7"}]},"parent":{"ref":"EID6eea3ffc-0175-1000-95f0-e48a0283f82b"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:14:06Z","duration":22,"status":"PASSED"},{"id":"EID6eea4049-0175-1000-6929-f0ec6f3199aa","attachments":{"attachment":{"ref":"EIDbb10c9b8-3276-4e15-b970-80c55a1b10ea"}},"parent":{"ref":"EID6eea3ffc-0175-1000-95f0-e48a0283f82b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:14:07Z","duration":1,"status":"PASSED"},{"id":"EID6eea4055-0175-1000-b16c-1e0ee103c828","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea40cf-0175-1000-7db9-2ca12f52527a","parent":{"ref":"EID6eea4055-0175-1000-b16c-1e0ee103c828"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea40cf-0175-1000-7c24-b0058b3be6af","parent":{"ref":"EID6eea4055-0175-1000-b16c-1e0ee103c828"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea40cf-0175-1000-4fb2-c07ae53f6e62","parent":{"ref":"EID6eea4055-0175-1000-b16c-1e0ee103c828"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea40cf-0175-1000-01f5-d93b5bc9328e","parent":{"ref":"EID6eea4055-0175-1000-b16c-1e0ee103c828"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea40cf-0175-1000-4d08-8835bb18e66e","parent":{"ref":"EID6eea4055-0175-1000-b16c-1e0ee103c828"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9485b135-e3d8-4e05-93c2-adf2808beb3c"},{"ref":"EID4c628d05-49bc-45b1-a5c6-a4127157d44e"},{"ref":"EIDed6465d8-6ac9-4164-8f9f-a58394f09b99"}]},"parent":{"ref":"EID6eea3ffc-0175-1000-95f0-e48a0283f82b"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:14:07Z","duration":22,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:14:06Z","duration":211,"status":"PASSED"},{"id":"EID6eea40cf-0175-1000-f23f-929a8b04cf0e","testStepResults":{"TestStepResult":[{"id":"EID6eea40cf-0175-1000-10f4-56bd25ec9970","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea412e-0175-1000-e085-fb227e6cc779","parent":{"ref":"EID6eea40cf-0175-1000-10f4-56bd25ec9970"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea412e-0175-1000-31b8-33ba54537c00","parent":{"ref":"EID6eea40cf-0175-1000-10f4-56bd25ec9970"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea412f-0175-1000-5232-618e1c7ce8b8","parent":{"ref":"EID6eea40cf-0175-1000-10f4-56bd25ec9970"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea412f-0175-1000-a2ac-5e6af86344c4","parent":{"ref":"EID6eea40cf-0175-1000-10f4-56bd25ec9970"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0884d971-7ba3-4221-998d-799deb40097f"},{"ref":"EID01578ef3-0159-4421-b9a9-8d153bd46063"},{"ref":"EID1bb09fb0-8f90-41ba-8e05-484261f890f6"}]},"parent":{"ref":"EID6eea40cf-0175-1000-f23f-929a8b04cf0e"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:14:07Z","duration":25,"status":"PASSED"},{"id":"EID6eea412f-0175-1000-a1ee-b5547b09113d","attachments":{"attachment":{"ref":"EID719c4043-2c35-4850-8157-227783af02a6"}},"parent":{"ref":"EID6eea40cf-0175-1000-f23f-929a8b04cf0e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4168-0175-1000-72aa-29bb975818f1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea41af-0175-1000-dd92-92d6ae121b22","parent":{"ref":"EID6eea4168-0175-1000-72aa-29bb975818f1"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea41af-0175-1000-3840-0590cd8dfd11","parent":{"ref":"EID6eea4168-0175-1000-72aa-29bb975818f1"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID816ddded-8fdb-427e-83a5-c246600d13cf"},{"ref":"EIDb293ba8d-0cf5-4404-b5a3-ea487edb3af6"}]},"parent":{"ref":"EID6eea40cf-0175-1000-f23f-929a8b04cf0e"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:14:07Z","duration":68,"status":"PASSED"},{"id":"EID6eea41af-0175-1000-bf58-5ed680fcc492","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4259-0175-1000-370c-4961e09a0e06","parent":{"ref":"EID6eea41af-0175-1000-bf58-5ed680fcc492"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4259-0175-1000-9384-252690a43a67","parent":{"ref":"EID6eea41af-0175-1000-bf58-5ed680fcc492"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4259-0175-1000-2961-940d77cfc64e","parent":{"ref":"EID6eea41af-0175-1000-bf58-5ed680fcc492"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4259-0175-1000-580d-2ea1f8382914","parent":{"ref":"EID6eea41af-0175-1000-bf58-5ed680fcc492"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb9427e7-b34a-47c2-ae4a-581103fb68b0"},{"ref":"EID47ade967-34c3-4557-9671-7b41834c3209"},{"ref":"EIDbfb169b7-a023-4890-83fe-d8861fee4896"}]},"parent":{"ref":"EID6eea40cf-0175-1000-f23f-929a8b04cf0e"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:14:07Z","duration":19,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:14:07Z","duration":394,"status":"PASSED"},{"id":"EID6eea4259-0175-1000-a830-d4e5d57ed388","testStepResults":{"TestStepResult":{"id":"EID6eea4259-0175-1000-f776-825f177077c5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea42f8-0175-1000-c662-5212a4fa4036","parent":{"ref":"EID6eea4259-0175-1000-f776-825f177077c5"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea42f8-0175-1000-ea11-c622d49f11c4","parent":{"ref":"EID6eea4259-0175-1000-f776-825f177077c5"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea42f8-0175-1000-8d88-40169b41f5c3","parent":{"ref":"EID6eea4259-0175-1000-f776-825f177077c5"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf6a2a6ee-bb84-4672-9433-ee223bd88b02"},{"ref":"EIDa8015892-f470-464d-b4cf-4386564415bf"},{"ref":"EID06438ae0-61b0-4c23-a87b-d84528a9145a"}]},"parent":{"ref":"EID6eea4259-0175-1000-a830-d4e5d57ed388"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:14:07Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:14:07Z","duration":175,"status":"PASSED"},{"id":"EID6eea4308-0175-1000-3cab-3216b2ca621e","testStepResults":{"TestStepResult":{"id":"EID6eea4308-0175-1000-656a-beab3e33dac8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4376-0175-1000-6054-8bb999816586","parent":{"ref":"EID6eea4308-0175-1000-656a-beab3e33dac8"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4376-0175-1000-e796-4ed428ba118a","parent":{"ref":"EID6eea4308-0175-1000-656a-beab3e33dac8"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea4376-0175-1000-d7f0-5c17dbc47678","parent":{"ref":"EID6eea4308-0175-1000-656a-beab3e33dac8"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID57d862e1-fd70-4d3d-b092-29aec72e543a"},{"ref":"EID506ab03c-e6b0-4c55-ae3a-cb895c6e3a91"},{"ref":"EID83305a17-1df8-4bc5-9c02-7988faf594c0"}]},"parent":{"ref":"EID6eea4308-0175-1000-3cab-3216b2ca621e"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:14:07Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:14:07Z","duration":110,"status":"PASSED"},{"id":"EID6eea4376-0175-1000-6113-1630d5c01ac7","testStepResults":{"TestStepResult":{"id":"EID6eea4376-0175-1000-e47d-d53be36c37a1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea43dc-0175-1000-0ffc-83952810e0b1","parent":{"ref":"EID6eea4376-0175-1000-e47d-d53be36c37a1"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea43dc-0175-1000-7c39-1ae1892a407d","parent":{"ref":"EID6eea4376-0175-1000-e47d-d53be36c37a1"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea43dc-0175-1000-9616-28d496dbee3a","parent":{"ref":"EID6eea4376-0175-1000-e47d-d53be36c37a1"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea43dc-0175-1000-d9aa-e27114d57042","parent":{"ref":"EID6eea4376-0175-1000-e47d-d53be36c37a1"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"},{"id":"EID6eea43dc-0175-1000-cdf3-dde1adc05692","parent":{"ref":"EID6eea4376-0175-1000-e47d-d53be36c37a1"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:14:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID916a7c2c-5990-49b7-af9c-0fed93c9b425"},{"ref":"EID5bdd0501-2b4d-400e-9c5b-a3322e34bc7f"},{"ref":"EIDf7faf670-16d1-4119-9bd9-0870bcfaab92"}]},"parent":{"ref":"EID6eea4376-0175-1000-6113-1630d5c01ac7"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:14:07Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:14:07Z","duration":102,"status":"PASSED"},{"id":"EID6eea43dc-0175-1000-b1fd-9e26d06e0afc","testStepResults":{"TestStepResult":{"id":"EID6eea43dc-0175-1000-2b18-8118c02010ed","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4457-0175-1000-049d-a795106404f9","parent":{"ref":"EID6eea43dc-0175-1000-2b18-8118c02010ed"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4457-0175-1000-9fcf-e8d8a266cc89","parent":{"ref":"EID6eea43dc-0175-1000-2b18-8118c02010ed"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4457-0175-1000-8c8d-1d4e476c2066","parent":{"ref":"EID6eea43dc-0175-1000-2b18-8118c02010ed"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf021a5a3-9295-417b-9a11-6a0d68b701fc"},{"ref":"EID4169c3f6-c94e-469a-a776-374ac539dcf8"},{"ref":"EIDa70c72f2-ad1f-46ab-b2ec-83448fe77003"}]},"parent":{"ref":"EID6eea43dc-0175-1000-b1fd-9e26d06e0afc"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:14:07Z","duration":25,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:14:07Z","duration":123,"status":"PASSED"},{"id":"EID6eea4457-0175-1000-12bd-da558d1b80ef","testStepResults":{"TestStepResult":{"id":"EID6eea4457-0175-1000-2d2b-67dac1d6c139","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea44a5-0175-1000-3365-19ac1d443e78","parent":{"ref":"EID6eea4457-0175-1000-2d2b-67dac1d6c139"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea44a5-0175-1000-7bbb-99f0b6259b52","parent":{"ref":"EID6eea4457-0175-1000-2d2b-67dac1d6c139"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea44a5-0175-1000-c586-e73698180312","parent":{"ref":"EID6eea4457-0175-1000-2d2b-67dac1d6c139"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1040d482-8855-4ddb-a9c0-59f99c88c56b"},{"ref":"EID7621e53b-614f-4348-a338-6d136465308f"},{"ref":"EID484e6e52-05b6-41fb-9b45-29c59163d064"}]},"parent":{"ref":"EID6eea4457-0175-1000-12bd-da558d1b80ef"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:14:08Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:14:08Z","duration":78,"status":"PASSED"},{"id":"EID6eea44a5-0175-1000-73f4-1fe494cb9edc","testStepResults":{"TestStepResult":{"id":"EID6eea44a5-0175-1000-a86c-7e2115729744","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea44fb-0175-1000-db95-725ea9d4c6f9","parent":{"ref":"EID6eea44a5-0175-1000-a86c-7e2115729744"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea44fb-0175-1000-2631-683b293ab76f","parent":{"ref":"EID6eea44a5-0175-1000-a86c-7e2115729744"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:14:08Z","duration":1,"status":"PASSED"},{"id":"EID6eea44fc-0175-1000-2eac-c04cdee9ae9e","parent":{"ref":"EID6eea44a5-0175-1000-a86c-7e2115729744"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea44fc-0175-1000-c13e-bb0fc02b0d55","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eea44a5-0175-1000-a86c-7e2115729744"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfc5a483f-5e83-4bd9-984d-6ec7bbcc7b17"},{"ref":"EID38ba6c2e-746b-4397-827c-f98a3b20005f"},{"ref":"EID16539463-266f-4b2b-a334-598dd81050cd"}]},"parent":{"ref":"EID6eea44a5-0175-1000-73f4-1fe494cb9edc"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:14:08Z","duration":20,"status":"FAILED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:14:08Z","duration":87,"status":"FAILED"},{"id":"EID6eea44fc-0175-1000-af02-c41a84fd0fba","testStepResults":{"TestStepResult":{"id":"EID6eea4507-0175-1000-6094-92369c72bddf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4560-0175-1000-5c86-381fb12f909d","parent":{"ref":"EID6eea4507-0175-1000-6094-92369c72bddf"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4560-0175-1000-9780-5ae8aaaa8f1a","parent":{"ref":"EID6eea4507-0175-1000-6094-92369c72bddf"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4560-0175-1000-e584-9e5aba588397","parent":{"ref":"EID6eea4507-0175-1000-6094-92369c72bddf"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4560-0175-1000-d833-c4d203e7ea82","parent":{"ref":"EID6eea4507-0175-1000-6094-92369c72bddf"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9bda34bd-4be5-4a3a-9d34-cd4f2856e8f5"},{"ref":"EID0a379c91-79e5-4021-951b-051c7fbd2094"},{"ref":"EID44824f22-8b3b-477e-9551-6fd8fe84b573"}]},"parent":{"ref":"EID6eea44fc-0175-1000-af02-c41a84fd0fba"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:14:08Z","duration":20,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:14:08Z","duration":100,"status":"PASSED"},{"id":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0","testStepResults":{"TestStepResult":[{"id":"EID6eea4560-0175-1000-c399-6c2b1e873f83","parent":{"ref":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4560-0175-1000-a776-0488fac4e2b7","parent":{"ref":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:14:08Z","duration":46,"status":"PASSED"},{"id":"EID6eea4561-0175-1000-e901-910870db8a3c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea45b6-0175-1000-968f-517b6309dbcc","parent":{"ref":"EID6eea4561-0175-1000-e901-910870db8a3c"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea45b6-0175-1000-2712-6feda7890285","parent":{"ref":"EID6eea4561-0175-1000-e901-910870db8a3c"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea45b6-0175-1000-677a-c0c640923fe2","parent":{"ref":"EID6eea4561-0175-1000-e901-910870db8a3c"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea45b6-0175-1000-520d-0fa7d92d3733","parent":{"ref":"EID6eea4561-0175-1000-e901-910870db8a3c"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDca3ab689-417e-4f8b-a760-2084d45d5016"},{"ref":"EIDa80b87aa-3e52-4abb-8b69-65e8af527097"},{"ref":"EIDb84a931d-4ae2-43ee-94cf-39da48319c7c"}]},"parent":{"ref":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:14:08Z","duration":20,"status":"PASSED"},{"id":"EID6eea45b6-0175-1000-5c47-87e150fb6eb0","attachments":{"attachment":{"ref":"EID04667ee6-a631-429f-842f-a33e7fb75d71"}},"parent":{"ref":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:14:08Z","duration":1,"status":"PASSED"},{"id":"EID6eea45c5-0175-1000-b330-9859a257199a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea46b2-0175-1000-e306-0661ccd53108","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-9f13-87d663f5bd53","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-6be9-846c100c083b","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-966b-572d938cd03e","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-cf22-e4655d9e8fba","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-cb30-658903ea0eca","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b2-0175-1000-6f48-3bec3214d500","parent":{"ref":"EID6eea45c5-0175-1000-b330-9859a257199a"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf90d3fe2-de89-416a-b669-6f8516ac0866"},{"ref":"EID20e66acb-7380-4969-902d-17c18d90b576"},{"ref":"EID40f9b1df-db81-4539-8312-ce59a4edd722"}]},"parent":{"ref":"EID6eea4560-0175-1000-ab7b-4f5e7a687ce0"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:14:08Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:14:08Z","duration":338,"status":"PASSED"},{"id":"EID6eea46b3-0175-1000-3495-3c39a7073873","testStepResults":{"TestStepResult":[{"id":"EID6eea46b3-0175-1000-a9e8-880a1e3ac9af","parent":{"ref":"EID6eea46b3-0175-1000-3495-3c39a7073873"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea46b3-0175-1000-a425-800daa78488c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4788-0175-1000-4629-f0a6d80d33f9","parent":{"ref":"EID6eea46b3-0175-1000-a425-800daa78488c"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4788-0175-1000-2ed2-23e51f7df73e","parent":{"ref":"EID6eea46b3-0175-1000-a425-800daa78488c"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4788-0175-1000-0c44-4f3e14dac141","parent":{"ref":"EID6eea46b3-0175-1000-a425-800daa78488c"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"},{"id":"EID6eea4788-0175-1000-2af5-b0830ad0c6d0","parent":{"ref":"EID6eea46b3-0175-1000-a425-800daa78488c"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:14:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa42bbeb7-f93e-4e0f-81d8-f58bd975e817"},{"ref":"EIDaaf9a24d-fb94-4dae-8e50-94a93d89019d"},{"ref":"EID00d9bda0-dadc-4e40-b0da-4238389098c1"}]},"parent":{"ref":"EID6eea46b3-0175-1000-3495-3c39a7073873"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:14:08Z","duration":43,"status":"PASSED"},{"id":"EID6eea4788-0175-1000-1f90-ecd3bb911f01","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eea4799-0175-1000-3ae9-44874ba5a78f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4867-0175-1000-8750-de302cb2e76c","parent":{"ref":"EID6eea4799-0175-1000-3ae9-44874ba5a78f"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4867-0175-1000-573f-1d5bb9c7d597","parent":{"ref":"EID6eea4799-0175-1000-3ae9-44874ba5a78f"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4867-0175-1000-b56a-58a131a16ccc","parent":{"ref":"EID6eea4799-0175-1000-3ae9-44874ba5a78f"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID380a711d-ff21-4063-9e98-f8c68bc98276"},{"ref":"EID9fcde150-e7b6-4ccf-a8c3-d05c47c37c06"},{"ref":"EID3cb531a3-afa4-49a5-bcef-3131853031ec"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:08Z","duration":40,"status":"PASSED"},{"id":"EID6eea4868-0175-1000-8ce5-0950aaee40b9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea48c2-0175-1000-b042-f0e75fcb6d44","parent":{"ref":"EID6eea4868-0175-1000-8ce5-0950aaee40b9"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea48c2-0175-1000-1a8f-02fab3c7146c","parent":{"ref":"EID6eea4868-0175-1000-8ce5-0950aaee40b9"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea48c2-0175-1000-20b8-55a6887a7af2","parent":{"ref":"EID6eea4868-0175-1000-8ce5-0950aaee40b9"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf2e32745-a046-4351-9dad-2dc74a6e3b4e"},{"ref":"EID3471d03e-b855-42e1-85c7-d987f1bfcb0f"},{"ref":"EIDb4e274dd-0dc1-4606-8193-000830c637ec"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:09Z","duration":42,"status":"PASSED"},{"id":"EID6eea48c3-0175-1000-a857-e3f89de150de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4948-0175-1000-0a63-65b0aefb4abf","parent":{"ref":"EID6eea48c3-0175-1000-a857-e3f89de150de"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:09Z","duration":1,"status":"PASSED"},{"id":"EID6eea4949-0175-1000-0d63-639efdc786dd","parent":{"ref":"EID6eea48c3-0175-1000-a857-e3f89de150de"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4949-0175-1000-a9b4-61a6ecb70e61","parent":{"ref":"EID6eea48c3-0175-1000-a857-e3f89de150de"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1cdc2cf5-64f0-4bb9-8901-b42841e92a05"},{"ref":"EID7f2b871d-f93d-4452-b5c3-ad4d53fe1787"},{"ref":"EIDe594ef5e-6c14-45c2-95b8-f5dd70291e63"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:09Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6eea46b3-0175-1000-3495-3c39a7073873"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:14:08Z","duration":449,"status":"PASSED"},{"id":"EID6eea4949-0175-1000-89b4-b5a6aeb92127","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea49d2-0175-1000-e303-ab251b483dee","parent":{"ref":"EID6eea4949-0175-1000-89b4-b5a6aeb92127"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea49d2-0175-1000-4bcb-b85cd84d4990","parent":{"ref":"EID6eea4949-0175-1000-89b4-b5a6aeb92127"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea49d2-0175-1000-5c71-0d207e9c2359","parent":{"ref":"EID6eea4949-0175-1000-89b4-b5a6aeb92127"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea49d2-0175-1000-b11d-328fa6f626bd","parent":{"ref":"EID6eea4949-0175-1000-89b4-b5a6aeb92127"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID85c16dd9-9346-4242-bc01-57e55c7a9bc3"},{"ref":"EID55ea2f18-1456-4bd4-9381-691c0326684e"},{"ref":"EID72050a9e-d88d-412c-a9c3-8556a90cfe57"}]},"parent":{"ref":"EID6eea46b3-0175-1000-3495-3c39a7073873"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:14:09Z","duration":21,"status":"PASSED"}]},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:14:08Z","duration":799,"status":"PASSED"},{"id":"EID6eea49d2-0175-1000-2947-d295c287ecd7","testStepResults":{"TestStepResult":{"id":"EID6eea49d2-0175-1000-cc67-77e2a7e8290d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4a26-0175-1000-0e9c-1b2d7d7aea24","parent":{"ref":"EID6eea49d2-0175-1000-cc67-77e2a7e8290d"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4a26-0175-1000-b2b3-93bfb64dd110","parent":{"ref":"EID6eea49d2-0175-1000-cc67-77e2a7e8290d"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4a26-0175-1000-19cd-4499db8af144","parent":{"ref":"EID6eea49d2-0175-1000-cc67-77e2a7e8290d"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4a26-0175-1000-3d8b-74b020b59a4a","parent":{"ref":"EID6eea49d2-0175-1000-cc67-77e2a7e8290d"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa5bf71ac-7e04-47ff-b9de-5ddef1f7544e"},{"ref":"EIDba64d498-f21b-4f64-acfc-2718ba10389d"},{"ref":"EIDcb8e8839-a114-41c6-958a-94370d8343ba"}]},"parent":{"ref":"EID6eea49d2-0175-1000-2947-d295c287ecd7"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:14:09Z","duration":21,"status":"PASSED"}},"parent":{"ref":"EID6eea3eb8-0175-1000-4407-89d1a9d4637b"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:14:09Z","duration":97,"status":"PASSED"}]},"parent":{"ref":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:14:06Z","duration":2939,"status":"FAILED"},{"id":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea","testCaseResults":{"TestCaseResult":[{"id":"EID6eea4a33-0175-1000-8916-f8ed652d4e35","testStepResults":{"TestStepResult":[{"id":"EID6eea4a33-0175-1000-4fb1-1af0c152051d","parent":{"ref":"EID6eea4a33-0175-1000-8916-f8ed652d4e35"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:14:09Z","duration":223,"status":"PASSED"},{"id":"EID6eea4a33-0175-1000-1124-b034f391038c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4a8c-0175-1000-5509-96ccd6f31219","parent":{"ref":"EID6eea4a33-0175-1000-1124-b034f391038c"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4a8c-0175-1000-bb1c-66dfe1344dc6","parent":{"ref":"EID6eea4a33-0175-1000-1124-b034f391038c"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4a8c-0175-1000-fa9e-2c8beb242973","parent":{"ref":"EID6eea4a33-0175-1000-1124-b034f391038c"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8215f03e-b69e-446c-a66c-da226f9eb749"},{"ref":"EIDeff2977c-0cfb-4783-a8f8-006d1fa400fa"},{"ref":"EID9057c855-6071-47e7-9386-89aafb475993"}]},"parent":{"ref":"EID6eea4a33-0175-1000-8916-f8ed652d4e35"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:14:09Z","duration":21,"status":"PASSED"},{"id":"EID6eea4a8c-0175-1000-b426-ce34267060e0","attachments":{"attachment":{"ref":"EID2a8c09c1-99a3-4038-bc11-9e6e3d333cf6"}},"parent":{"ref":"EID6eea4a33-0175-1000-8916-f8ed652d4e35"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:14:09Z","duration":2,"status":"PASSED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:14:09Z","duration":104,"status":"PASSED"},{"id":"EID6eea4a9b-0175-1000-161b-c6e60f1cfd7f","testStepResults":{"TestStepResult":[{"id":"EID6eea4a9b-0175-1000-e3b6-d5f7b60a2d5f","parent":{"ref":"EID6eea4a9b-0175-1000-161b-c6e60f1cfd7f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:14:09Z","duration":223,"status":"PASSED"},{"id":"EID6eea4a9b-0175-1000-1d8c-0013bfbae6f5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4b4d-0175-1000-b056-8b459c0fb895","parent":{"ref":"EID6eea4a9b-0175-1000-1d8c-0013bfbae6f5"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4b4d-0175-1000-7f90-cec91d3cc0d2","parent":{"ref":"EID6eea4a9b-0175-1000-1d8c-0013bfbae6f5"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4b4d-0175-1000-f062-90a4f5fc3522","parent":{"ref":"EID6eea4a9b-0175-1000-1d8c-0013bfbae6f5"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4b4d-0175-1000-ca79-8e621c861e7b","parent":{"ref":"EID6eea4a9b-0175-1000-1d8c-0013bfbae6f5"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb4195604-f8ab-49a8-b69b-1c6351c0b075"},{"ref":"EID671eb11a-5b1d-4517-8ded-7bcf7cd8fbdb"},{"ref":"EID4594907c-0622-4241-8fa2-9c821bc7d3a0"}]},"parent":{"ref":"EID6eea4a9b-0175-1000-161b-c6e60f1cfd7f"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:14:09Z","duration":87,"status":"PASSED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:14:09Z","duration":185,"status":"PASSED"},{"id":"EID6eea4b54-0175-1000-677c-835664e69fbd","testStepResults":{"TestStepResult":[{"id":"EID6eea4b54-0175-1000-a7a3-d65ac7dd4028","parent":{"ref":"EID6eea4b54-0175-1000-677c-835664e69fbd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:14:09Z","duration":223,"status":"PASSED"},{"id":"EID6eea4b54-0175-1000-052d-e1edfc76e434","parent":{"ref":"EID6eea4b54-0175-1000-677c-835664e69fbd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:14:09Z","duration":0,"status":"PASSED"},{"id":"EID6eea4b54-0175-1000-70cd-d5048669697f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4c13-0175-1000-eeba-48245299ceb1","parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c13-0175-1000-ed27-2174dded7e7f","parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c13-0175-1000-feb9-13ec64ac4d3e","parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c13-0175-1000-9f48-38be83950a9f","parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c13-0175-1000-edfb-c7c47b5ac58a","parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c13-0175-1000-7b08-1a6385681636","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"FAILED"},{"id":"EID6eea4c13-0175-1000-7bc7-be4c06f982ed","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eea4b54-0175-1000-70cd-d5048669697f"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3f57a70b-47a9-4a40-a313-d9184f1b7d76"},{"ref":"EID9fad6cf6-e421-448a-b587-e5b2e0fa888f"},{"ref":"EIDde078a82-5aaa-4a47-9891-ab6ab77f77ef"}]},"parent":{"ref":"EID6eea4b54-0175-1000-677c-835664e69fbd"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:14:09Z","duration":92,"status":"FAILED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:14:09Z","duration":191,"status":"FAILED"},{"id":"EID6eea4c14-0175-1000-0daa-b808305c6e1d","testStepResults":{"TestStepResult":[{"id":"EID6eea4c14-0175-1000-2cbf-031bd6e780a9","parent":{"ref":"EID6eea4c14-0175-1000-0daa-b808305c6e1d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:14:10Z","duration":223,"status":"PASSED"},{"id":"EID6eea4c14-0175-1000-435a-2c684d414192","parent":{"ref":"EID6eea4c14-0175-1000-0daa-b808305c6e1d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4c21-0175-1000-313d-64d0cfdd1472","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea4cd4-0175-1000-5d87-ed89bb2c3a5f","parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4cd4-0175-1000-a2ac-1468e31c3d2f","parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4cd4-0175-1000-2df2-6e350edd733a","parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4cd4-0175-1000-0c9f-65d00b909a02","parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4cd4-0175-1000-c4de-e2a31601f06f","parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"PASSED"},{"id":"EID6eea4cd4-0175-1000-77b7-85ba4a494d85","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6eea4c21-0175-1000-313d-64d0cfdd1472"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:14:10Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID643fda36-9c0e-46fa-ac98-84c5dbd63973"},{"ref":"EIDbb1e5738-3bf0-49a8-beb4-afde49890623"},{"ref":"EID8bc9f350-1ff9-473d-96ca-06b5b4aa0968"}]},"parent":{"ref":"EID6eea4c14-0175-1000-0daa-b808305c6e1d"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:14:10Z","duration":80,"status":"FAILED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:14:10Z","duration":192,"status":"FAILED"},{"id":"EID6eea4cd5-0175-1000-edde-1c7431927ebc","testStepResults":{"TestStepResult":[{"id":"EID6eea4cd5-0175-1000-5276-38b351975157","parent":{"ref":"EID6eea4cd5-0175-1000-edde-1c7431927ebc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:14:10Z","duration":223,"status":"PASSED"},{"id":"EID6eea4cd5-0175-1000-c06e-b1e5d6071c7b","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID0281cf71-e721-4c5e-bfe1-73108eff1939"},{"ref":"EIDf8f3723c-4d31-4665-83b4-7b2789b8bc0e"},{"ref":"EID8b41003e-863f-413b-b788-ccaa1fedaa78"},{"ref":"EID5ad2ce27-2e52-4bd0-955f-1a91fbeabb8e"},{"ref":"EID9be059c5-8525-48bd-8aea-256d9708b291"},{"ref":"EIDea0a9d1c-0ef3-48f2-a826-911ad20142e3"},{"ref":"EID0f1a8cc9-4367-415f-a9fa-69f5666730da"},{"ref":"EIDaad5b1a4-5660-40fa-96f8-e65c8c8cf0fd"},{"ref":"EID3f892b61-85a3-45b0-b35a-0f42af933c5f"},{"ref":"EIDac239882-640f-4979-bb94-4b9c1d456c6a"},{"ref":"EID1fc6af09-1924-43b5-8cb5-c2d9ad5e6e13"},{"ref":"EID7c35dad4-e6aa-43d2-8bb8-f820329208c9"},{"ref":"EIDa1cc4fa2-b348-43cb-bd3a-1cdf48f88877"},{"ref":"EID376150b6-fadf-4df8-9e21-0c40f80ba57d"},{"ref":"EID1fbd60e5-c988-4790-8a90-c250ea1aede7"}]},"parent":{"ref":"EID6eea4cd5-0175-1000-edde-1c7431927ebc"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:14:10Z","duration":490,"status":"SKIPPED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:14:10Z","duration":852,"status":"SKIPPED"},{"id":"EID6eea5029-0175-1000-5cc8-f773d9befdd6","testStepResults":{"TestStepResult":[{"id":"EID6eea5029-0175-1000-503d-e442f0f55106","parent":{"ref":"EID6eea5029-0175-1000-5cc8-f773d9befdd6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:14:11Z","duration":223,"status":"PASSED"},{"id":"EID6eea5029-0175-1000-7727-fc7693d3ca2d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea510f-0175-1000-feeb-f999ec321656","parent":{"ref":"EID6eea5029-0175-1000-7727-fc7693d3ca2d"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea510f-0175-1000-0b20-16cbb3418890","parent":{"ref":"EID6eea5029-0175-1000-7727-fc7693d3ca2d"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea510f-0175-1000-de4f-fdb0dcf638ed","parent":{"ref":"EID6eea5029-0175-1000-7727-fc7693d3ca2d"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea510f-0175-1000-ea26-562cf4f6a2c6","parent":{"ref":"EID6eea5029-0175-1000-7727-fc7693d3ca2d"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5d5631b3-5429-457e-995c-9737a42e1d7a"},{"ref":"EID3b01bb7e-bb71-4176-baa6-38a4fde818e2"},{"ref":"EID67af214c-2033-41ed-98d0-aed6d58aaefc"}]},"parent":{"ref":"EID6eea5029-0175-1000-5cc8-f773d9befdd6"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:14:11Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:14:11Z","duration":230,"status":"PASSED"},{"id":"EID6eea5110-0175-1000-f182-1e389c0e51f6","testStepResults":{"TestStepResult":[{"id":"EID6eea5110-0175-1000-85f1-e44f88571ae7","parent":{"ref":"EID6eea5110-0175-1000-f182-1e389c0e51f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:14:11Z","duration":223,"status":"PASSED"},{"id":"EID6eea5110-0175-1000-5bb3-1642e90dbfa9","parent":{"ref":"EID6eea5110-0175-1000-f182-1e389c0e51f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea5110-0175-1000-6c89-9f7bf2585467","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea51ae-0175-1000-d14a-5cf2d80e3ff4","parent":{"ref":"EID6eea5110-0175-1000-6c89-9f7bf2585467"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51ae-0175-1000-eef8-4a5edaa1e952","parent":{"ref":"EID6eea5110-0175-1000-6c89-9f7bf2585467"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51ae-0175-1000-012c-0b7205fc1157","parent":{"ref":"EID6eea5110-0175-1000-6c89-9f7bf2585467"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51ae-0175-1000-d573-651d1d900fd8","parent":{"ref":"EID6eea5110-0175-1000-6c89-9f7bf2585467"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe9406487-ef48-4a43-81fa-c36b4dc7c65e"},{"ref":"EIDf5022339-5644-4bc9-a3ed-9ae8b2b10f4e"},{"ref":"EID6a8a475e-80e5-4cb7-b21f-c8ff7548ba98"}]},"parent":{"ref":"EID6eea5110-0175-1000-f182-1e389c0e51f6"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:14:11Z","duration":78,"status":"PASSED"},{"id":"EID6eea51ae-0175-1000-74a2-ae28f508be0f","attachments":{"attachment":{"ref":"EID62b13337-1ba6-496c-9376-3a7e3196001b"}},"parent":{"ref":"EID6eea5110-0175-1000-f182-1e389c0e51f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51ba-0175-1000-5bee-03abb0b8540c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea51c8-0175-1000-5378-752b6fdcf576","parent":{"ref":"EID6eea51ba-0175-1000-5bee-03abb0b8540c"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51c8-0175-1000-57d2-355e1a59a9e8","parent":{"ref":"EID6eea51ba-0175-1000-5bee-03abb0b8540c"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"},{"id":"EID6eea51c8-0175-1000-028e-77f278c417a9","parent":{"ref":"EID6eea51ba-0175-1000-5bee-03abb0b8540c"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe230ee5f-e59f-4ba4-ae0b-b769916c4b80"},{"ref":"EIDc3b0640f-a339-49d1-97c3-e99743c50837"}]},"parent":{"ref":"EID6eea5110-0175-1000-f182-1e389c0e51f6"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:14:11Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6eea4a33-0175-1000-b5ee-f80f1d3550ea"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:14:11Z","duration":184,"status":"PASSED"}]},"parent":{"ref":"EID5fb7ed66-f444-459a-a06d-85cbe51eafd7"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:14:09Z","duration":1941,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID808e2066-f919-408b-ac9d-bcbc173f7117","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID808e2066-f919-408b-ac9d-bcbc173f7117"}},{"type":"ServiceEndpoint","id":"EIDe6613234-1896-4f7d-9d5d-d9d0f9b46ee4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDf8f3723c-4d31-4665-83b4-7b2789b8bc0e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDf8f3723c-4d31-4665-83b4-7b2789b8bc0e"}},{"type":"ServiceResponse","id":"EID9b4943a0-f709-4b46-b751-480f4cf527cf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9b4943a0-f709-4b46-b751-480f4cf527cf"}},{"type":"ServiceEndpoint","id":"EID28b73eac-93a2-41d9-816d-8a3a0faf8a7c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID0319a1a5-6cd5-43e4-8d39-ff88ef27d755","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDa70c72f2-ad1f-46ab-b2ec-83448fe77003","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID1c02b1dc-7b78-44c8-8569-075669f7e2c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDc8756e75-8df2-4d13-8c59-b4f365967809","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDc8756e75-8df2-4d13-8c59-b4f365967809"}},{"type":"Message","id":"EID1fc6af09-1924-43b5-8cb5-c2d9ad5e6e13","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID1fc6af09-1924-43b5-8cb5-c2d9ad5e6e13"}},{"type":"Message","id":"EID5bd322f5-9441-44d0-9268-5ec3c5c56e3f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5bd322f5-9441-44d0-9268-5ec3c5c56e3f"}},{"type":"GetParameter","id":"EID16539463-266f-4b2b-a334-598dd81050cd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EIDdac1a31c-0c00-418d-9528-0be47e367d46","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDdac1a31c-0c00-418d-9528-0be47e367d46"}},{"type":"ServiceResponse","id":"EID20e66acb-7380-4969-902d-17c18d90b576","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID20e66acb-7380-4969-902d-17c18d90b576"}},{"type":"ServiceResponse","id":"EID7bb24651-a831-4621-b403-9015149f4ea8","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7bb24651-a831-4621-b403-9015149f4ea8"}},{"type":"ServiceEndpoint","id":"EIDf18cd14e-41e6-4f3b-8163-25eec0200fce","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID06438ae0-61b0-4c23-a87b-d84528a9145a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EID2b594008-3d1c-43d1-826e-f4dd15245a95","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID7d92bfe5-8ab7-4b1a-8ba4-369d308afd42","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7d92bfe5-8ab7-4b1a-8ba4-369d308afd42"}},{"type":"Message","id":"EID6483b97c-9829-4294-b6ac-90838f5b3a02","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID6483b97c-9829-4294-b6ac-90838f5b3a02"}},{"type":"GetParameter","id":"EID1b969492-771f-4e19-8ec8-2bb0f371abcc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID83305a17-1df8-4bc5-9c02-7988faf594c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID5e2906e2-422b-4195-8d0d-c77e059ff442","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID697c9395-79ab-49be-a0fb-479ce131b892","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDfc5a483f-5e83-4bd9-984d-6ec7bbcc7b17","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EID47ade967-34c3-4557-9671-7b41834c3209","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID47ade967-34c3-4557-9671-7b41834c3209"}},{"type":"GetParameter","id":"EID827e84ef-989e-4120-8135-8517af4679bf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID14729103-8ae6-4a2c-92cb-c57d54a7ab1c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID14729103-8ae6-4a2c-92cb-c57d54a7ab1c"}},{"type":"ServiceResponse","id":"EIDaaf9a24d-fb94-4dae-8e50-94a93d89019d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDaaf9a24d-fb94-4dae-8e50-94a93d89019d"}},{"type":"ServiceEndpoint","id":"EID3f57a70b-47a9-4a40-a313-d9184f1b7d76","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID21a448ec-5824-406e-ae2b-3d4a02f14223","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID21a448ec-5824-406e-ae2b-3d4a02f14223"}},{"type":"ServiceResponse","id":"EIDa80b87aa-3e52-4abb-8b69-65e8af527097","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDa80b87aa-3e52-4abb-8b69-65e8af527097"}},{"type":"ServiceEndpoint","id":"EID6a968ff0-78c6-4fd3-9d86-0b104183ad9f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDe8c126d0-a132-48d3-9d30-7af8e3560f4c","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDe8c126d0-a132-48d3-9d30-7af8e3560f4c"}},{"type":"GetParameter","id":"EID31d4d621-2f4a-4f19-aec0-4630102ba090","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"GetParameter","id":"EID3899e9ce-a98d-4768-a82c-e472f31a24d6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID5d5631b3-5429-457e-995c-9737a42e1d7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDf7ba2f8b-ada1-4bd5-b366-55d73d329cd2","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDf7ba2f8b-ada1-4bd5-b366-55d73d329cd2"}},{"type":"GetParameter","id":"EID72050a9e-d88d-412c-a9c3-8556a90cfe57","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID00d9bda0-dadc-4e40-b0da-4238389098c1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID5404588f-05d3-4508-a7ca-a8836d0ce3de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID57d862e1-fd70-4d3d-b092-29aec72e543a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"Message","id":"EID73b47052-2f59-4c33-b8cf-3835a63a746b","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID73b47052-2f59-4c33-b8cf-3835a63a746b"}},{"type":"ServiceEndpoint","id":"EID8215f03e-b69e-446c-a66c-da226f9eb749","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID84d48706-5115-4729-b490-56183e1f0948","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID84d48706-5115-4729-b490-56183e1f0948"}},{"type":"GetParameter","id":"EID4a957987-be3c-4905-80fa-cc272717d3c9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID6a345515-19f7-48b4-93da-ba9d17ac439d","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID6a345515-19f7-48b4-93da-ba9d17ac439d"}},{"type":"Message","id":"EID73d75313-eeb0-4e87-987c-2b767162ce60","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID73d75313-eeb0-4e87-987c-2b767162ce60"}},{"type":"ServiceResponse","id":"EID671eb11a-5b1d-4517-8ded-7bcf7cd8fbdb","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID671eb11a-5b1d-4517-8ded-7bcf7cd8fbdb"}},{"type":"ServiceResponse","id":"EID3aa6b1d7-780d-43d8-8860-cbd3a116aab4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID3aa6b1d7-780d-43d8-8860-cbd3a116aab4"}},{"type":"Message","id":"EID4c2d6e49-772d-4997-a365-41fa1ab06ff5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID4c2d6e49-772d-4997-a365-41fa1ab06ff5"}},{"type":"ServiceEndpoint","id":"EID916a7c2c-5990-49b7-af9c-0fed93c9b425","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EIDca3ab689-417e-4f8b-a760-2084d45d5016","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDf2e32745-a046-4351-9dad-2dc74a6e3b4e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID553c13bf-3c9d-4358-bb97-9a1c27c231b7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDcb8e8839-a114-41c6-958a-94370d8343ba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID09d95701-367b-4786-831c-c8ed3564295a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDb293ba8d-0cf5-4404-b5a3-ea487edb3af6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9kb3dubG9hZHMvaHlkcm9ncmFmaWUuemlw"},{"type":"GetParameter","id":"EIDbfb169b7-a023-4890-83fe-d8861fee4896","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"Message","id":"EID60db141b-f310-4e23-8d02-2b8c49c042f8","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID60db141b-f310-4e23-8d02-2b8c49c042f8"}},{"type":"ServiceEndpoint","id":"EID0884d971-7ba3-4221-998d-799deb40097f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EID00b868dc-8cb3-4a1f-b813-cbb043f0b80d","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID00b868dc-8cb3-4a1f-b813-cbb043f0b80d"}},{"type":"Message","id":"EIDba6c2f78-ea4f-4cb5-8c9a-024543b14081","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDba6c2f78-ea4f-4cb5-8c9a-024543b14081"}},{"type":"ServiceEndpoint","id":"EID46ce6415-7804-4aa4-b41a-5d6aa272fc6d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID9f7a41ff-9b55-4ab7-abf8-b8fd083a4d98","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9f7a41ff-9b55-4ab7-abf8-b8fd083a4d98"}},{"type":"GetParameter","id":"EID00f25cad-3d9b-45fb-a1d1-e54953b08a25","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID04667ee6-a631-429f-842f-a33e7fb75d71","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID04667ee6-a631-429f-842f-a33e7fb75d71"}},{"type":"ServiceResponse","id":"EID2a5ca580-18bd-4c35-968c-70ffbc41f554","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID2a5ca580-18bd-4c35-968c-70ffbc41f554"}},{"type":"Message","id":"EID3fd1da8a-b4cf-46aa-90d2-8547ae3e632d","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID3fd1da8a-b4cf-46aa-90d2-8547ae3e632d"}},{"type":"Message","id":"EID5ad2ce27-2e52-4bd0-955f-1a91fbeabb8e","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5ad2ce27-2e52-4bd0-955f-1a91fbeabb8e"}},{"type":"ServiceEndpoint","id":"EID1cdc2cf5-64f0-4bb9-8901-b42841e92a05","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EIDd8045bc3-2f40-4493-84af-f52929fa2795","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EIDfb914a2c-0185-4740-8b8d-1278ca3d0b5a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDfb914a2c-0185-4740-8b8d-1278ca3d0b5a"}},{"type":"ServiceEndpoint","id":"EIDb4195604-f8ab-49a8-b69b-1c6351c0b075","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID1fbd60e5-c988-4790-8a90-c250ea1aede7","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID1fbd60e5-c988-4790-8a90-c250ea1aede7"}},{"type":"ServiceResponse","id":"EIDeff2977c-0cfb-4783-a8f8-006d1fa400fa","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDeff2977c-0cfb-4783-a8f8-006d1fa400fa"}},{"type":"ServiceResponse","id":"EIDa4fc3297-f459-4204-a15b-5753e70282c7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDa4fc3297-f459-4204-a15b-5753e70282c7"}},{"type":"ServiceResponse","id":"EID1a83bdaf-d96e-433b-9711-874fe8dd1b7a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID1a83bdaf-d96e-433b-9711-874fe8dd1b7a"}},{"type":"ServiceEndpoint","id":"EID74140003-fd29-4ba3-9aa7-9fc2fe03ba69","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID4169c3f6-c94e-469a-a776-374ac539dcf8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID4169c3f6-c94e-469a-a776-374ac539dcf8"}},{"type":"Message","id":"EIDdc9f0529-0c3c-4aed-9cf6-39446ad94c69","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDdc9f0529-0c3c-4aed-9cf6-39446ad94c69"}},{"type":"ServiceResponse","id":"EIDea3c8c18-b50d-4811-95d3-765c8f689788","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDea3c8c18-b50d-4811-95d3-765c8f689788"}},{"type":"Message","id":"EID82eab4b9-b85a-4bd1-b598-28d222511993","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID82eab4b9-b85a-4bd1-b598-28d222511993"}},{"type":"Message","id":"EID50fffebd-9dfd-4008-9065-733bd5063345","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID50fffebd-9dfd-4008-9065-733bd5063345"}},{"type":"GetParameter","id":"EID484e6e52-05b6-41fb-9b45-29c59163d064","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"Message","id":"EIDac239882-640f-4979-bb94-4b9c1d456c6a","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDac239882-640f-4979-bb94-4b9c1d456c6a"}},{"type":"ServiceResponse","id":"EIDd43ae4db-c41e-4c20-a57d-e07dd51a3918","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDd43ae4db-c41e-4c20-a57d-e07dd51a3918"}},{"type":"Message","id":"EID94de6bfd-04d0-4803-b329-a0a2b02de0e7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID94de6bfd-04d0-4803-b329-a0a2b02de0e7"}},{"type":"Message","id":"EID9b1a85ab-9813-491e-acd6-524889d67e97","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9b1a85ab-9813-491e-acd6-524889d67e97"}},{"type":"ServiceResponse","id":"EID506ab03c-e6b0-4c55-ae3a-cb895c6e3a91","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID506ab03c-e6b0-4c55-ae3a-cb895c6e3a91"}},{"type":"ServiceResponse","id":"EID417d2d42-bbe9-4c65-bde7-e892353aac68","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID417d2d42-bbe9-4c65-bde7-e892353aac68"}},{"type":"ServiceResponse","id":"EIDf45621af-a788-4567-b266-47a3ea98763d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDf45621af-a788-4567-b266-47a3ea98763d"}},{"type":"ServiceResponse","id":"EID3b01bb7e-bb71-4176-baa6-38a4fde818e2","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID3b01bb7e-bb71-4176-baa6-38a4fde818e2"}},{"type":"ServiceResponse","id":"EID8eb7ef04-f67f-47ba-82d5-6df031545036","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID8eb7ef04-f67f-47ba-82d5-6df031545036"}},{"type":"ServiceEndpoint","id":"EID707e911e-1231-4acf-98d2-fd295a72c00b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L2Nzdw=="},{"type":"ServiceResponse","id":"EIDba64d498-f21b-4f64-acfc-2718ba10389d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDba64d498-f21b-4f64-acfc-2718ba10389d"}},{"type":"Message","id":"EIDea0a9d1c-0ef3-48f2-a826-911ad20142e3","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDea0a9d1c-0ef3-48f2-a826-911ad20142e3"}},{"type":"ServiceResponse","id":"EIDa8015892-f470-464d-b4cf-4386564415bf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDa8015892-f470-464d-b4cf-4386564415bf"}},{"type":"GetParameter","id":"EID0881435a-c732-438d-a939-8715a4bf0a32","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID9fd16b6d-57a9-4040-8956-52cb806c519e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9fd16b6d-57a9-4040-8956-52cb806c519e"}},{"type":"GetParameter","id":"EIDed6465d8-6ac9-4164-8f9f-a58394f09b99","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EIDbb1e5738-3bf0-49a8-beb4-afde49890623","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDbb1e5738-3bf0-49a8-beb4-afde49890623"}},{"type":"ServiceEndpoint","id":"EIDdb9427e7-b34a-47c2-ae4a-581103fb68b0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID48f24335-e513-4a33-856a-950eb1fdeea0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID27b273d5-3b8f-421e-ae4c-2e2b915f5b49","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID27b273d5-3b8f-421e-ae4c-2e2b915f5b49"}},{"type":"GetParameter","id":"EIDe594ef5e-6c14-45c2-95b8-f5dd70291e63","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID7c35dad4-e6aa-43d2-8bb8-f820329208c9","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7c35dad4-e6aa-43d2-8bb8-f820329208c9"}},{"type":"Message","id":"EIDa58d5438-dd54-452d-9af6-24160aed15c9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDa58d5438-dd54-452d-9af6-24160aed15c9"}},{"type":"Message","id":"EID0281cf71-e721-4c5e-bfe1-73108eff1939","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID0281cf71-e721-4c5e-bfe1-73108eff1939"}},{"type":"Message","id":"EID1976fa29-9a2d-4136-83d5-44735c764679","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID1976fa29-9a2d-4136-83d5-44735c764679"}},{"type":"Message","id":"EID719c4043-2c35-4850-8157-227783af02a6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID719c4043-2c35-4850-8157-227783af02a6"}},{"type":"ServiceEndpoint","id":"EID56a5b45f-2d10-487c-8d5d-b70e0f1624dc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID38ba6c2e-746b-4397-827c-f98a3b20005f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID38ba6c2e-746b-4397-827c-f98a3b20005f"}},{"type":"Message","id":"EID5d95de88-ca4d-43ac-8e72-460a26421875","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5d95de88-ca4d-43ac-8e72-460a26421875"}},{"type":"ServiceResponse","id":"EID01578ef3-0159-4421-b9a9-8d153bd46063","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID01578ef3-0159-4421-b9a9-8d153bd46063"}},{"type":"Message","id":"EID14c4fb38-68bb-47d6-a3af-fccb693bae5b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID14c4fb38-68bb-47d6-a3af-fccb693bae5b"}},{"type":"Message","id":"EID0f1a8cc9-4367-415f-a9fa-69f5666730da","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID0f1a8cc9-4367-415f-a9fa-69f5666730da"}},{"type":"ServiceEndpoint","id":"EID9bda34bd-4be5-4a3a-9d34-cd4f2856e8f5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EIDb84a931d-4ae2-43ee-94cf-39da48319c7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID6933abe1-7e42-4988-b8b8-97b2805b2154","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDbdaee47d-ec2f-40eb-9535-fe27422f73d0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDbdaee47d-ec2f-40eb-9535-fe27422f73d0"}},{"type":"ServiceResponse","id":"EID5fadcc86-24de-4b80-850b-d8889c9b8eb8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5fadcc86-24de-4b80-850b-d8889c9b8eb8"}},{"type":"Message","id":"EID9857c643-6ba3-4b04-ba51-d307df2d7440","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9857c643-6ba3-4b04-ba51-d307df2d7440"}},{"type":"GetParameter","id":"EID2cbf265d-9214-4fc1-bf84-b1ee5fc03f54","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDa5bf71ac-7e04-47ff-b9de-5ddef1f7544e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EIDe9406487-ef48-4a43-81fa-c36b4dc7c65e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EIDd93da728-79b2-41bd-922b-b8fc12872edd","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDd93da728-79b2-41bd-922b-b8fc12872edd"}},{"type":"GetParameter","id":"EID83f9f4b6-c91b-4b1c-9fd5-6cfcb68cfad4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID9485b135-e3d8-4e05-93c2-adf2808beb3c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID9f1722f9-c63e-4598-803f-660192d0a91b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"LogFile","id":"EIDb7dbc243-d878-4426-b43f-4ab7eb5c8536","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDb7dbc243-d878-4426-b43f-4ab7eb5c8536"}},{"type":"Message","id":"EIDc87c50df-fb57-476e-9542-9956cd24c6eb","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDc87c50df-fb57-476e-9542-9956cd24c6eb"}},{"type":"ServiceResponse","id":"EID3471d03e-b855-42e1-85c7-d987f1bfcb0f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID3471d03e-b855-42e1-85c7-d987f1bfcb0f"}},{"type":"Message","id":"EIDf9fa776c-f6b9-455f-b4dc-265f77ccc71f","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDf9fa776c-f6b9-455f-b4dc-265f77ccc71f"}},{"type":"ServiceEndpoint","id":"EID643fda36-9c0e-46fa-ac98-84c5dbd63973","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID940c00ad-dfa9-4038-be25-39d6ab3f4cb1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID380a711d-ff21-4063-9e98-f8c68bc98276","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID9be059c5-8525-48bd-8aea-256d9708b291","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9be059c5-8525-48bd-8aea-256d9708b291"}},{"type":"ServiceEndpoint","id":"EID0fd2b36c-6b07-4457-9ced-70390c3fd082","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID5f69857d-3c86-4078-8624-839c34a16426","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5f69857d-3c86-4078-8624-839c34a16426"}},{"type":"ServiceEndpoint","id":"EID86148f55-09da-48c5-8cf6-802a364b8ab2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID7dd80eaf-aaa7-4ed4-8c21-8bf5a34abb32","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7dd80eaf-aaa7-4ed4-8c21-8bf5a34abb32"}},{"type":"ServiceEndpoint","id":"EID7e79785f-2719-4ae4-a278-9a26a657e114","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EIDbb10c9b8-3276-4e15-b970-80c55a1b10ea","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDbb10c9b8-3276-4e15-b970-80c55a1b10ea"}},{"type":"GetParameter","id":"EID67af214c-2033-41ed-98d0-aed6d58aaefc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDccfc3a00-a99e-4ffe-a2db-9601290cc44a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID5332ebe9-6ebd-4998-a617-c761e1428df9","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5332ebe9-6ebd-4998-a617-c761e1428df9"}},{"type":"ServiceEndpoint","id":"EID48e88261-1065-4872-8d69-be24dd112702","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDd910cf3b-9e8d-43c5-a014-4bac36fdc0d1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDc3b0640f-a339-49d1-97c3-e99743c50837","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"GetParameter","id":"EID8bc9f350-1ff9-473d-96ca-06b5b4aa0968","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID6a8a475e-80e5-4cb7-b21f-c8ff7548ba98","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EIDde078a82-5aaa-4a47-9891-ab6ab77f77ef","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EID0a379c91-79e5-4021-951b-051c7fbd2094","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID0a379c91-79e5-4021-951b-051c7fbd2094"}},{"type":"Message","id":"EID62b13337-1ba6-496c-9376-3a7e3196001b","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID62b13337-1ba6-496c-9376-3a7e3196001b"}},{"type":"ServiceEndpoint","id":"EID89ce5c1e-96ba-4095-8c31-459d06d49fc6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID4594907c-0622-4241-8fa2-9c821bc7d3a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC8xNWMzYzMwZi0wZGIyLTRiM2ItODBmNi1iOTkwYzhmYzgyMjUvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EID40833975-e080-4050-a858-536de64b3852","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"Message","id":"EID339dfd1c-981d-421b-b1bd-d136629ffdf4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID339dfd1c-981d-421b-b1bd-d136629ffdf4"}},{"type":"GetParameter","id":"EID8fbff508-b82d-4ae9-b290-7b418200fdf7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EIDf90d3fe2-de89-416a-b669-6f8516ac0866","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EID7621e53b-614f-4348-a338-6d136465308f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7621e53b-614f-4348-a338-6d136465308f"}},{"type":"Message","id":"EID376150b6-fadf-4df8-9e21-0c40f80ba57d","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID376150b6-fadf-4df8-9e21-0c40f80ba57d"}},{"type":"ServiceResponse","id":"EIDf5022339-5644-4bc9-a3ed-9ae8b2b10f4e","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDf5022339-5644-4bc9-a3ed-9ae8b2b10f4e"}},{"type":"ServiceEndpoint","id":"EIDe79d5d68-f8e4-4c90-a915-587c53947e00","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDb4e274dd-0dc1-4606-8193-000830c637ec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID7f2b871d-f93d-4452-b5c3-ad4d53fe1787","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID7f2b871d-f93d-4452-b5c3-ad4d53fe1787"}},{"type":"Message","id":"EIDa1cc4fa2-b348-43cb-bd3a-1cdf48f88877","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDa1cc4fa2-b348-43cb-bd3a-1cdf48f88877"}},{"type":"GetParameter","id":"EID40f9b1df-db81-4539-8312-ce59a4edd722","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceResponse","id":"EIDab9e16f7-1bde-4b2e-9afc-dfd409f053f0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDab9e16f7-1bde-4b2e-9afc-dfd409f053f0"}},{"type":"Message","id":"EID5a77312d-9014-4c79-93ef-4685feb3ed75","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5a77312d-9014-4c79-93ef-4685feb3ed75"}},{"type":"GetParameter","id":"EIDbd9dddb5-c8b0-456a-ae0d-818529ee2163","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID8c75adef-e65a-4106-8a96-c175da7a2e7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDa42bbeb7-f93e-4e0f-81d8-f58bd975e817","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDe230ee5f-e59f-4ba4-ae0b-b769916c4b80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDbece2d7b-2681-450a-8c11-e6d799478f71","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDbece2d7b-2681-450a-8c11-e6d799478f71"}},{"type":"Message","id":"EID3f892b61-85a3-45b0-b35a-0f42af933c5f","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID3f892b61-85a3-45b0-b35a-0f42af933c5f"}},{"type":"ServiceResponse","id":"EIDe6c3445e-da65-4857-8090-cece77dee53f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDe6c3445e-da65-4857-8090-cece77dee53f"}},{"type":"ServiceEndpoint","id":"EID1040d482-8855-4ddb-a9c0-59f99c88c56b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EIDfe1bb3f7-c788-45f7-8fa1-c6de6533f7f2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"Message","id":"EID8b41003e-863f-413b-b788-ccaa1fedaa78","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID8b41003e-863f-413b-b788-ccaa1fedaa78"}},{"type":"Message","id":"EID9dcb58e4-2735-4b63-9631-dbd467c93a71","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9dcb58e4-2735-4b63-9631-dbd467c93a71"}},{"type":"ServiceEndpoint","id":"EIDf021a5a3-9295-417b-9a11-6a0d68b701fc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"Message","id":"EIDaad5b1a4-5660-40fa-96f8-e65c8c8cf0fd","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EIDaad5b1a4-5660-40fa-96f8-e65c8c8cf0fd"}},{"type":"ServiceResponse","id":"EID2b9e43b2-23ce-4095-9704-fae286e534e1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID2b9e43b2-23ce-4095-9704-fae286e534e1"}},{"type":"Message","id":"EID1fb64c52-e8a2-46c9-9652-b5af89152d93","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID1fb64c52-e8a2-46c9-9652-b5af89152d93"}},{"type":"ServiceEndpoint","id":"EIDf6a2a6ee-bb84-4672-9433-ee223bd88b02","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EID6ce2fdb8-3e88-45d4-9d77-cc4be49cb2a9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID3cb531a3-afa4-49a5-bcef-3131853031ec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID9fcde150-e7b6-4ccf-a8c3-d05c47c37c06","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9fcde150-e7b6-4ccf-a8c3-d05c47c37c06"}},{"type":"Message","id":"EID2a8c09c1-99a3-4038-bc11-9e6e3d333cf6","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID2a8c09c1-99a3-4038-bc11-9e6e3d333cf6"}},{"type":"ServiceResponse","id":"EID5bdd0501-2b4d-400e-9c5b-a3322e34bc7f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5bdd0501-2b4d-400e-9c5b-a3322e34bc7f"}},{"type":"ServiceEndpoint","id":"EID85c16dd9-9346-4242-bc01-57e55c7a9bc3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EIDde4fa64b-37ba-46a8-b2f3-64b227fc8c64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDc26577c0-1273-4561-8192-48751307da01","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"ServiceEndpoint","id":"EIDff8fda02-2d27-46a7-a02c-ec28a27222ab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID4a0791f3-c07e-44fa-b33e-4994bedb1fa4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID69abd9c3-6111-485b-ad78-23453fb9e9c8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID5d58ef4a-0980-4735-9681-9d6d57899fa6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID5d58ef4a-0980-4735-9681-9d6d57899fa6"}},{"type":"ServiceEndpoint","id":"EIDcafd4893-b6ae-4254-ab7b-e398d0f7a903","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EID9057c855-6071-47e7-9386-89aafb475993","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID4c628d05-49bc-45b1-a5c6-a4127157d44e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID4c628d05-49bc-45b1-a5c6-a4127157d44e"}},{"type":"GetParameter","id":"EID98199a60-1a34-4249-989c-7669e5854188","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"GetParameter","id":"EIDf7faf670-16d1-4119-9bd9-0870bcfaab92","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EID44824f22-8b3b-477e-9551-6fd8fe84b573","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="},{"type":"GetParameter","id":"EIDd8d06608-6350-45c3-bda6-14019ed67504","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EID816ddded-8fdb-427e-83a5-c246600d13cf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9kb3dubG9hZHMvaHlkcm9ncmFmaWUuemlw"},{"type":"ServiceResponse","id":"EID55ea2f18-1456-4bd4-9381-691c0326684e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID55ea2f18-1456-4bd4-9381-691c0326684e"}},{"type":"ServiceResponse","id":"EID9fad6cf6-e421-448a-b587-e5b2e0fa888f","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID5fb7ed66-f444-459a-a06d-85cbe51eafd7/Attachments/EID9fad6cf6-e421-448a-b587-e5b2e0fa888f"}},{"type":"GetParameter","id":"EID1bb09fb0-8f90-41ba-8e05-484261f890f6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9zZXJ2aWNlLnBkb2submwvaHdoL2h5ZHJvZ3JhZmllL2F0b20vdjFfMC9oeWRyb2dyYWZpZS54bWw="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:14:01Z","duration":9900,"status":"FAILED"}}}}}
11:14:24.164 [print] EID4bd38577-95aa-4e2d-989c-a3abaea72003
11:14:24.165 [print] FAILED
11:14:24.165 [print] FAILED
11:14:24.166 [print] Conformance Class Download Service - Pre-defined Atom
11:14:24.166 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4bd38577-95aa-4e2d-989c-a3abaea72003.json
11:14:24.166 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/4bd38577-95aa-4e2d-989c-a3abaea72003.json
11:14:24.166 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID4bd38577-95aa-4e2d-989c-a3abaea72003/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:24.188 [print] [ "TR.missingLinkToRegistry", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:14:24.189 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingLinkToRegistry" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:29.616 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/schelpdierwater/wfs?request=GetCapabilities&service=WFS"}}}
11:14:29.617 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 294
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/schelpdierwater/wfs?request=GetCapabilities&service=WFS"}}}
11:14:31.379 response time in milliseconds: 1656.64
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:31 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883671209","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:31.379 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:06.388 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wfs?request=GetCapabilities"}}}
11:14:06.392 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/wijkenbuurten2018/wfs?request=GetCapabilities"}}}
11:14:08.019 response time in milliseconds: 1519.89
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:07 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883647848","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:08.019 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:11:29.969 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:11:29.969 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:11:35.605 response time in milliseconds: 4876.99
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:11:34 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:11:32 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/dfa03703-3a48-4733-8a29-b620ef4363f3.json","testRuns":{"TestRun":{"id":"EIDdfa03703-3a48-4733-8a29-b620ef4363f3","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:11:32.211Z","testTasks":{"TestTask":{"id":"EID61e1eef5-2a10-4d3e-9966-f8c63181973e","parent":{"ref":"EIDdfa03703-3a48-4733-8a29-b620ef4363f3"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDa046813e-5f29-47cf-b19b-2710a97728ef"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDa046813e-5f29-47cf-b19b-2710a97728ef","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:11:30.411Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:11:31.54Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:11:35.612 [print] EIDdfa03703-3a48-4733-8a29-b620ef4363f3
11:11:35.612 [print] UNDEFINED
11:11:35.612 [print] Conformance Class Download Service - Pre-defined Atom
11:11:35.613 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/dfa03703-3a48-4733-8a29-b620ef4363f3.json
11:11:35.613 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/log
11:11:35.613 [print] statuspath TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3
11:11:35.613 [print] progresspath TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
11:11:35.613 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:36.126 response time in milliseconds: 512.35
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:11:36 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)","28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:32 - Preparing 1 Test Task:","28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)","28.10.2020 11:11:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:32 - with parameters: ","28.10.2020 11:11:32 - etf.testcases = *","28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:32 - Setting state to CREATED","28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z","28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:34 - Project Properties: ","28.10.2020 11:11:34 - etf.testcases - * ","28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:34 - username - ","28.10.2020 11:11:34 - authUser - ","28.10.2020 11:11:34 - authMethod - basic ","28.10.2020 11:11:34 - TestRunTask initialized"]}
11:11:36.126 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)",
"28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:11:32 - Preparing 1 Test Task:",
"28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)",
"28.10.2020 11:11:32 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:11:32 - with parameters: ",
"28.10.2020 11:11:32 - etf.testcases = *",
"28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:11:32 - Setting state to CREATED",
"28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z",
"28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:11:34 - Project Properties: ",
"28.10.2020 11:11:34 - etf.testcases - * ",
"28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:11:34 - username - ",
"28.10.2020 11:11:34 - authUser - ",
"28.10.2020 11:11:34 - authMethod - basic ",
"28.10.2020 11:11:34 - TestRunTask initialized"
]
}
11:11:36.127 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:36.638 response time in milliseconds: 510.56
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:11:36 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)","28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:32 - Preparing 1 Test Task:","28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)","28.10.2020 11:11:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:32 - with parameters: ","28.10.2020 11:11:32 - etf.testcases = *","28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:32 - Setting state to CREATED","28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z","28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:34 - Project Properties: ","28.10.2020 11:11:34 - etf.testcases - * ","28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:34 - username - ","28.10.2020 11:11:34 - authUser - ","28.10.2020 11:11:34 - authMethod - basic ","28.10.2020 11:11:34 - TestRunTask initialized"]}
11:11:36.639 retry condition not satisfied: response.val == response.max
11:11:36.639 sleeping before retry #1
11:11:41.640 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:42.160 response time in milliseconds: 519.52
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:11:42 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"41","max":"42","log":["28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)","28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:32 - Preparing 1 Test Task:","28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)","28.10.2020 11:11:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:32 - with parameters: ","28.10.2020 11:11:32 - etf.testcases = *","28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:32 - Setting state to CREATED","28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z","28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:34 - Project Properties: ","28.10.2020 11:11:34 - etf.testcases - * ","28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:34 - username - ","28.10.2020 11:11:34 - authUser - ","28.10.2020 11:11:34 - authMethod - basic ","28.10.2020 11:11:34 - TestRunTask initialized","28.10.2020 11:11:39 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:11:39 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027"]}
11:11:42.160 retry condition not satisfied: response.val == response.max
11:11:42.160 sleeping before retry #2
11:11:47.161 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:47.700 response time in milliseconds: 534.26
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:11:47 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"88","max":"89","log":["28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)","28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:32 - Preparing 1 Test Task:","28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)","28.10.2020 11:11:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:32 - with parameters: ","28.10.2020 11:11:32 - etf.testcases = *","28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:32 - Setting state to CREATED","28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z","28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:34 - Project Properties: ","28.10.2020 11:11:34 - etf.testcases - * ","28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:34 - username - ","28.10.2020 11:11:34 - authUser - ","28.10.2020 11:11:34 - authMethod - basic ","28.10.2020 11:11:34 - TestRunTask initialized","28.10.2020 11:11:39 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:11:39 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:47.706 retry condition not satisfied: response.val == response.max
11:11:47.706 sleeping before retry #3
11:11:52.707 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:53.231 response time in milliseconds: 522.92
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:11:53 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"140","max":"141","log":["28.10.2020 11:11:32 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:11:32 UTC 2020)","28.10.2020 11:11:32 - Resolving Executable Test Suite dependencies","28.10.2020 11:11:32 - Preparing 1 Test Task:","28.10.2020 11:11:32 - TestTask 1 (61e1eef5-2a10-4d3e-9966-f8c63181973e)","28.10.2020 11:11:32 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:11:32 - with parameters: ","28.10.2020 11:11:32 - etf.testcases = *","28.10.2020 11:11:32 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:11:32 - Setting state to CREATED","28.10.2020 11:11:32 - Changed state from CREATED to INITIALIZING","28.10.2020 11:11:32 - Starting TestRun.dfa03703-3a48-4733-8a29-b620ef4363f3 at 2020-10-28T11:11:34Z","28.10.2020 11:11:34 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:11:34 - Project Properties: ","28.10.2020 11:11:34 - etf.testcases - * ","28.10.2020 11:11:34 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:11:34 - username - ","28.10.2020 11:11:34 - authUser - ","28.10.2020 11:11:34 - authMethod - basic ","28.10.2020 11:11:34 - TestRunTask initialized","28.10.2020 11:11:39 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:11:39 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:44 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:11:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:47 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:47 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:48 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:48 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:11:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:48 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:48 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:11:48 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:48 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:11:49 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:50 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:50 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:50 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:11:50 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:11:51 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:11:51 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:11:52 ERROR Response status code:404 is not in acceptable list of status codes"]}
11:11:53.234 retry condition not satisfied: response.val == response.max
11:11:53.234 sleeping before retry #4
11:11:58.235 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:00.239 response time in milliseconds: 2003.10
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:12:00 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:12:00.239 retry condition satisfied
11:12:00.239 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:12:00.240 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:08.339 response time in milliseconds: 7140.14
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Cache-Control: public, max-age=120
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:12:07 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Last-Modified: Wed, 28 Oct 2020 11:11:57 GMT
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/dfa03703-3a48-4733-8a29-b620ef4363f3.json","testRuns":{"TestRun":{"id":"EIDdfa03703-3a48-4733-8a29-b620ef4363f3","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:11:32.211Z","testTasks":{"TestTask":{"id":"EID61e1eef5-2a10-4d3e-9966-f8c63181973e","parent":{"ref":"EIDdfa03703-3a48-4733-8a29-b620ef4363f3"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDa046813e-5f29-47cf-b19b-2710a97728ef"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDa046813e-5f29-47cf-b19b-2710a97728ef","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:11:30.411Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:11:31.54Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e","testObject":{"ref":"EIDa046813e-5f29-47cf-b19b-2710a97728ef"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee7eb86-0175-1000-8221-46778124d6b3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee7eba6-0175-1000-e3a8-541b42d89a52","testStepResults":{"TestStepResult":[{"id":"EID6ee7eba7-0175-1000-1740-8dfab38247d5","parent":{"ref":"EID6ee7eba6-0175-1000-e3a8-541b42d89a52"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:11:34Z","duration":13,"status":"PASSED"},{"id":"EID6ee7ebbf-0175-1000-7da3-46042e7fe7fa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7ec70-0175-1000-a3f9-8435656600cc","parent":{"ref":"EID6ee7ebbf-0175-1000-7da3-46042e7fe7fa"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ec70-0175-1000-c906-3bdbf70cde8c","parent":{"ref":"EID6ee7ebbf-0175-1000-7da3-46042e7fe7fa"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ec70-0175-1000-aa36-7015a218bafd","parent":{"ref":"EID6ee7ebbf-0175-1000-7da3-46042e7fe7fa"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ec70-0175-1000-0739-2d97a1f6e47e","parent":{"ref":"EID6ee7ebbf-0175-1000-7da3-46042e7fe7fa"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDac1e5b88-72a6-484a-a67f-8ffe90193dc0"},{"ref":"EID4ab0ccb7-3490-4b62-be6b-6c127caf4da1"},{"ref":"EID601d8a9f-ae70-43b5-93a8-f840d3b9d34f"}]},"parent":{"ref":"EID6ee7eba6-0175-1000-e3a8-541b42d89a52"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:11:34Z","duration":80,"status":"PASSED"}]},"parent":{"ref":"EID6ee7eb86-0175-1000-8221-46778124d6b3"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:11:34Z","duration":203,"status":"PASSED"},{"id":"EID6ee7ec71-0175-1000-7283-03184735a893","testStepResults":{"TestStepResult":{"id":"EID6ee7ec71-0175-1000-1d3a-36c73218d1be","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7ed9c-0175-1000-275b-aeb74b280eea","parent":{"ref":"EID6ee7ec71-0175-1000-1d3a-36c73218d1be"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed9c-0175-1000-7bfe-2b2baebd2aaf","parent":{"ref":"EID6ee7ec71-0175-1000-1d3a-36c73218d1be"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ed9c-0175-1000-b218-5d200cfda330","parent":{"ref":"EID6ee7ec71-0175-1000-1d3a-36c73218d1be"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:11:34Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4f730b4-1f81-49b9-bf99-f9c209eb902c"},{"ref":"EID80c5c137-f6b8-47ae-bbe1-f492ba9a5b7e"},{"ref":"EIDed135caf-8fb3-409e-8017-d7062009ce15"}]},"parent":{"ref":"EID6ee7ec71-0175-1000-7283-03184735a893"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:11:34Z","duration":67,"status":"PASSED"}},"parent":{"ref":"EID6ee7eb86-0175-1000-8221-46778124d6b3"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:11:34Z","duration":299,"status":"PASSED"}]},"parent":{"ref":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:11:34Z","duration":534,"status":"PASSED"},{"id":"EID6ee7ed9c-0175-1000-bb6d-608c26048771","testCaseResults":{"TestCaseResult":[{"id":"EID6ee7ed9c-0175-1000-ebfd-8127d9ef8d49","testStepResults":{"TestStepResult":[{"id":"EID6ee7ed9c-0175-1000-f082-c1c831b4ab65","parent":{"ref":"EID6ee7ed9c-0175-1000-ebfd-8127d9ef8d49"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:11:34Z","duration":67,"status":"PASSED"},{"id":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7eef3-0175-1000-80e0-7f2d096310f0","parent":{"ref":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7eef3-0175-1000-0d45-4324be1a3d2b","parent":{"ref":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7eef3-0175-1000-b78e-f009a2d5ed7e","parent":{"ref":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7eef3-0175-1000-8d7c-971c741751ce","parent":{"ref":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7eef3-0175-1000-0ccf-798265a2f1c9","parent":{"ref":"EID6ee7ed9c-0175-1000-5f39-b17f1ebe34f3"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID52b2c733-683a-4816-8c4e-14b38e11cd5c"},{"ref":"EIDca4770f9-aeca-465e-aa04-edb30636a802"},{"ref":"EIDabe70895-6cb5-42fc-8e5e-445ded0d7e2d"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-ebfd-8127d9ef8d49"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:11:34Z","duration":60,"status":"PASSED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:11:34Z","duration":343,"status":"PASSED"},{"id":"EID6ee7eef3-0175-1000-5f25-0f5d9f4bab82","testStepResults":{"TestStepResult":[{"id":"EID6ee7eef3-0175-1000-6736-8ea3a9c34a5a","attachments":{"attachment":[{"ref":"EIDed972fd2-09d3-4b9c-ac02-4753b81ed2d8"},{"ref":"EID72c82408-ff73-4249-b07d-379242d9b889"}]},"parent":{"ref":"EID6ee7eef3-0175-1000-5f25-0f5d9f4bab82"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:11:35Z","duration":226,"status":"PASSED"},{"id":"EID6ee7effd-0175-1000-b897-df10f5096dd6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f11c-0175-1000-63dd-1db87e48a44f","parent":{"ref":"EID6ee7effd-0175-1000-b897-df10f5096dd6"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f11c-0175-1000-214d-29f7ad4d43a7","parent":{"ref":"EID6ee7effd-0175-1000-b897-df10f5096dd6"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f11c-0175-1000-4faa-fedaf5d73a5f","parent":{"ref":"EID6ee7effd-0175-1000-b897-df10f5096dd6"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f11c-0175-1000-2135-272d56cfddc6","parent":{"ref":"EID6ee7effd-0175-1000-b897-df10f5096dd6"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:11:35Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2441ac55-b96b-4349-b155-8a7002323c7a"},{"ref":"EID909578dd-8b27-44f5-a719-aa22932c1a68"},{"ref":"EID3bb3b979-703f-4352-a482-f2264014dbc5"}]},"parent":{"ref":"EID6ee7eef3-0175-1000-5f25-0f5d9f4bab82"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:11:35Z","duration":96,"status":"PASSED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:11:35Z","duration":566,"status":"PASSED"},{"id":"EID6ee7f129-0175-1000-21c1-37cd9e452e1b","testStepResults":{"TestStepResult":[{"id":"EID6ee7f129-0175-1000-9c74-3b0c6a5e37d7","attachments":{"attachment":[{"ref":"EID484ff1cb-f0b5-4c86-8643-a8dac243d6d3"},{"ref":"EIDe5c9c901-4457-472e-9537-b63233499839"}]},"parent":{"ref":"EID6ee7f129-0175-1000-21c1-37cd9e452e1b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:11:35Z","duration":172,"status":"PASSED"},{"id":"EID6ee7f1f9-0175-1000-c024-290987ffb176","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f2e7-0175-1000-9a72-3c71a876c77b","parent":{"ref":"EID6ee7f1f9-0175-1000-c024-290987ffb176"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f2e7-0175-1000-c132-f816ccdac487","parent":{"ref":"EID6ee7f1f9-0175-1000-c024-290987ffb176"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f2e7-0175-1000-397c-59277b67f9b1","parent":{"ref":"EID6ee7f1f9-0175-1000-c024-290987ffb176"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f2e7-0175-1000-e77a-cb1d54f88b8c","parent":{"ref":"EID6ee7f1f9-0175-1000-c024-290987ffb176"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f2e7-0175-1000-203c-4d97d50ea279","parent":{"ref":"EID6ee7f1f9-0175-1000-c024-290987ffb176"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID342d8fb2-134f-40c5-9c77-0eb8f1ef2581"},{"ref":"EIDd377bb7d-a9ef-4e18-a04a-c51901d7077a"},{"ref":"EIDccc69550-a216-4f67-a36f-2c656685538e"}]},"parent":{"ref":"EID6ee7f129-0175-1000-21c1-37cd9e452e1b"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:11:35Z","duration":83,"status":"PASSED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:11:35Z","duration":446,"status":"PASSED"},{"id":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132","testStepResults":{"TestStepResult":[{"id":"EID6ee7f2e7-0175-1000-833e-e3c9001942b9","attachments":{"attachment":[{"ref":"EIDa34b4633-1000-4f61-b262-655f40b945e2"},{"ref":"EID2e03ef2a-fa37-40e7-ad07-941d2245ba6c"}]},"parent":{"ref":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:11:36Z","duration":148,"status":"PASSED"},{"id":"EID6ee7f3a7-0175-1000-774e-1715a6b70912","parent":{"ref":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:11:36Z","duration":9,"status":"PASSED"},{"id":"EID6ee7f3b0-0175-1000-a9ee-ed897b9f4864","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f479-0175-1000-4ccd-b935647e267f","parent":{"ref":"EID6ee7f3b0-0175-1000-a9ee-ed897b9f4864"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f479-0175-1000-1309-2de67329acd9","parent":{"ref":"EID6ee7f3b0-0175-1000-a9ee-ed897b9f4864"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f479-0175-1000-71ce-a18bec185b7e","parent":{"ref":"EID6ee7f3b0-0175-1000-a9ee-ed897b9f4864"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f479-0175-1000-efe0-e5e29f3c9588","parent":{"ref":"EID6ee7f3b0-0175-1000-a9ee-ed897b9f4864"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID41b57361-d449-4efd-9f70-c1e4ed37ab2e"},{"ref":"EIDe8ed7353-9339-46a0-ad45-f884aaf3b482"},{"ref":"EIDefb58cd2-c783-416d-8ea7-d88e23fd5962"}]},"parent":{"ref":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:11:36Z","duration":63,"status":"PASSED"},{"id":"EID6ee7f47a-0175-1000-7534-0ad5871cf415","attachments":{"attachment":{"ref":"EIDd5b10b6f-7cc1-4813-ab1b-69720bcbf513"}},"parent":{"ref":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:11:36Z","duration":2,"status":"PASSED"},{"id":"EID6ee7f487-0175-1000-9f13-f8681947dadb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f607-0175-1000-b388-a026b62541c8","parent":{"ref":"EID6ee7f487-0175-1000-9f13-f8681947dadb"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f607-0175-1000-45c8-d978dbde9952","parent":{"ref":"EID6ee7f487-0175-1000-9f13-f8681947dadb"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f607-0175-1000-e03d-a140b0c28b60","parent":{"ref":"EID6ee7f487-0175-1000-9f13-f8681947dadb"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f607-0175-1000-417f-bca9937430f0","parent":{"ref":"EID6ee7f487-0175-1000-9f13-f8681947dadb"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f607-0175-1000-dbc7-78257a7cb4ee","parent":{"ref":"EID6ee7f487-0175-1000-9f13-f8681947dadb"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:11:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe01234c9-ebe3-42b4-8047-437614012321"},{"ref":"EIDf30cbe72-1767-42e3-a3d2-e8d679f8275e"},{"ref":"EIDeac8a133-b5e2-4030-aa50-47539f30d44a"}]},"parent":{"ref":"EID6ee7f2e7-0175-1000-c749-a9ba67c18132"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:11:36Z","duration":158,"status":"PASSED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:11:36Z","duration":800,"status":"PASSED"},{"id":"EID6ee7f607-0175-1000-3f23-b6d1fedf56d5","testStepResults":{"TestStepResult":[{"id":"EID6ee7f607-0175-1000-0875-93ec84c4e40e","attachments":{"attachment":[{"ref":"EID7f845e01-5d4c-494b-8438-e3a6583e1333"},{"ref":"EID2a893002-8762-4596-9017-39af2f25261d"}]},"parent":{"ref":"EID6ee7f607-0175-1000-3f23-b6d1fedf56d5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:11:36Z","duration":201,"status":"PASSED"},{"id":"EID6ee7f6fb-0175-1000-959f-c6fe3fca1d2c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7f7a1-0175-1000-2f6c-9cd852b7a470","parent":{"ref":"EID6ee7f6fb-0175-1000-959f-c6fe3fca1d2c"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f7a1-0175-1000-8e06-faa81c401547","parent":{"ref":"EID6ee7f6fb-0175-1000-959f-c6fe3fca1d2c"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f7a1-0175-1000-ce07-55a6073e5094","parent":{"ref":"EID6ee7f6fb-0175-1000-959f-c6fe3fca1d2c"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee7f7a1-0175-1000-789e-2128b1f9f007","parent":{"ref":"EID6ee7f6fb-0175-1000-959f-c6fe3fca1d2c"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:11:37Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3488b72d-1c3d-46e4-9343-9d91b13f0889"},{"ref":"EID4d969194-8d3f-4a5a-b3b7-cdfc511a3bc8"},{"ref":"EID1ec8b84d-01ff-4443-912d-d8a02e19b517"}]},"parent":{"ref":"EID6ee7f607-0175-1000-3f23-b6d1fedf56d5"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:11:37Z","duration":61,"status":"PASSED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:11:36Z","duration":410,"status":"PASSED"},{"id":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4","testStepResults":{"TestStepResult":[{"id":"EID6ee7f7a1-0175-1000-7008-c26b7c184081","attachments":{"attachment":[{"ref":"EID2cef7069-9734-49fe-a4b7-9774f57570ec"},{"ref":"EID6f001ac4-fbd0-40dc-8011-20b239edd663"}]},"parent":{"ref":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:11:37Z","duration":644,"status":"PASSED"},{"id":"EID6ee7fa56-0175-1000-22a7-4b0b844c92a7","parent":{"ref":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:11:38Z","duration":0,"status":"PASSED"},{"id":"EID6ee7fa56-0175-1000-11c2-4ce1b2f544dd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee7ff98-0175-1000-849e-470871136223","parent":{"ref":"EID6ee7fa56-0175-1000-11c2-4ce1b2f544dd"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ff98-0175-1000-0827-aebc05cfd981","parent":{"ref":"EID6ee7fa56-0175-1000-11c2-4ce1b2f544dd"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ff98-0175-1000-e887-b113036dffc3","parent":{"ref":"EID6ee7fa56-0175-1000-11c2-4ce1b2f544dd"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee7ff98-0175-1000-45e4-ce55e58ffa6f","parent":{"ref":"EID6ee7fa56-0175-1000-11c2-4ce1b2f544dd"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbee1d4fe-7e63-49d7-b46b-9671ebb7b88d"},{"ref":"EID618118df-5a84-4293-881e-9238a2fd38c9"},{"ref":"EIDf578ff27-bec3-4f1b-beeb-075fe9e897b0"}]},"parent":{"ref":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:11:38Z","duration":1178,"status":"PASSED"},{"id":"EID6ee7ff98-0175-1000-2680-2c0b4990606a","attachments":{"attachment":{"ref":"EID005c78b3-e79b-4456-a956-d62761d1f198"}},"parent":{"ref":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:11:39Z","duration":2,"status":"PASSED"},{"id":"EID6ee7ffae-0175-1000-37dc-95f2210776eb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8013e-0175-1000-9b93-d381c6aeb5a8","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee7ffae-0175-1000-37dc-95f2210776eb"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:11:39Z","duration":12,"status":"FAILED"},{"id":"EID6ee8014a-0175-1000-e0d9-86a76417bb61","parent":{"ref":"EID6ee7ffae-0175-1000-37dc-95f2210776eb"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee8014a-0175-1000-1668-09d218e0243b","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6ee7ffae-0175-1000-37dc-95f2210776eb"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:11:39Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID7e11f05f-92ef-4a57-b523-26a644bfd4a0"},{"ref":"EID8c7dacf1-d20e-402e-a9c5-0a1d3b9361b9"},{"ref":"EIDf7c50255-830f-42b2-a964-540a29e8fef9"}]},"parent":{"ref":"EID6ee7f7a1-0175-1000-f353-be2658d7c2d4"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:11:39Z","duration":300,"status":"FAILED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:11:37Z","duration":2473,"status":"FAILED"},{"id":"EID6ee8014b-0175-1000-e4c0-06985e4fd584","testStepResults":{"TestStepResult":[{"id":"EID6ee80156-0175-1000-496b-9373d997ded7","attachments":{"attachment":[{"ref":"EIDb19642ec-3a71-4b8c-9a7f-111c113a1730"},{"ref":"EID5a325bb3-7777-46bf-b68e-f9ab2ca0706e"}]},"parent":{"ref":"EID6ee8014b-0175-1000-e4c0-06985e4fd584"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:11:39Z","duration":1038,"status":"PASSED"},{"id":"EID6ee80593-0175-1000-8eda-de68692416ba","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee80b9f-0175-1000-f89c-93912c4ea929","parent":{"ref":"EID6ee80593-0175-1000-8eda-de68692416ba"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80b9f-0175-1000-1b6d-99ec9c12f8b6","parent":{"ref":"EID6ee80593-0175-1000-8eda-de68692416ba"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80b9f-0175-1000-b1d9-3dd880130719","parent":{"ref":"EID6ee80593-0175-1000-8eda-de68692416ba"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80b9f-0175-1000-373f-c0235c212866","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee80593-0175-1000-8eda-de68692416ba"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID45e6c0f0-0c3f-491b-a7fe-6735d09b2022"},{"ref":"EID8bdb87bd-7ee8-431b-9f4d-9d868a590ed1"},{"ref":"EID66be98f2-69d2-4fd3-90d7-6586e6fad1de"}]},"parent":{"ref":"EID6ee8014b-0175-1000-e4c0-06985e4fd584"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:11:40Z","duration":1411,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:11:39Z","duration":2664,"status":"PASSED_MANUAL"},{"id":"EID6ee80bb3-0175-1000-18a9-5193a7569c4f","testStepResults":{"TestStepResult":{"id":"EID6ee80bb3-0175-1000-2b8f-1661c650db10","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee80d4f-0175-1000-26bb-b1f669b37ff9","parent":{"ref":"EID6ee80bb3-0175-1000-2b8f-1661c650db10"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d4f-0175-1000-6906-62d36856d1b7","parent":{"ref":"EID6ee80bb3-0175-1000-2b8f-1661c650db10"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d4f-0175-1000-4a34-afb5edcc88ca","parent":{"ref":"EID6ee80bb3-0175-1000-2b8f-1661c650db10"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"},{"id":"EID6ee80d50-0175-1000-ac39-621fc211aec3","parent":{"ref":"EID6ee80bb3-0175-1000-2b8f-1661c650db10"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:11:42Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1cb020e6-4261-4aa0-91b8-c98fd5ee513b"},{"ref":"EID5ebcc032-498a-49db-bdc6-8465b84dc9f8"},{"ref":"EIDbdce837e-3d55-427b-9a5c-6b733c44bc16"}]},"parent":{"ref":"EID6ee80bb3-0175-1000-18a9-5193a7569c4f"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:11:42Z","duration":294,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:11:42Z","duration":421,"status":"PASSED"},{"id":"EID6ee80d58-0175-1000-e79e-d7e0ea17d545","testStepResults":{"TestStepResult":{"id":"EID6ee80d58-0175-1000-50fd-e46a1b6e81e0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee80f2e-0175-1000-7019-5beb1293143a","parent":{"ref":"EID6ee80d58-0175-1000-50fd-e46a1b6e81e0"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:11:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee80f2e-0175-1000-5305-457f8fafae25","parent":{"ref":"EID6ee80d58-0175-1000-50fd-e46a1b6e81e0"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:11:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee80f2e-0175-1000-427c-67061b555190","parent":{"ref":"EID6ee80d58-0175-1000-50fd-e46a1b6e81e0"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:11:43Z","duration":0,"status":"PASSED"},{"id":"EID6ee80f2e-0175-1000-2098-b44c66b98e79","parent":{"ref":"EID6ee80d58-0175-1000-50fd-e46a1b6e81e0"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:11:43Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID74f8f909-a808-4f56-bb5a-166b92fce49d"},{"ref":"EIDe75f2867-28a6-4a4f-bfa4-afd5ae372004"},{"ref":"EID280b1afc-0d01-4aef-b680-6290f17f7d25"}]},"parent":{"ref":"EID6ee80d58-0175-1000-e79e-d7e0ea17d545"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:11:42Z","duration":326,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:11:42Z","duration":480,"status":"PASSED"},{"id":"EID6ee80f38-0175-1000-d0dc-f4b64cea4b45","testStepResults":{"TestStepResult":{"id":"EID6ee80f38-0175-1000-ab8d-fd90315a7c32","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID0d82b0b2-b9e6-47a4-8af4-68dd765c9163"},{"ref":"EID10c8dc48-8b2d-4f58-8e1a-9e08d8567ac8"},{"ref":"EID78c3e375-e538-4e24-8d71-2fcd7928da5d"},{"ref":"EID05e342ed-f457-45cc-94f5-82e6c1b985f1"},{"ref":"EID9f119e6d-b990-45df-a6e5-c96a57e2e839"},{"ref":"EIDc9b5b10f-7193-49b9-84cf-83ab7421dba1"},{"ref":"EID5f196d18-c2f5-4f72-8a9e-3a90417beb49"},{"ref":"EID3776c821-694e-4bf8-a798-a89b4fb3aef0"},{"ref":"EIDdb552c27-9650-458a-970e-08f3d3e56412"}]},"parent":{"ref":"EID6ee80f38-0175-1000-d0dc-f4b64cea4b45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:11:43Z","duration":926,"status":"SKIPPED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:11:43Z","duration":1160,"status":"SKIPPED"},{"id":"EID6ee813c0-0175-1000-b85e-fca4bb9f92b3","testStepResults":{"TestStepResult":{"id":"EID6ee813c0-0175-1000-e3b1-cdd1c4ba1bfe","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81531-0175-1000-68de-07b2e6abfe14","parent":{"ref":"EID6ee813c0-0175-1000-e3b1-cdd1c4ba1bfe"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:11:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee81531-0175-1000-083f-9e956d761506","parent":{"ref":"EID6ee813c0-0175-1000-e3b1-cdd1c4ba1bfe"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:11:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee81531-0175-1000-c1e1-8250cb9e2e48","parent":{"ref":"EID6ee813c0-0175-1000-e3b1-cdd1c4ba1bfe"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:11:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee81531-0175-1000-82ce-c2c932b09650","parent":{"ref":"EID6ee813c0-0175-1000-e3b1-cdd1c4ba1bfe"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:11:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc0b914c5-94e7-4698-9521-eeae67e28f94"},{"ref":"EID0561434b-9270-4fcb-9f79-00d8b9003765"},{"ref":"EID99c43d21-4d5d-4c01-bee0-baf00e96148a"}]},"parent":{"ref":"EID6ee813c0-0175-1000-b85e-fca4bb9f92b3"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:11:44Z","duration":136,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:11:44Z","duration":369,"status":"PASSED"},{"id":"EID6ee81531-0175-1000-5bd3-600f4e072cd5","testStepResults":{"TestStepResult":{"id":"EID6ee81531-0175-1000-789f-468316b74e64","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81623-0175-1000-94c4-e4726f22662e","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81623-0175-1000-16a8-95f0242fb932","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81623-0175-1000-8076-a509f58c8437","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81623-0175-1000-2c77-1f871e1fe832","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81623-0175-1000-7916-18c4562eed08","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81623-0175-1000-c105-657c94f928cd","parent":{"ref":"EID6ee81531-0175-1000-789f-468316b74e64"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDad7ca95e-efac-4ab3-8f48-ba7f6682d66a"},{"ref":"EID883f6748-5b89-4e48-87d2-467616e58b4f"},{"ref":"EIDe83fde30-9339-465d-8167-d7706a5b7e2e"}]},"parent":{"ref":"EID6ee81531-0175-1000-5bd3-600f4e072cd5"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:11:44Z","duration":69,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:11:44Z","duration":258,"status":"PASSED"},{"id":"EID6ee81633-0175-1000-c274-487c759de9f1","testStepResults":{"TestStepResult":{"id":"EID6ee81633-0175-1000-6e90-327e553c2cfb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81853-0175-1000-d19e-74d60083babd","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81853-0175-1000-f62c-e598e3a49a2c","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81853-0175-1000-bffa-c54df293193b","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81853-0175-1000-4ce4-097b7144226c","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81853-0175-1000-f898-548b821ff0f9","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee81853-0175-1000-8181-aadf2dd38bc1","parent":{"ref":"EID6ee81633-0175-1000-6e90-327e553c2cfb"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID39387f69-024f-41aa-8764-10c751aee3be"},{"ref":"EID9e12e342-9f20-435a-be9c-731c126081a8"},{"ref":"EID26f7cdc8-21c8-473b-8da3-b3eefc29ad8d"}]},"parent":{"ref":"EID6ee81633-0175-1000-c274-487c759de9f1"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:11:45Z","duration":407,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:11:45Z","duration":552,"status":"PASSED"},{"id":"EID6ee8185b-0175-1000-9983-2dfc23254f52","testStepResults":{"TestStepResult":{"id":"EID6ee8185b-0175-1000-1770-2244920249d7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8190c-0175-1000-76e2-109e0b6bcfab","parent":{"ref":"EID6ee8185b-0175-1000-1770-2244920249d7"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee8190c-0175-1000-9709-44e17cf38dde","parent":{"ref":"EID6ee8185b-0175-1000-1770-2244920249d7"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee8190c-0175-1000-63ad-0b1a72f407f9","parent":{"ref":"EID6ee8185b-0175-1000-1770-2244920249d7"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee8190c-0175-1000-1a15-30d649a1f0b3","parent":{"ref":"EID6ee8185b-0175-1000-1770-2244920249d7"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:11:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID04606f7c-f721-4eeb-a07e-bf2d4b2326be"},{"ref":"EID56326532-31e6-4eb0-80d6-1661ab79d79a"},{"ref":"EIDd422e796-9fee-453b-9a38-d265c1076b64"}]},"parent":{"ref":"EID6ee8185b-0175-1000-9983-2dfc23254f52"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:11:45Z","duration":82,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:11:45Z","duration":177,"status":"PASSED"},{"id":"EID6ee8190d-0175-1000-e929-45175bfcb985","testStepResults":{"TestStepResult":[{"id":"EID6ee8190d-0175-1000-f2ed-28a330d11b3d","attachments":{"attachment":[{"ref":"EID5756f22c-be9b-4310-b351-bd8573cc0b7d"},{"ref":"EIDaf62cace-b7bf-41ed-8a2d-e904de8889dc"},{"ref":"EID5c35ffd9-4e40-478e-b086-c487285a5547"},{"ref":"EIDe16361db-1d57-48d4-8d8a-c75955a6fdcb"}]},"parent":{"ref":"EID6ee8190d-0175-1000-e929-45175bfcb985"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:11:45Z","duration":732,"status":"PASSED"},{"id":"EID6ee81c16-0175-1000-0c47-89cba534c9f3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81d3a-0175-1000-592c-31dce4c71119","parent":{"ref":"EID6ee81c16-0175-1000-0c47-89cba534c9f3"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d3b-0175-1000-1bc8-67d673254880","parent":{"ref":"EID6ee81c16-0175-1000-0c47-89cba534c9f3"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d3b-0175-1000-5f3e-6b1dbb7d0179","parent":{"ref":"EID6ee81c16-0175-1000-0c47-89cba534c9f3"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81d3b-0175-1000-cce1-fa4c0be0038a","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6ee81c16-0175-1000-0c47-89cba534c9f3"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa405d80e-7f0e-49e8-864b-0cbdd65ebf9c"},{"ref":"EID707903e7-dba3-45b1-8eee-e0d448af9725"},{"ref":"EIDacf34ad6-0369-4fee-9d2c-2607b825b1b6"}]},"parent":{"ref":"EID6ee8190d-0175-1000-e929-45175bfcb985"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:11:46Z","duration":91,"status":"FAILED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:11:45Z","duration":1079,"status":"FAILED"},{"id":"EID6ee81d44-0175-1000-a3bb-4d3d7c91c249","testStepResults":{"TestStepResult":{"id":"EID6ee81d44-0175-1000-8350-af1045c37255","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81e28-0175-1000-f786-4bbef0465992","parent":{"ref":"EID6ee81d44-0175-1000-8350-af1045c37255"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81e28-0175-1000-767d-9e66dfecf70b","parent":{"ref":"EID6ee81d44-0175-1000-8350-af1045c37255"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81e28-0175-1000-0174-888c2e6f3923","parent":{"ref":"EID6ee81d44-0175-1000-8350-af1045c37255"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81e28-0175-1000-3cfa-47cbfcfebd04","parent":{"ref":"EID6ee81d44-0175-1000-8350-af1045c37255"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa1282009-90b4-4a3e-92fd-fb13cfefe9d0"},{"ref":"EID9b4a0a45-44c8-42e6-908a-3e6f21174048"},{"ref":"EIDf660e2fb-2330-4362-b682-0849c10184e1"}]},"parent":{"ref":"EID6ee81d44-0175-1000-a3bb-4d3d7c91c249"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:11:47Z","duration":109,"status":"PASSED"}},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:11:47Z","duration":228,"status":"PASSED"},{"id":"EID6ee81e28-0175-1000-28ed-8ee4ddcb106d","testStepResults":{"TestStepResult":[{"id":"EID6ee81e28-0175-1000-fb3a-c7ff876eb748","parent":{"ref":"EID6ee81e28-0175-1000-28ed-8ee4ddcb106d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81e28-0175-1000-5de8-4994afda58af","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81eff-0175-1000-2f74-dc6545e88351","parent":{"ref":"EID6ee81e28-0175-1000-5de8-4994afda58af"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81eff-0175-1000-bd04-a8666960ff52","parent":{"ref":"EID6ee81e28-0175-1000-5de8-4994afda58af"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81eff-0175-1000-9c1b-478b9ea43414","parent":{"ref":"EID6ee81e28-0175-1000-5de8-4994afda58af"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81eff-0175-1000-5595-a8d6566dd295","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6ee81e28-0175-1000-5de8-4994afda58af"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1cb5bed5-882d-459b-97c1-ee54f481f47b"},{"ref":"EID137eac7b-b6bc-417a-9f79-93af103eeb07"},{"ref":"EID449f77a4-cec0-4e34-a0b5-1ae979a7a4fb"}]},"parent":{"ref":"EID6ee81e28-0175-1000-28ed-8ee4ddcb106d"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:11:47Z","duration":84,"status":"FAILED"}]},"parent":{"ref":"EID6ee7ed9c-0175-1000-bb6d-608c26048771"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:11:47Z","duration":216,"status":"FAILED"}]},"parent":{"ref":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:11:34Z","duration":12644,"status":"FAILED"},{"id":"EID6ee81f00-0175-1000-b9d2-6b0b86304942","testCaseResults":{"TestCaseResult":[{"id":"EID6ee81f00-0175-1000-3476-b609a859946c","testStepResults":{"TestStepResult":[{"id":"EID6ee81f01-0175-1000-0a34-2a95694d56ca","parent":{"ref":"EID6ee81f00-0175-1000-3476-b609a859946c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81f01-0175-1000-34c2-940296e9d7a5","parent":{"ref":"EID6ee81f00-0175-1000-3476-b609a859946c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":109,"status":"PASSED"},{"id":"EID6ee81f01-0175-1000-9b86-6c445e5e20a3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee81f9b-0175-1000-5631-4a0f41e20b4d","parent":{"ref":"EID6ee81f01-0175-1000-9b86-6c445e5e20a3"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81f9b-0175-1000-9be8-ca37e9d72ec7","parent":{"ref":"EID6ee81f01-0175-1000-9b86-6c445e5e20a3"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81f9b-0175-1000-8b45-c080f00f5851","parent":{"ref":"EID6ee81f01-0175-1000-9b86-6c445e5e20a3"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd358971a-97f3-4f1f-9cd7-b621ccc71f45"},{"ref":"EID589f3593-b777-413a-a415-56535b08f2b6"},{"ref":"EID9ad778d8-b62a-48da-b3fa-b57dde97bcaa"}]},"parent":{"ref":"EID6ee81f00-0175-1000-3476-b609a859946c"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:11:47Z","duration":59,"status":"PASSED"},{"id":"EID6ee81f9b-0175-1000-65b3-4963be451d82","attachments":{"attachment":{"ref":"EID193887c9-5259-4798-9cdb-98f5ed9cb814"}},"parent":{"ref":"EID6ee81f00-0175-1000-3476-b609a859946c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee81fa7-0175-1000-1ecb-05a3fa823567","parent":{"ref":"EID6ee81f00-0175-1000-3476-b609a859946c"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:11:47Z","duration":49,"status":"PASSED"}]},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:11:47Z","duration":217,"status":"PASSED"},{"id":"EID6ee81fe1-0175-1000-7009-29a63c312dec","testStepResults":{"TestStepResult":[{"id":"EID6ee81fe1-0175-1000-33ac-6dec3072d52e","parent":{"ref":"EID6ee81fe1-0175-1000-7009-29a63c312dec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:11:47Z","duration":67,"status":"PASSED"},{"id":"EID6ee81fe1-0175-1000-d340-2318f49fdab3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8203d-0175-1000-2b33-036de87bd294","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee81fe1-0175-1000-d340-2318f49fdab3"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:11:47Z","duration":53,"status":"FAILED"},{"id":"EID6ee82072-0175-1000-f9ed-a4a5fa5d751d","parent":{"ref":"EID6ee81fe1-0175-1000-d340-2318f49fdab3"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee82072-0175-1000-4f65-f89108a8bf77","parent":{"ref":"EID6ee81fe1-0175-1000-d340-2318f49fdab3"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee82072-0175-1000-da70-e7e08f090e4c","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6ee81fe1-0175-1000-d340-2318f49fdab3"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"FAILED"},{"id":"EID6ee82072-0175-1000-50f3-1204b68c798e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6ee81fe1-0175-1000-d340-2318f49fdab3"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4884659e-4be9-41b8-bed2-d192e54290a0"},{"ref":"EIDaa4351dd-519e-43c0-9e04-e5a1e1249b2a"},{"ref":"EID1f8c8d91-4d34-47d5-ae09-76b1e6cf3043"}]},"parent":{"ref":"EID6ee81fe1-0175-1000-7009-29a63c312dec"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:11:47Z","duration":30,"status":"FAILED"}]},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:11:47Z","duration":146,"status":"FAILED"},{"id":"EID6ee82073-0175-1000-fae9-ee12610e30c4","testStepResults":{"TestStepResult":{"id":"EID6ee82073-0175-1000-84df-3bf3e56d698a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee820d5-0175-1000-27fa-ba8f93c22e2a","parent":{"ref":"EID6ee82073-0175-1000-84df-3bf3e56d698a"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee820d5-0175-1000-558e-be77c8d41078","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee82073-0175-1000-84df-3bf3e56d698a"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:11:47Z","duration":18,"status":"FAILED"},{"id":"EID6ee820e7-0175-1000-5eb1-5e54a2e2054e","parent":{"ref":"EID6ee82073-0175-1000-84df-3bf3e56d698a"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:11:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4e2f6a80-816c-4533-9f7e-f7b74c49205b"},{"ref":"EID323304e8-852f-443f-9f66-508bdd02e879"},{"ref":"EID94e2ae44-284d-4d29-ab03-4a32305ef58b"}]},"parent":{"ref":"EID6ee82073-0175-1000-fae9-ee12610e30c4"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:11:47Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:11:47Z","duration":116,"status":"FAILED"},{"id":"EID6ee820ef-0175-1000-bfb7-c54c1faa8768","testStepResults":{"TestStepResult":{"id":"EID6ee820ef-0175-1000-f8ce-a8ce9afa246b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82192-0175-1000-9dc9-2ec50de1d553","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee820ef-0175-1000-f8ce-a8ce9afa246b"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"FAILED"},{"id":"EID6ee82192-0175-1000-c986-91f459118bad","parent":{"ref":"EID6ee820ef-0175-1000-f8ce-a8ce9afa246b"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee82192-0175-1000-ce7a-d601aa7c3f39","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee820ef-0175-1000-f8ce-a8ce9afa246b"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:11:48Z","duration":10,"status":"FAILED"},{"id":"EID6ee8219c-0175-1000-f514-b197918613f2","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee820ef-0175-1000-f8ce-a8ce9afa246b"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDde71cd63-5e0f-4d8b-8c12-613b4dc69318"},{"ref":"EID336b7a2c-0015-4473-bdab-2c916bfc064f"},{"ref":"EID5160f212-13c4-4b86-99a7-4e8145906065"}]},"parent":{"ref":"EID6ee820ef-0175-1000-bfb7-c54c1faa8768"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:11:47Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:11:47Z","duration":173,"status":"FAILED"},{"id":"EID6ee8219d-0175-1000-3cdb-cc61c429f68a","testStepResults":{"TestStepResult":{"id":"EID6ee8219d-0175-1000-e850-5802489fddd4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee821f0-0175-1000-7c86-36358997c9c6","parent":{"ref":"EID6ee8219d-0175-1000-e850-5802489fddd4"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee821f0-0175-1000-c411-1bbc7b3e2ce7","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee8219d-0175-1000-e850-5802489fddd4"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:11:48Z","duration":12,"status":"FAILED"},{"id":"EID6ee821fc-0175-1000-02e7-beb68265bb67","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6ee8219d-0175-1000-e850-5802489fddd4"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID77a3e298-1e1a-4199-93b4-3d83f80bebd7"},{"ref":"EID63d2243e-fa40-429e-8a5b-99a09de6c9e9"},{"ref":"EID69cdb2dd-9b02-4089-a51c-8e44dd60fb4f"}]},"parent":{"ref":"EID6ee8219d-0175-1000-3cdb-cc61c429f68a"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:11:48Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:11:48Z","duration":95,"status":"FAILED"},{"id":"EID6ee821fc-0175-1000-bbed-f0a8c360333e","testStepResults":{"TestStepResult":{"id":"EID6ee821fc-0175-1000-3208-d73984b5a2fe","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82250-0175-1000-8dee-1c5d5f709134","parent":{"ref":"EID6ee821fc-0175-1000-3208-d73984b5a2fe"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee82250-0175-1000-092c-35a15fa03c9b","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee821fc-0175-1000-3208-d73984b5a2fe"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:11:48Z","duration":10,"status":"FAILED"},{"id":"EID6ee8225a-0175-1000-2a64-9ba7c4628d68","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6ee821fc-0175-1000-3208-d73984b5a2fe"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDdf0e033f-12bd-4c9b-a22d-562f347e80b5"},{"ref":"EID689b79af-c28a-4492-9935-7c430b6033ee"},{"ref":"EID8c919632-2d5d-4d2f-9f0e-28e3a1f7af1a"}]},"parent":{"ref":"EID6ee821fc-0175-1000-bbed-f0a8c360333e"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:11:48Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:11:48Z","duration":94,"status":"FAILED"},{"id":"EID6ee8225a-0175-1000-b743-4613bee14a71","testStepResults":{"TestStepResult":{"id":"EID6ee8225b-0175-1000-85a3-cd73a61c4909","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee822ce-0175-1000-c1cb-83f12df1acba","parent":{"ref":"EID6ee8225b-0175-1000-85a3-cd73a61c4909"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee822ce-0175-1000-19c0-76cf87997453","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee8225b-0175-1000-85a3-cd73a61c4909"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:11:48Z","duration":11,"status":"FAILED"},{"id":"EID6ee822d9-0175-1000-7373-ee0012d093d8","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6ee8225b-0175-1000-85a3-cd73a61c4909"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"FAILED"},{"id":"EID6ee822d9-0175-1000-e278-744b90e64758","parent":{"ref":"EID6ee8225b-0175-1000-85a3-cd73a61c4909"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee822d9-0175-1000-c029-09eb592b30bc","parent":{"ref":"EID6ee8225b-0175-1000-85a3-cd73a61c4909"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:11:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9f31785d-8766-4ef1-b09b-da05cbf2df41"},{"ref":"EID2548147d-6b75-47dc-98a5-b5bb2fbb9c2c"},{"ref":"EID05498296-2d43-4493-bde7-bae1dee7ff8e"}]},"parent":{"ref":"EID6ee8225a-0175-1000-b743-4613bee14a71"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:11:48Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:11:48Z","duration":127,"status":"FAILED"},{"id":"EID6ee822d9-0175-1000-39c2-ac85c4cac303","testStepResults":{"TestStepResult":{"id":"EID6ee822d9-0175-1000-6319-2aec57a4878b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82842-0175-1000-65d3-180526fa7e59","parent":{"ref":"EID6ee822d9-0175-1000-6319-2aec57a4878b"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:11:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee82842-0175-1000-4629-efc820f5487e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee822d9-0175-1000-6319-2aec57a4878b"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:11:49Z","duration":12,"status":"FAILED"},{"id":"EID6ee8284e-0175-1000-6ab6-f244e61d8402","parent":{"ref":"EID6ee822d9-0175-1000-6319-2aec57a4878b"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:11:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID57160d5f-ee10-4178-b198-94bffef30ae1"},{"ref":"EID0ed51c0a-4f65-4dae-aa90-3c76918abbe6"},{"ref":"EID3f1a35bf-0a32-4707-a306-20797faede53"}]},"parent":{"ref":"EID6ee822d9-0175-1000-39c2-ac85c4cac303"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:11:48Z","duration":1309,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:11:48Z","duration":1397,"status":"FAILED"},{"id":"EID6ee8284e-0175-1000-0c73-2bfafbb5d309","testStepResults":{"TestStepResult":{"id":"EID6ee8284e-0175-1000-a75a-6811df4b0408","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82969-0175-1000-21e2-b0339422c73f","parent":{"ref":"EID6ee8284e-0175-1000-a75a-6811df4b0408"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:11:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee82969-0175-1000-610a-57188ad6dddd","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee8284e-0175-1000-a75a-6811df4b0408"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:11:50Z","duration":11,"status":"FAILED"},{"id":"EID6ee82974-0175-1000-ec6f-a602b54ec974","parent":{"ref":"EID6ee8284e-0175-1000-a75a-6811df4b0408"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:11:50Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID28f7891e-f39c-476a-ac07-81ed763f0725"},{"ref":"EID4cd79013-2ff8-4d4c-a620-4bad7a8f0892"},{"ref":"EIDef59001a-46aa-4aae-ab1b-ccfed8d33bf1"}]},"parent":{"ref":"EID6ee8284e-0175-1000-0c73-2bfafbb5d309"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:11:49Z","duration":198,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:11:49Z","duration":294,"status":"FAILED"},{"id":"EID6ee82974-0175-1000-e699-f2ba90df46a2","testStepResults":{"TestStepResult":{"id":"EID6ee82974-0175-1000-8e7b-72cfe93a5c23","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82a4d-0175-1000-be7d-622467180fa6","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee82974-0175-1000-8e7b-72cfe93a5c23"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:11:50Z","duration":11,"status":"FAILED"},{"id":"EID6ee82a58-0175-1000-3169-560f6374f412","parent":{"ref":"EID6ee82974-0175-1000-8e7b-72cfe93a5c23"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:11:50Z","duration":0,"status":"PASSED"},{"id":"EID6ee82a58-0175-1000-0ea7-ab9bb525512c","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee82974-0175-1000-8e7b-72cfe93a5c23"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:11:50Z","duration":0,"status":"FAILED"},{"id":"EID6ee82a58-0175-1000-9a55-36b08e78aab3","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6ee82974-0175-1000-8e7b-72cfe93a5c23"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:11:50Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDabd66b2b-80bd-4a00-84a7-914887ba0d58"},{"ref":"EID0ebb2204-2071-46f7-a5ff-322e609eada2"},{"ref":"EIDde387730-7c06-46ca-adb0-107e873134fa"}]},"parent":{"ref":"EID6ee82974-0175-1000-e699-f2ba90df46a2"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:11:50Z","duration":128,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:11:50Z","duration":228,"status":"FAILED"},{"id":"EID6ee82a58-0175-1000-5b0b-811c19af7d70","testStepResults":{"TestStepResult":{"id":"EID6ee82a81-0175-1000-1c65-53dc9b2432cd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee82f95-0175-1000-ed83-c223d4771fec","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee82a81-0175-1000-1c65-53dc9b2432cd"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:11:51Z","duration":40,"status":"FAILED"},{"id":"EID6ee82fbe-0175-1000-0bb9-ccde91ccf35b","parent":{"ref":"EID6ee82a81-0175-1000-1c65-53dc9b2432cd"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee82fbe-0175-1000-e0e1-c6cae14eccd7","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee82a81-0175-1000-1c65-53dc9b2432cd"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"FAILED"},{"id":"EID6ee82fbe-0175-1000-0cb8-345fc79d6cb4","parent":{"ref":"EID6ee82a81-0175-1000-1c65-53dc9b2432cd"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1d35df50-fe19-4aae-b0e0-39abd602b6f0"},{"ref":"EID8948c938-a02f-4b8a-af55-4e49c3d09eb2"},{"ref":"EID0c6db644-3a0d-43c4-88db-5aea076e205b"}]},"parent":{"ref":"EID6ee82a58-0175-1000-5b0b-811c19af7d70"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:11:50Z","duration":1197,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:11:50Z","duration":1382,"status":"FAILED"},{"id":"EID6ee82fbe-0175-1000-5e2c-c817094604ee","testStepResults":{"TestStepResult":[{"id":"EID6ee82fbf-0175-1000-dca0-a2d6cf924beb","parent":{"ref":"EID6ee82fbe-0175-1000-5e2c-c817094604ee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:11:51Z","duration":0,"status":"PASSED"},{"id":"EID6ee82fc0-0175-1000-2ffe-f98e32b81175","parent":{"ref":"EID6ee82fbe-0175-1000-5e2c-c817094604ee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:11:51Z","duration":137,"status":"PASSED"},{"id":"EID6ee82fca-0175-1000-0d3c-fc3f36aad078","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee830f7-0175-1000-49a2-280ce29e1c80","parent":{"ref":"EID6ee82fca-0175-1000-0d3c-fc3f36aad078"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee830f7-0175-1000-2d52-5d09ad076817","parent":{"ref":"EID6ee82fca-0175-1000-0d3c-fc3f36aad078"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee830f7-0175-1000-3756-f1d711b4096e","parent":{"ref":"EID6ee82fca-0175-1000-0d3c-fc3f36aad078"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee830f7-0175-1000-b587-e254e3fba4f0","parent":{"ref":"EID6ee82fca-0175-1000-0d3c-fc3f36aad078"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfd481178-b637-469b-89ec-0c3fafb1a725"},{"ref":"EID5a65b983-3eb3-46e2-8a74-406e19c7f863"},{"ref":"EID6501b552-1082-4981-b216-13788dd3110f"}]},"parent":{"ref":"EID6ee82fbe-0175-1000-5e2c-c817094604ee"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:11:51Z","duration":63,"status":"PASSED"},{"id":"EID6ee830f7-0175-1000-f04e-ebef92f3d1b6","attachments":{"attachment":{"ref":"EIDbc1c1536-e1e5-456b-8b76-058fe5d9169c"}},"parent":{"ref":"EID6ee82fbe-0175-1000-5e2c-c817094604ee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:11:52Z","duration":3,"status":"PASSED"},{"id":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8317a-0175-1000-1293-48abb6e369e5","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee8317a-0175-1000-54be-e22f58f9a995","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:11:52Z","duration":11,"status":"FAILED"},{"id":"EID6ee83185-0175-1000-e296-d382446d72e7","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83185-0175-1000-0e4c-71a539c27288","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83185-0175-1000-44cb-56257cbd3b84","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83185-0175-1000-a702-1e9080ba0706","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83185-0175-1000-6c7f-bad4a01ad62d","parent":{"ref":"EID6ee8310e-0175-1000-fcf5-415c01c6f1f7"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDffe6bc5b-f108-4671-969c-cbfcae5d4077"},{"ref":"EID9f9ce48d-0836-4f72-babd-c6b63e85a216"},{"ref":"EID51ae9de7-a71c-430f-9e6c-6ed91979e414"}]},"parent":{"ref":"EID6ee82fbe-0175-1000-5e2c-c817094604ee"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:11:52Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:11:51Z","duration":455,"status":"FAILED"},{"id":"EID6ee83185-0175-1000-1e33-f632a781ca28","testStepResults":{"TestStepResult":[{"id":"EID6ee83185-0175-1000-d9cd-7ff1464c46f9","parent":{"ref":"EID6ee83185-0175-1000-1e33-f632a781ca28"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83185-0175-1000-c98e-13f0e1ebcf86","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee8326c-0175-1000-fdb1-50d111cd0de9","parent":{"ref":"EID6ee83185-0175-1000-c98e-13f0e1ebcf86"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee8326c-0175-1000-f8a3-984674a9391e","parent":{"ref":"EID6ee83185-0175-1000-c98e-13f0e1ebcf86"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee8326c-0175-1000-10d3-d7d1927d9173","parent":{"ref":"EID6ee83185-0175-1000-c98e-13f0e1ebcf86"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee8326c-0175-1000-bd01-9afa4ae60f79","parent":{"ref":"EID6ee83185-0175-1000-c98e-13f0e1ebcf86"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDde908f7d-a610-4c84-8a53-68dcfbc750f7"},{"ref":"EIDecbb9bad-3e2d-4e67-a959-81dfb329d6e1"},{"ref":"EID216e2a26-d5aa-4592-993a-5df60dfcad5a"}]},"parent":{"ref":"EID6ee83185-0175-1000-1e33-f632a781ca28"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:11:52Z","duration":142,"status":"PASSED"},{"id":"EID6ee8326c-0175-1000-4445-1db116802d3e","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee8327f-0175-1000-969d-74a5516b6d4a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee833c8-0175-1000-c39b-fefd7832970a","parent":{"ref":"EID6ee8327f-0175-1000-969d-74a5516b6d4a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee833c8-0175-1000-c9fa-f2de50b95244","parent":{"ref":"EID6ee8327f-0175-1000-969d-74a5516b6d4a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee833c8-0175-1000-2798-ce034553e736","parent":{"ref":"EID6ee8327f-0175-1000-969d-74a5516b6d4a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe819cfa8-756a-43c5-8b3b-928bff1d2347"},{"ref":"EIDe22297ac-134d-44c5-aac1-532795ff3246"},{"ref":"EIDdfcde798-83ff-417f-beac-d7facbf14897"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:52Z","duration":156,"status":"PASSED"},{"id":"EID6ee833ca-0175-1000-c118-910f683f8f7e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee83494-0175-1000-ff15-1ae2e7cc6dd4","parent":{"ref":"EID6ee833ca-0175-1000-c118-910f683f8f7e"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83494-0175-1000-8343-db3bcf2d9342","parent":{"ref":"EID6ee833ca-0175-1000-c118-910f683f8f7e"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee83494-0175-1000-e5fa-327a50b6cde6","parent":{"ref":"EID6ee833ca-0175-1000-c118-910f683f8f7e"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9db833a8-b2b5-4cfc-bec9-ae6e46bb2502"},{"ref":"EID6fbfa889-175e-49ef-89fc-8d3a7baa49db"},{"ref":"EID560972cd-58ef-4558-942c-402dfd2e5d6d"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:52Z","duration":148,"status":"PASSED"},{"id":"EID6ee83496-0175-1000-249f-ebe647001fcf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee834ee-0175-1000-d2f2-9c089a0c6953","parent":{"ref":"EID6ee83496-0175-1000-249f-ebe647001fcf"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee834ee-0175-1000-03ad-7d49349a7f31","parent":{"ref":"EID6ee83496-0175-1000-249f-ebe647001fcf"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee834ee-0175-1000-ccf3-1bce280abad4","parent":{"ref":"EID6ee83496-0175-1000-249f-ebe647001fcf"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6ce432ce-da2d-4976-b73a-f93143a72459"},{"ref":"EIDac19955b-aa58-4de3-9270-ce2297af1741"},{"ref":"EIDf3484fe6-7e55-4963-ab0b-f641ca0eef43"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:11:52Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6ee83185-0175-1000-1e33-f632a781ca28"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:11:52Z","duration":643,"status":"PASSED"},{"id":"EID6ee834f0-0175-1000-0842-8c929d07f810","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee83561-0175-1000-f4be-0a1c3711e929","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee834f0-0175-1000-0842-8c929d07f810"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:11:53Z","duration":11,"status":"FAILED"},{"id":"EID6ee8356c-0175-1000-8871-bb0a9e376deb","parent":{"ref":"EID6ee834f0-0175-1000-0842-8c929d07f810"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee8356c-0175-1000-4620-d985ef891c91","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee834f0-0175-1000-0842-8c929d07f810"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"FAILED"},{"id":"EID6ee8356c-0175-1000-b3d5-edc1e6b1608a","parent":{"ref":"EID6ee834f0-0175-1000-0842-8c929d07f810"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3d859bc8-f039-4c33-a2b4-2d09e1e88d50"},{"ref":"EID3194e79d-0547-4467-8bd1-b6e60a7eca10"},{"ref":"EID29547c9a-4929-42c7-a54b-2e3fd455d62b"}]},"parent":{"ref":"EID6ee83185-0175-1000-1e33-f632a781ca28"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:11:53Z","duration":28,"status":"FAILED"}]},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:11:52Z","duration":999,"status":"FAILED"},{"id":"EID6ee8356d-0175-1000-ef2a-9c3a4e8481d3","testStepResults":{"TestStepResult":{"id":"EID6ee8356d-0175-1000-fb35-4cb618595d09","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee835df-0175-1000-c1d5-12b268f97e0f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6ee8356d-0175-1000-fb35-4cb618595d09"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:11:53Z","duration":11,"status":"FAILED"},{"id":"EID6ee835ea-0175-1000-3c14-06efd7e2a57e","parent":{"ref":"EID6ee8356d-0175-1000-fb35-4cb618595d09"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"},{"id":"EID6ee835ea-0175-1000-f509-7b293c78a12f","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee8356d-0175-1000-fb35-4cb618595d09"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"FAILED"},{"id":"EID6ee835ea-0175-1000-1e92-6c411968daa5","parent":{"ref":"EID6ee8356d-0175-1000-fb35-4cb618595d09"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf58f61d2-4a5c-4039-9aed-d9574844fb95"},{"ref":"EID9267749e-f2ea-49fc-a61e-981e93d08a3b"},{"ref":"EID734e0360-2450-4d46-abd1-19b99691ab42"}]},"parent":{"ref":"EID6ee8356d-0175-1000-ef2a-9c3a4e8481d3"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:11:53Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6ee81f00-0175-1000-b9d2-6b0b86304942"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:11:53Z","duration":125,"status":"FAILED"}]},"parent":{"ref":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:11:47Z","duration":5866,"status":"FAILED"},{"id":"EID6ee835ea-0175-1000-853a-246efdeba227","testCaseResults":{"TestCaseResult":[{"id":"EID6ee835eb-0175-1000-d3a6-6e2e41b71bbf","testStepResults":{"TestStepResult":{"id":"EID6ee835eb-0175-1000-6481-d9facc805b7d","parent":{"ref":"EID6ee835eb-0175-1000-d3a6-6e2e41b71bbf"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835eb-0175-1000-a3b7-bc283806c0b6","testStepResults":{"TestStepResult":{"id":"EID6ee835eb-0175-1000-3545-7d4589a88c0c","parent":{"ref":"EID6ee835eb-0175-1000-a3b7-bc283806c0b6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835eb-0175-1000-5a64-ef0014ed1284","testStepResults":{"TestStepResult":{"id":"EID6ee835eb-0175-1000-0d45-6056574e6004","parent":{"ref":"EID6ee835eb-0175-1000-5a64-ef0014ed1284"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835ec-0175-1000-fdab-779924c1a5d6","testStepResults":{"TestStepResult":{"id":"EID6ee835ec-0175-1000-37d1-3597e0da0634","parent":{"ref":"EID6ee835ec-0175-1000-fdab-779924c1a5d6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835ec-0175-1000-7c13-44dddc3d3bec","testStepResults":{"TestStepResult":{"id":"EID6ee835ec-0175-1000-25aa-a8f28aa4d58b","parent":{"ref":"EID6ee835ec-0175-1000-7c13-44dddc3d3bec"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835ec-0175-1000-621a-54f5afab4dc2","testStepResults":{"TestStepResult":{"id":"EID6ee835ec-0175-1000-0d4f-f619223ac6db","parent":{"ref":"EID6ee835ec-0175-1000-621a-54f5afab4dc2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"},{"id":"EID6ee835ec-0175-1000-f22b-a5b66606a574","testStepResults":{"TestStepResult":{"id":"EID6ee835ec-0175-1000-2029-101ee89346e0","parent":{"ref":"EID6ee835ec-0175-1000-f22b-a5b66606a574"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2124,"status":"SKIPPED"}},"parent":{"ref":"EID6ee835ea-0175-1000-853a-246efdeba227"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:11:53Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:11:53Z","duration":2,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EIDe5c9c901-4457-472e-9537-b63233499839","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDe5c9c901-4457-472e-9537-b63233499839"}},{"type":"ServiceEndpoint","id":"EID57160d5f-ee10-4178-b198-94bffef30ae1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID1d35df50-fe19-4aae-b0e0-39abd602b6f0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID5c35ffd9-4e40-478e-b086-c487285a5547","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5c35ffd9-4e40-478e-b086-c487285a5547"}},{"type":"ServiceResponse","id":"EID9e12e342-9f20-435a-be9c-731c126081a8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9e12e342-9f20-435a-be9c-731c126081a8"}},{"type":"ServiceEndpoint","id":"EIDfd481178-b637-469b-89ec-0c3fafb1a725","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID74f8f909-a808-4f56-bb5a-166b92fce49d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDccc69550-a216-4f67-a36f-2c656685538e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID6fbfa889-175e-49ef-89fc-8d3a7baa49db","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID6fbfa889-175e-49ef-89fc-8d3a7baa49db"}},{"type":"GetParameter","id":"EIDefb58cd2-c783-416d-8ea7-d88e23fd5962","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID04606f7c-f721-4eeb-a07e-bf2d4b2326be","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDd5b10b6f-7cc1-4813-ab1b-69720bcbf513","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDd5b10b6f-7cc1-4813-ab1b-69720bcbf513"}},{"type":"GetParameter","id":"EID26f7cdc8-21c8-473b-8da3-b3eefc29ad8d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8948c938-a02f-4b8a-af55-4e49c3d09eb2","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID8948c938-a02f-4b8a-af55-4e49c3d09eb2"}},{"type":"ServiceResponse","id":"EID5ebcc032-498a-49db-bdc6-8465b84dc9f8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5ebcc032-498a-49db-bdc6-8465b84dc9f8"}},{"type":"ServiceResponse","id":"EID4ab0ccb7-3490-4b62-be6b-6c127caf4da1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID4ab0ccb7-3490-4b62-be6b-6c127caf4da1"}},{"type":"Error","id":"EID47668d9c-d836-4eee-8657-64f18d30ad8d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID47668d9c-d836-4eee-8657-64f18d30ad8d"}},{"type":"ServiceEndpoint","id":"EID4e2f6a80-816c-4533-9f7e-f7b74c49205b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID99c43d21-4d5d-4c01-bee0-baf00e96148a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3f1a35bf-0a32-4707-a306-20797faede53","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDbee1d4fe-7e63-49d7-b46b-9671ebb7b88d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe75f2867-28a6-4a4f-bfa4-afd5ae372004","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDe75f2867-28a6-4a4f-bfa4-afd5ae372004"}},{"type":"GetParameter","id":"EIDf7c50255-830f-42b2-a964-540a29e8fef9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID005c78b3-e79b-4456-a956-d62761d1f198","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID005c78b3-e79b-4456-a956-d62761d1f198"}},{"type":"ServiceEndpoint","id":"EIDde908f7d-a610-4c84-8a53-68dcfbc750f7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EIDe819cfa8-756a-43c5-8b3b-928bff1d2347","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EIDacf34ad6-0369-4fee-9d2c-2607b825b1b6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDad7ca95e-efac-4ab3-8f48-ba7f6682d66a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDe16361db-1d57-48d4-8d8a-c75955a6fdcb","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDe16361db-1d57-48d4-8d8a-c75955a6fdcb"}},{"type":"GetParameter","id":"EID0c6db644-3a0d-43c4-88db-5aea076e205b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID909578dd-8b27-44f5-a719-aa22932c1a68","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID909578dd-8b27-44f5-a719-aa22932c1a68"}},{"type":"GetParameter","id":"EID5160f212-13c4-4b86-99a7-4e8145906065","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID3d859bc8-f039-4c33-a2b4-2d09e1e88d50","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDbdce837e-3d55-427b-9a5c-6b733c44bc16","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID238ae821-8b5c-4a32-9098-d97073b4b236","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID238ae821-8b5c-4a32-9098-d97073b4b236"}},{"type":"ServiceResponse","id":"EID0ed51c0a-4f65-4dae-aa90-3c76918abbe6","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID0ed51c0a-4f65-4dae-aa90-3c76918abbe6"}},{"type":"GetParameter","id":"EID280b1afc-0d01-4aef-b680-6290f17f7d25","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID10c8dc48-8b2d-4f58-8e1a-9e08d8567ac8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID10c8dc48-8b2d-4f58-8e1a-9e08d8567ac8"}},{"type":"GetParameter","id":"EIDdfcde798-83ff-417f-beac-d7facbf14897","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Error","id":"EIDa4ade98f-ddb8-4dfa-9a38-1393272f3365","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDa4ade98f-ddb8-4dfa-9a38-1393272f3365"}},{"type":"ServiceResponse","id":"EID9f9ce48d-0836-4f72-babd-c6b63e85a216","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9f9ce48d-0836-4f72-babd-c6b63e85a216"}},{"type":"ServiceResponse","id":"EID8c7dacf1-d20e-402e-a9c5-0a1d3b9361b9","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID8c7dacf1-d20e-402e-a9c5-0a1d3b9361b9"}},{"type":"ServiceResponse","id":"EID63d2243e-fa40-429e-8a5b-99a09de6c9e9","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID63d2243e-fa40-429e-8a5b-99a09de6c9e9"}},{"type":"ServiceEndpoint","id":"EIDffe6bc5b-f108-4671-969c-cbfcae5d4077","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID29547c9a-4929-42c7-a54b-2e3fd455d62b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID5f196d18-c2f5-4f72-8a9e-3a90417beb49","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5f196d18-c2f5-4f72-8a9e-3a90417beb49"}},{"type":"ServiceEndpoint","id":"EID77a3e298-1e1a-4199-93b4-3d83f80bebd7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID69cdb2dd-9b02-4089-a51c-8e44dd60fb4f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID5a65b983-3eb3-46e2-8a74-406e19c7f863","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5a65b983-3eb3-46e2-8a74-406e19c7f863"}},{"type":"Error","id":"EID656a19e6-0c6c-4f2d-ae63-af3108a03e67","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID656a19e6-0c6c-4f2d-ae63-af3108a03e67"}},{"type":"ServiceEndpoint","id":"EID9db833a8-b2b5-4cfc-bec9-ae6e46bb2502","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID4cd79013-2ff8-4d4c-a620-4bad7a8f0892","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID4cd79013-2ff8-4d4c-a620-4bad7a8f0892"}},{"type":"ServiceResponse","id":"EIDf30cbe72-1767-42e3-a3d2-e8d679f8275e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDf30cbe72-1767-42e3-a3d2-e8d679f8275e"}},{"type":"Message","id":"EID5a325bb3-7777-46bf-b68e-f9ab2ca0706e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5a325bb3-7777-46bf-b68e-f9ab2ca0706e"}},{"type":"Error","id":"EIDf99163cc-65f9-4a8c-bdd5-28d6e4bc03b5","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDf99163cc-65f9-4a8c-bdd5-28d6e4bc03b5"}},{"type":"ServiceEndpoint","id":"EID3488b72d-1c3d-46e4-9343-9d91b13f0889","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID2a893002-8762-4596-9017-39af2f25261d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID2a893002-8762-4596-9017-39af2f25261d"}},{"type":"ServiceResponse","id":"EID0ebb2204-2071-46f7-a5ff-322e609eada2","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID0ebb2204-2071-46f7-a5ff-322e609eada2"}},{"type":"ServiceResponse","id":"EID618118df-5a84-4293-881e-9238a2fd38c9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID618118df-5a84-4293-881e-9238a2fd38c9"}},{"type":"GetParameter","id":"EIDef59001a-46aa-4aae-ab1b-ccfed8d33bf1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID734e0360-2450-4d46-abd1-19b99691ab42","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDbc1c1536-e1e5-456b-8b76-058fe5d9169c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDbc1c1536-e1e5-456b-8b76-058fe5d9169c"}},{"type":"ServiceEndpoint","id":"EIDf58f61d2-4a5c-4039-9aed-d9574844fb95","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6501b552-1082-4981-b216-13788dd3110f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID05e342ed-f457-45cc-94f5-82e6c1b985f1","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID05e342ed-f457-45cc-94f5-82e6c1b985f1"}},{"type":"ServiceResponse","id":"EID883f6748-5b89-4e48-87d2-467616e58b4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID883f6748-5b89-4e48-87d2-467616e58b4f"}},{"type":"ServiceResponse","id":"EID56326532-31e6-4eb0-80d6-1661ab79d79a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID56326532-31e6-4eb0-80d6-1661ab79d79a"}},{"type":"GetParameter","id":"EIDed135caf-8fb3-409e-8017-d7062009ce15","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2441ac55-b96b-4349-b155-8a7002323c7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID840c0ff6-01da-4a27-9c7b-4ad1c42374cf","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID840c0ff6-01da-4a27-9c7b-4ad1c42374cf"}},{"type":"ServiceResponse","id":"EIDd377bb7d-a9ef-4e18-a04a-c51901d7077a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDd377bb7d-a9ef-4e18-a04a-c51901d7077a"}},{"type":"GetParameter","id":"EIDde387730-7c06-46ca-adb0-107e873134fa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID3bb3b979-703f-4352-a482-f2264014dbc5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa405d80e-7f0e-49e8-864b-0cbdd65ebf9c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1cb020e6-4261-4aa0-91b8-c98fd5ee513b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0d82b0b2-b9e6-47a4-8af4-68dd765c9163","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID0d82b0b2-b9e6-47a4-8af4-68dd765c9163"}},{"type":"ServiceEndpoint","id":"EID28f7891e-f39c-476a-ac07-81ed763f0725","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID7e11f05f-92ef-4a57-b523-26a644bfd4a0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID94e2ae44-284d-4d29-ab03-4a32305ef58b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID2e03ef2a-fa37-40e7-ad07-941d2245ba6c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID2e03ef2a-fa37-40e7-ad07-941d2245ba6c"}},{"type":"ServiceResponse","id":"EID8bdb87bd-7ee8-431b-9f4d-9d868a590ed1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID8bdb87bd-7ee8-431b-9f4d-9d868a590ed1"}},{"type":"ServiceEndpoint","id":"EIDa4f730b4-1f81-49b9-bf99-f9c209eb902c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6ce432ce-da2d-4976-b73a-f93143a72459","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EIDc9b5b10f-7193-49b9-84cf-83ab7421dba1","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDc9b5b10f-7193-49b9-84cf-83ab7421dba1"}},{"type":"ServiceResponse","id":"EID9b4a0a45-44c8-42e6-908a-3e6f21174048","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9b4a0a45-44c8-42e6-908a-3e6f21174048"}},{"type":"ServiceEndpoint","id":"EID9f31785d-8766-4ef1-b09b-da05cbf2df41","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID137eac7b-b6bc-417a-9f79-93af103eeb07","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID137eac7b-b6bc-417a-9f79-93af103eeb07"}},{"type":"ServiceEndpoint","id":"EIDabd66b2b-80bd-4a00-84a7-914887ba0d58","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDaf62cace-b7bf-41ed-8a2d-e904de8889dc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDaf62cace-b7bf-41ed-8a2d-e904de8889dc"}},{"type":"ServiceEndpoint","id":"EID1cb5bed5-882d-459b-97c1-ee54f481f47b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID52b2c733-683a-4816-8c4e-14b38e11cd5c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDeac8a133-b5e2-4030-aa50-47539f30d44a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"GetParameter","id":"EID05498296-2d43-4493-bde7-bae1dee7ff8e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf578ff27-bec3-4f1b-beeb-075fe9e897b0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd358971a-97f3-4f1f-9cd7-b621ccc71f45","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID707903e7-dba3-45b1-8eee-e0d448af9725","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID707903e7-dba3-45b1-8eee-e0d448af9725"}},{"type":"GetParameter","id":"EID449f77a4-cec0-4e34-a0b5-1ae979a7a4fb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDe83fde30-9339-465d-8167-d7706a5b7e2e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID193887c9-5259-4798-9cdb-98f5ed9cb814","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID193887c9-5259-4798-9cdb-98f5ed9cb814"}},{"type":"ServiceResponse","id":"EID9267749e-f2ea-49fc-a61e-981e93d08a3b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9267749e-f2ea-49fc-a61e-981e93d08a3b"}},{"type":"ServiceResponse","id":"EID689b79af-c28a-4492-9935-7c430b6033ee","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID689b79af-c28a-4492-9935-7c430b6033ee"}},{"type":"GetParameter","id":"EID216e2a26-d5aa-4592-993a-5df60dfcad5a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"Message","id":"EID78c3e375-e538-4e24-8d71-2fcd7928da5d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID78c3e375-e538-4e24-8d71-2fcd7928da5d"}},{"type":"GetParameter","id":"EIDabe70895-6cb5-42fc-8e5e-445ded0d7e2d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"LogFile","id":"EID9368503a-50c8-4b4e-8256-e631db89ee21","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9368503a-50c8-4b4e-8256-e631db89ee21"}},{"type":"Error","id":"EID22e6975d-bc48-4e18-aa5c-0d3efbb71355","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID22e6975d-bc48-4e18-aa5c-0d3efbb71355"}},{"type":"GetParameter","id":"EIDd422e796-9fee-453b-9a38-d265c1076b64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa1282009-90b4-4a3e-92fd-fb13cfefe9d0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf3484fe6-7e55-4963-ab0b-f641ca0eef43","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID2548147d-6b75-47dc-98a5-b5bb2fbb9c2c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID2548147d-6b75-47dc-98a5-b5bb2fbb9c2c"}},{"type":"ServiceEndpoint","id":"EIDde71cd63-5e0f-4d8b-8c12-613b4dc69318","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDecbb9bad-3e2d-4e67-a959-81dfb329d6e1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDecbb9bad-3e2d-4e67-a959-81dfb329d6e1"}},{"type":"Message","id":"EIDed972fd2-09d3-4b9c-ac02-4753b81ed2d8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDed972fd2-09d3-4b9c-ac02-4753b81ed2d8"}},{"type":"ServiceEndpoint","id":"EID4884659e-4be9-41b8-bed2-d192e54290a0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID484ff1cb-f0b5-4c86-8643-a8dac243d6d3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID484ff1cb-f0b5-4c86-8643-a8dac243d6d3"}},{"type":"ServiceEndpoint","id":"EID39387f69-024f-41aa-8764-10c751aee3be","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDa34b4633-1000-4f61-b262-655f40b945e2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDa34b4633-1000-4f61-b262-655f40b945e2"}},{"type":"ServiceResponse","id":"EIDca4770f9-aeca-465e-aa04-edb30636a802","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDca4770f9-aeca-465e-aa04-edb30636a802"}},{"type":"ServiceResponse","id":"EID4d969194-8d3f-4a5a-b3b7-cdfc511a3bc8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID4d969194-8d3f-4a5a-b3b7-cdfc511a3bc8"}},{"type":"GetParameter","id":"EID51ae9de7-a71c-430f-9e6c-6ed91979e414","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID323304e8-852f-443f-9f66-508bdd02e879","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID323304e8-852f-443f-9f66-508bdd02e879"}},{"type":"Error","id":"EID26c1c293-f61b-4792-8962-c06efa20a0bf","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID26c1c293-f61b-4792-8962-c06efa20a0bf"}},{"type":"Message","id":"EID72c82408-ff73-4249-b07d-379242d9b889","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID72c82408-ff73-4249-b07d-379242d9b889"}},{"type":"ServiceEndpoint","id":"EIDac1e5b88-72a6-484a-a67f-8ffe90193dc0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID80c5c137-f6b8-47ae-bbe1-f492ba9a5b7e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID80c5c137-f6b8-47ae-bbe1-f492ba9a5b7e"}},{"type":"Message","id":"EIDb19642ec-3a71-4b8c-9a7f-111c113a1730","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDb19642ec-3a71-4b8c-9a7f-111c113a1730"}},{"type":"GetParameter","id":"EID66be98f2-69d2-4fd3-90d7-6586e6fad1de","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDd6796bb0-47b6-40b2-a038-5100fbd83113","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDd6796bb0-47b6-40b2-a038-5100fbd83113"}},{"type":"GetParameter","id":"EIDf660e2fb-2330-4362-b682-0849c10184e1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDaa6053c5-63e9-4745-92a8-0391a5fde546","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDaa6053c5-63e9-4745-92a8-0391a5fde546"}},{"type":"Error","id":"EID42ffeeb1-1cd5-4af8-b1f6-12495e9187ec","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID42ffeeb1-1cd5-4af8-b1f6-12495e9187ec"}},{"type":"GetParameter","id":"EID601d8a9f-ae70-43b5-93a8-f840d3b9d34f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe8ed7353-9339-46a0-ad45-f884aaf3b482","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDe8ed7353-9339-46a0-ad45-f884aaf3b482"}},{"type":"Message","id":"EID2cef7069-9734-49fe-a4b7-9774f57570ec","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID2cef7069-9734-49fe-a4b7-9774f57570ec"}},{"type":"GetParameter","id":"EID9ad778d8-b62a-48da-b3fa-b57dde97bcaa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID560972cd-58ef-4558-942c-402dfd2e5d6d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EID336b7a2c-0015-4473-bdab-2c916bfc064f","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID336b7a2c-0015-4473-bdab-2c916bfc064f"}},{"type":"GetParameter","id":"EID1ec8b84d-01ff-4443-912d-d8a02e19b517","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDdb552c27-9650-458a-970e-08f3d3e56412","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDdb552c27-9650-458a-970e-08f3d3e56412"}},{"type":"ServiceResponse","id":"EIDe22297ac-134d-44c5-aac1-532795ff3246","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDe22297ac-134d-44c5-aac1-532795ff3246"}},{"type":"ServiceEndpoint","id":"EID45e6c0f0-0c3f-491b-a7fe-6735d09b2022","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID9f119e6d-b990-45df-a6e5-c96a57e2e839","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9f119e6d-b990-45df-a6e5-c96a57e2e839"}},{"type":"ServiceResponse","id":"EIDaa4351dd-519e-43c0-9e04-e5a1e1249b2a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDaa4351dd-519e-43c0-9e04-e5a1e1249b2a"}},{"type":"Error","id":"EIDf178e6ff-0b22-4bf1-9374-bc911402a017","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDf178e6ff-0b22-4bf1-9374-bc911402a017"}},{"type":"Error","id":"EIDb550be5d-a933-451e-859b-bbb29ce5683e","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDb550be5d-a933-451e-859b-bbb29ce5683e"}},{"type":"ServiceEndpoint","id":"EID342d8fb2-134f-40c5-9c77-0eb8f1ef2581","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID6f001ac4-fbd0-40dc-8011-20b239edd663","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID6f001ac4-fbd0-40dc-8011-20b239edd663"}},{"type":"Message","id":"EID5756f22c-be9b-4310-b351-bd8573cc0b7d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID5756f22c-be9b-4310-b351-bd8573cc0b7d"}},{"type":"ServiceEndpoint","id":"EIDe01234c9-ebe3-42b4-8047-437614012321","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceEndpoint","id":"EIDdf0e033f-12bd-4c9b-a22d-562f347e80b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8c919632-2d5d-4d2f-9f0e-28e3a1f7af1a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID1f8c8d91-4d34-47d5-ae09-76b1e6cf3043","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID3194e79d-0547-4467-8bd1-b6e60a7eca10","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID3194e79d-0547-4467-8bd1-b6e60a7eca10"}},{"type":"ServiceEndpoint","id":"EID41b57361-d449-4efd-9f70-c1e4ed37ab2e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID589f3593-b777-413a-a415-56535b08f2b6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID589f3593-b777-413a-a415-56535b08f2b6"}},{"type":"ServiceResponse","id":"EIDac19955b-aa58-4de3-9270-ce2297af1741","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EIDac19955b-aa58-4de3-9270-ce2297af1741"}},{"type":"ServiceResponse","id":"EID0561434b-9270-4fcb-9f79-00d8b9003765","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID0561434b-9270-4fcb-9f79-00d8b9003765"}},{"type":"ServiceEndpoint","id":"EIDc0b914c5-94e7-4698-9521-eeae67e28f94","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID9409c737-55fb-41d6-a2c1-c71f5c66c73f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID9409c737-55fb-41d6-a2c1-c71f5c66c73f"}},{"type":"Message","id":"EID7f845e01-5d4c-494b-8438-e3a6583e1333","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID7f845e01-5d4c-494b-8438-e3a6583e1333"}},{"type":"Message","id":"EID3776c821-694e-4bf8-a798-a89b4fb3aef0","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EIDb7e3d86f-5961-4c58-90d9-0c52a318a76e/Attachments/EID3776c821-694e-4bf8-a798-a89b4fb3aef0"}}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:11:34Z","duration":19107,"status":"FAILED"}}}}}
11:12:08.353 [print] EIDdfa03703-3a48-4733-8a29-b620ef4363f3
11:12:08.353 [print] FAILED
11:12:08.354 [print] FAILED
11:12:08.354 [print] Conformance Class Download Service - Pre-defined Atom
11:12:08.354 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/dfa03703-3a48-4733-8a29-b620ef4363f3.json
11:12:08.363 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/dfa03703-3a48-4733-8a29-b620ef4363f3.json
11:12:08.364 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDdfa03703-3a48-4733-8a29-b620ef4363f3/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:12:08.387 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:12:08.387 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
11:06:37.738 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:06:37.740 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:38.148 response time in milliseconds: 407.36 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:06:37 GMT 1 < X-Cnection: [close, close]
11:06:38.166 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:38.563 response time in milliseconds: 396.57 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:06:38 GMT 1 < X-Cnection: [close, close]
11:06:07.006 [print] testing url:https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml
11:06:07.007 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:08.320 response time in milliseconds: 1312.98 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:08 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642233E63DB864D 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:06:08.233 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:09.110 response time in milliseconds: 876.72 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 11308 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:06:08 GMT 1 < Etag: "6a5a193d3183c09bef2e90757c76cd43-1" 1 < Last-Modified: Wed, 20 Nov 2019 11:50:24 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 1642233E94400A80 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:06:09.111 assertion failed: path: $['Content-Type'][0], actual: 'application/xml', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:19.053 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegennacht/v1/wfs?service=WFS&request=GetCapabilities"}}}
11:10:19.054 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 314
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegennacht/v1/wfs?service=WFS&request=GetCapabilities"}}}
11:10:20.856 response time in milliseconds: 1693.68
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:20 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883420669","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:20.863 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:12:16.401 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:12:16.401 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:12:42.990 response time in milliseconds: 25824.43
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:12:42 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:12:19 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/b8a35966-ea81-4b1d-937b-fbeaf005c2a1.json","testRuns":{"TestRun":{"id":"EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:12:19.143Z","testTasks":{"TestTask":{"id":"EID3985d879-8101-4ec9-9a19-8185612a02fe","parent":{"ref":"EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EIDb91ad571-c705-4d6a-80a8-ff61f5313416"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EIDb91ad571-c705-4d6a-80a8-ff61f5313416","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:12:16.843Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:12:18.567Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:12:43.007 [print] EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1
11:12:43.007 [print] UNDEFINED
11:12:43.008 [print] Conformance Class Download Service - Pre-defined Atom
11:12:43.008 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/b8a35966-ea81-4b1d-937b-fbeaf005c2a1.json
11:12:43.008 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/log
11:12:43.011 [print] statuspath TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1
11:12:43.011 [print] progresspath TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/progress
11:12:43.012 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:43.541 response time in milliseconds: 528.57
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:12:43 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:12:19 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:12:19 UTC 2020)","28.10.2020 11:12:19 - Resolving Executable Test Suite dependencies","28.10.2020 11:12:19 - Preparing 1 Test Task:","28.10.2020 11:12:19 - TestTask 1 (3985d879-8101-4ec9-9a19-8185612a02fe)","28.10.2020 11:12:19 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:12:19 - with parameters: ","28.10.2020 11:12:19 - etf.testcases = *","28.10.2020 11:12:19 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:12:19 - Setting state to CREATED","28.10.2020 11:12:19 - Changed state from CREATED to INITIALIZING","28.10.2020 11:12:19 - Starting TestRun.b8a35966-ea81-4b1d-937b-fbeaf005c2a1 at 2020-10-28T11:12:21Z","28.10.2020 11:12:21 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:12:21 - Project Properties: ","28.10.2020 11:12:21 - etf.testcases - * ","28.10.2020 11:12:21 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:12:21 - username - ","28.10.2020 11:12:21 - authUser - ","28.10.2020 11:12:21 - authMethod - basic ","28.10.2020 11:12:21 - TestRunTask initialized","28.10.2020 11:12:25 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:12:25 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:27 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:28 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:12:43.541 [print] {
"val": "148",
"max": "149",
"log": [
"28.10.2020 11:12:19 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:12:19 UTC 2020)",
"28.10.2020 11:12:19 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:12:19 - Preparing 1 Test Task:",
"28.10.2020 11:12:19 - TestTask 1 (3985d879-8101-4ec9-9a19-8185612a02fe)",
"28.10.2020 11:12:19 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:12:19 - with parameters: ",
"28.10.2020 11:12:19 - etf.testcases = *",
"28.10.2020 11:12:19 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:12:19 - Setting state to CREATED",
"28.10.2020 11:12:19 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:12:19 - Starting TestRun.b8a35966-ea81-4b1d-937b-fbeaf005c2a1 at 2020-10-28T11:12:21Z",
"28.10.2020 11:12:21 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:12:21 - Project Properties: ",
"28.10.2020 11:12:21 - etf.testcases - * ",
"28.10.2020 11:12:21 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:12:21 - username - ",
"28.10.2020 11:12:21 - authUser - ",
"28.10.2020 11:12:21 - authMethod - basic ",
"28.10.2020 11:12:21 - TestRunTask initialized",
"28.10.2020 11:12:25 ERROR Response status code:500 is not in acceptable list of status codes",
"28.10.2020 11:12:25 ERROR Assertion failed with error 'TR.unexpectedHtml'",
"28.10.2020 11:12:27 ERROR Assertion failed with error 'TR.unexpectedHtml'",
"28.10.2020 11:12:28 ERROR Assertion failed with error 'TR.uniqueDatasetIdentifiers'",
"28.10.2020 11:12:29 ERROR Assertion failed with error 'TR.missingLinkToMetadataRecordForDownloadService'",
"28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:29 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:12:29 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:29 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:29 ERROR Assertion failed with error 'TR.missingOneFeedEntryWithDlFile'",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingElement'",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingFeedUpdatedInformation'",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingLinkToRegistry'",
"28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:30 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:12:31 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:32 ERROR Assertion failed with error 'TR.missingFeedRootElement'",
"28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes",
"28.10.2020 11:12:32 ERROR Assertion failed with error 'TR.missingFeedRootElement'"
]
}
11:12:43.542 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:44.060 response time in milliseconds: 514.24
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:12:43 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:12:19 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:12:19 UTC 2020)","28.10.2020 11:12:19 - Resolving Executable Test Suite dependencies","28.10.2020 11:12:19 - Preparing 1 Test Task:","28.10.2020 11:12:19 - TestTask 1 (3985d879-8101-4ec9-9a19-8185612a02fe)","28.10.2020 11:12:19 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:12:19 - with parameters: ","28.10.2020 11:12:19 - etf.testcases = *","28.10.2020 11:12:19 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:12:19 - Setting state to CREATED","28.10.2020 11:12:19 - Changed state from CREATED to INITIALIZING","28.10.2020 11:12:19 - Starting TestRun.b8a35966-ea81-4b1d-937b-fbeaf005c2a1 at 2020-10-28T11:12:21Z","28.10.2020 11:12:21 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:12:21 - Project Properties: ","28.10.2020 11:12:21 - etf.testcases - * ","28.10.2020 11:12:21 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:12:21 - username - ","28.10.2020 11:12:21 - authUser - ","28.10.2020 11:12:21 - authMethod - basic ","28.10.2020 11:12:21 - TestRunTask initialized","28.10.2020 11:12:25 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:12:25 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:27 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:28 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:12:44.060 retry condition not satisfied: response.val == response.max
11:12:44.060 sleeping before retry #1
11:12:49.061 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:49.590 response time in milliseconds: 524.77
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:12:49 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:12:19 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:12:19 UTC 2020)","28.10.2020 11:12:19 - Resolving Executable Test Suite dependencies","28.10.2020 11:12:19 - Preparing 1 Test Task:","28.10.2020 11:12:19 - TestTask 1 (3985d879-8101-4ec9-9a19-8185612a02fe)","28.10.2020 11:12:19 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:12:19 - with parameters: ","28.10.2020 11:12:19 - etf.testcases = *","28.10.2020 11:12:19 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:12:19 - Setting state to CREATED","28.10.2020 11:12:19 - Changed state from CREATED to INITIALIZING","28.10.2020 11:12:19 - Starting TestRun.b8a35966-ea81-4b1d-937b-fbeaf005c2a1 at 2020-10-28T11:12:21Z","28.10.2020 11:12:21 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:12:21 - Project Properties: ","28.10.2020 11:12:21 - etf.testcases - * ","28.10.2020 11:12:21 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:12:21 - username - ","28.10.2020 11:12:21 - authUser - ","28.10.2020 11:12:21 - authMethod - basic ","28.10.2020 11:12:21 - TestRunTask initialized","28.10.2020 11:12:25 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:12:25 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:27 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:12:28 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:29 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:12:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:31 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:12:32 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:12:32 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:12:49.590 retry condition not satisfied: response.val == response.max
11:12:49.590 sleeping before retry #2
11:12:54.591 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:56.605 response time in milliseconds: 2014.34
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:12:56 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:12:56.606 retry condition satisfied
11:12:56.606 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:12:56.607 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDb8a35966-ea81-4b1d-937b-fbeaf005c2a1
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:13:04.790 response time in milliseconds: 8183.26
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Cache-Control: public, max-age=120
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:13:04 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Last-Modified: Wed, 28 Oct 2020 11:12:47 GMT
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":0,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/.json"}}
11:13:04.791 [print]
11:13:04.792 [print]
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:13:07.696 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml
11:13:07.697 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:08.124 response time in milliseconds: 427.20 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4237 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:08 GMT 1 < Etag: "0d9adcb43d973daed7753314ef78d57b-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:11:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223A0285E3AA3 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
11:13:08.128 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/kaderrichtlijnwater2015/atom/v1_0/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:08.577 response time in milliseconds: 448.87 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 4237 1 < Content-Security-Policy: block-all-mixed-content 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:13:08 GMT 1 < Etag: "0d9adcb43d973daed7753314ef78d57b-1" 1 < Last-Modified: Fri, 01 Nov 2019 09:11:44 GMT 1 < Server: MinIO/RELEASE.2020-09-21T22-31-59Z 1 < Vary: Origin 1 < X-Amz-Bucket-Region: Amsterdam 1 < X-Amz-Request-Id: 164223A0437BE57D 1 < X-Cnection: [close, close] 1 < X-Xss-Protection: 1; mode=block
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:05.158 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/hy-p/wfs?request=GetCapabilities"}}}
11:15:05.160 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 279
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/hy-p/wfs?request=GetCapabilities"}}}
11:15:08.796 response time in milliseconds: 3530.74
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:08 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883708622","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:08.797 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:15.491 [print] testing url:https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities
11:09:15.492 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:15.933 response time in milliseconds: 440.96 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:15 GMT 1 < X-Cnection: [close, close]
11:09:15.947 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:16.385 response time in milliseconds: 438.14 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Disposition: inline; filename=geoserver-GetCapabilities.application 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:09:15 GMT 1 < X-Cnection: [close, close]
11:09:16.386 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:15:27.024 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-np/wfs?request=GetCapabilities
11:15:27.025 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-np/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:27.431 response time in milliseconds: 405.51 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:27 GMT 1 < ETag: "1ac36-5af58ad513207-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:27.446 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/ps-rvo-np/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:27.848 response time in milliseconds: 401.46 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:27 GMT 1 < ETag: "1ac36-5af58a651212b-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:45 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:27.848 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:45.132 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:10:45.133 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:10:56.682 response time in milliseconds: 10807.96
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:55 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:10:53 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/e8cfdb4c-4f88-409f-881d-d9b4d6cc358d.json","testRuns":{"TestRun":{"id":"EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:10:52.738Z","testTasks":{"TestTask":{"id":"EIDb5246905-19de-4968-ad10-974f76c9d953","parent":{"ref":"EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID9d4b4342-3760-40ba-928a-aaf25fd9e405"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID9d4b4342-3760-40ba-928a-aaf25fd9e405","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:10:45.572Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:10:49.387Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:10:56.685 [print] EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d
11:10:56.685 [print] UNDEFINED
11:10:56.685 [print] Conformance Class Download Service - Pre-defined Atom
11:10:56.685 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/e8cfdb4c-4f88-409f-881d-d9b4d6cc358d.json
11:10:56.685 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/log
11:10:56.685 [print] statuspath TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d
11:10:56.685 [print] progresspath TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
11:10:56.686 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:57.416 response time in milliseconds: 729.93
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:10:57 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized"]}
11:10:57.417 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)",
"28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:10:52 - Preparing 1 Test Task:",
"28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)",
"28.10.2020 11:10:52 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:10:52 - with parameters: ",
"28.10.2020 11:10:52 - etf.testcases = *",
"28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:10:52 - Setting state to CREATED",
"28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z",
"28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:10:55 - Project Properties: ",
"28.10.2020 11:10:55 - etf.testcases - * ",
"28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:10:55 - username - ",
"28.10.2020 11:10:55 - authUser - ",
"28.10.2020 11:10:55 - authMethod - basic ",
"28.10.2020 11:10:55 - TestRunTask initialized"
]
}
11:10:57.418 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:10:57.930 response time in milliseconds: 507.74
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:10:57 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized"]}
11:10:57.930 retry condition not satisfied: response.val == response.max
11:10:57.930 sleeping before retry #1
11:11:02.931 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:03.552 response time in milliseconds: 620.12
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:11:03 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"58","max":"59","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:11:03.552 retry condition not satisfied: response.val == response.max
11:11:03.552 sleeping before retry #2
11:11:08.553 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:09.068 response time in milliseconds: 514.78
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:11:09 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"86","max":"87","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:11:09.068 retry condition not satisfied: response.val == response.max
11:11:09.068 sleeping before retry #3
11:11:14.069 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:14.603 response time in milliseconds: 532.64
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:11:14 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"167","max":"168","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:14.603 retry condition not satisfied: response.val == response.max
11:11:14.603 sleeping before retry #4
11:11:19.604 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:20.118 response time in milliseconds: 513.10
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:11:20 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:20.118 retry condition not satisfied: response.val == response.max
11:11:20.118 sleeping before retry #5
11:11:25.119 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:25.641 response time in milliseconds: 520.61
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:11:25 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:25.641 retry condition not satisfied: response.val == response.max
11:11:25.641 sleeping before retry #6
11:11:30.642 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:31.159 response time in milliseconds: 515.72
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:11:31 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:31.159 retry condition not satisfied: response.val == response.max
11:11:31.159 sleeping before retry #7
11:11:36.160 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:36.670 response time in milliseconds: 509.76
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:11:36 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:36.670 retry condition not satisfied: response.val == response.max
11:11:36.670 sleeping before retry #8
11:11:41.671 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:42.200 response time in milliseconds: 528.47
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:11:42 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:42.200 retry condition not satisfied: response.val == response.max
11:11:42.200 sleeping before retry #9
11:11:47.201 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:47.764 response time in milliseconds: 558.11
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:11:47 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:47.764 retry condition not satisfied: response.val == response.max
11:11:47.764 sleeping before retry #10
11:11:52.765 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:53.283 response time in milliseconds: 517.69
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:11:53 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:53.284 retry condition not satisfied: response.val == response.max
11:11:53.284 sleeping before retry #11
11:11:58.285 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:11:58.800 response time in milliseconds: 514.77
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:11:58 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:11:58.804 retry condition not satisfied: response.val == response.max
11:11:58.807 sleeping before retry #12
11:12:03.808 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:04.328 response time in milliseconds: 519.39
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:12:04 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:12:04.334 retry condition not satisfied: response.val == response.max
11:12:04.335 sleeping before retry #13
11:12:09.336 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:09.855 response time in milliseconds: 519.19
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:12:09 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:12:09.863 retry condition not satisfied: response.val == response.max
11:12:09.863 sleeping before retry #14
11:12:14.864 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:15.387 response time in milliseconds: 522.39
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:12:15 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:15.387 retry condition not satisfied: response.val == response.max
11:12:15.387 sleeping before retry #15
11:12:20.388 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:20.908 response time in milliseconds: 519.67
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:12:20 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:20.909 retry condition not satisfied: response.val == response.max
11:12:20.909 sleeping before retry #16
11:12:25.910 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:26.421 response time in milliseconds: 510.54
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:12:26 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:26.423 retry condition not satisfied: response.val == response.max
11:12:26.423 sleeping before retry #17
11:12:31.424 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:31.937 response time in milliseconds: 512.24
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:12:31 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:31.937 retry condition not satisfied: response.val == response.max
11:12:31.938 sleeping before retry #18
11:12:36.938 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:37.448 response time in milliseconds: 509.10
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:12:37 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:37.449 retry condition not satisfied: response.val == response.max
11:12:37.450 sleeping before retry #19
11:12:42.450 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDe8cfdb4c-4f88-409f-881d-d9b4d6cc358d/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:12:42.986 response time in milliseconds: 528.85
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:12:42 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:10:52 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:10:52 UTC 2020)","28.10.2020 11:10:52 - Resolving Executable Test Suite dependencies","28.10.2020 11:10:52 - Preparing 1 Test Task:","28.10.2020 11:10:52 - TestTask 1 (b5246905-19de-4968-ad10-974f76c9d953)","28.10.2020 11:10:52 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:10:52 - with parameters: ","28.10.2020 11:10:52 - etf.testcases = *","28.10.2020 11:10:52 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:10:52 - Setting state to CREATED","28.10.2020 11:10:52 - Changed state from CREATED to INITIALIZING","28.10.2020 11:10:53 - Starting TestRun.e8cfdb4c-4f88-409f-881d-d9b4d6cc358d at 2020-10-28T11:10:54Z","28.10.2020 11:10:55 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:10:55 - Project Properties: ","28.10.2020 11:10:55 - etf.testcases - * ","28.10.2020 11:10:55 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:10:55 - username - ","28.10.2020 11:10:55 - authUser - ","28.10.2020 11:10:55 - authMethod - basic ","28.10.2020 11:10:55 - TestRunTask initialized","28.10.2020 11:11:03 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:11:09 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:12:08 ERROR Response did not meet SLA 44035/30000","28.10.2020 11:12:09 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:12:11 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:12:42.989 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:37.702 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:14:37.702 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:38.126 response time in milliseconds: 423.85 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:38 GMT 1 < X-Cnection: [close, close]
11:14:38.140 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:38.537 response time in milliseconds: 396.72 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:38 GMT 1 < X-Cnection: [close, close]
11:14:38.539 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:06:15.885 [print] testing url:https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS
11:06:15.890 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:16.321 response time in milliseconds: 431.11 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:16 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:06:16.330 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:06:16.734 response time in milliseconds: 404.00 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:06:16 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:06:16.735 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:12:23.171 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn-w/wfs?request=GetCapabilities
11:12:23.172 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-w/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:23.589 response time in milliseconds: 417.15 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:23 GMT 1 < ETag: "19224-5af58a6546906-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:12:23.593 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-w/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:23.985 response time in milliseconds: 390.95 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:12:23 GMT 1 < ETag: "19224-5af58ad5383c6-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:44:43 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:12:23.986 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
11:12:43.016 [print] testing url:https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/atom/bestandbodemgebruik2015.xml
11:12:43.017 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/atom/bestandbodemgebruik2015.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:43.413 response time in milliseconds: 396.66 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 1855 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:43 GMT 1 < X-Cnection: [close, close]
11:12:43.417 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/bestandbodemgebruik2015/atom/bestandbodemgebruik2015.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:43.814 response time in milliseconds: 397.36 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 1855 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:42 GMT 1 < X-Cnection: [close, close]
11:12:43.815 assertion failed: assert evaluated to false: filesize > 2000
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:07:01.727 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/mosselzaadinvanginstallaties/wfs?request=GetCapabilities&service=WFS"}}}
11:07:01.728 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 307
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/mosselzaadinvanginstallaties/wfs?request=GetCapabilities&service=WFS"}}}
11:07:03.349 response time in milliseconds: 1513.97
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:07:03 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883223174","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:07:03.349 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:08:50.597 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml"}}}
11:08:50.598 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 295
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml"}}}
11:09:13.212 response time in milliseconds: 21755.69
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:12 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:09:00 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/0cdf8b5d-ca33-49bd-8367-8ee9e817ed25.json","testRuns":{"TestRun":{"id":"EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:08:59.749Z","testTasks":{"TestTask":{"id":"EID8f6444f6-34f3-44bf-bb93-f5a6613d95c1","parent":{"ref":"EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID0fe52367-8f18-410b-b21e-e5376be4a60c"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID0fe52367-8f18-410b-b21e-e5376be4a60c","remoteResource":"https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:08:51.04Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:08:56.83Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:09:13.216 [print] EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25
11:09:13.216 [print] UNDEFINED
11:09:13.216 [print] Conformance Class Download Service - Pre-defined Atom
11:09:13.217 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/0cdf8b5d-ca33-49bd-8367-8ee9e817ed25.json
11:09:13.217 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/log
11:09:13.217 [print] statuspath TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25
11:09:13.218 [print] progresspath TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/progress
11:09:13.218 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:13.738 response time in milliseconds: 513.73
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:09:13 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"141","max":"142","log":["28.10.2020 11:08:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:59 UTC 2020)","28.10.2020 11:08:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:59 - Preparing 1 Test Task:","28.10.2020 11:08:59 - TestTask 1 (8f6444f6-34f3-44bf-bb93-f5a6613d95c1)","28.10.2020 11:08:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:59 - with parameters: ","28.10.2020 11:08:59 - etf.testcases = *","28.10.2020 11:08:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:59 - Setting state to CREATED","28.10.2020 11:08:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:00 - Starting TestRun.0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 at 2020-10-28T11:09:01Z","28.10.2020 11:09:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:01 - Project Properties: ","28.10.2020 11:09:01 - etf.testcases - * ","28.10.2020 11:09:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml ","28.10.2020 11:09:01 - username - ","28.10.2020 11:09:01 - authUser - ","28.10.2020 11:09:01 - authMethod - basic ","28.10.2020 11:09:01 - TestRunTask initialized"]}
11:09:13.740 [print] {
"val": "141",
"max": "142",
"log": [
"28.10.2020 11:08:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:59 UTC 2020)",
"28.10.2020 11:08:59 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:08:59 - Preparing 1 Test Task:",
"28.10.2020 11:08:59 - TestTask 1 (8f6444f6-34f3-44bf-bb93-f5a6613d95c1)",
"28.10.2020 11:08:59 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:08:59 - with parameters: ",
"28.10.2020 11:08:59 - etf.testcases = *",
"28.10.2020 11:08:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:08:59 - Setting state to CREATED",
"28.10.2020 11:08:59 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:09:00 - Starting TestRun.0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 at 2020-10-28T11:09:01Z",
"28.10.2020 11:09:01 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:09:01 - Project Properties: ",
"28.10.2020 11:09:01 - etf.testcases - * ",
"28.10.2020 11:09:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml ",
"28.10.2020 11:09:01 - username - ",
"28.10.2020 11:09:01 - authUser - ",
"28.10.2020 11:09:01 - authMethod - basic ",
"28.10.2020 11:09:01 - TestRunTask initialized"
]
}
11:09:13.741 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:14.254 response time in milliseconds: 513.09
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:09:14 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"149","max":"150","log":["28.10.2020 11:08:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:59 UTC 2020)","28.10.2020 11:08:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:59 - Preparing 1 Test Task:","28.10.2020 11:08:59 - TestTask 1 (8f6444f6-34f3-44bf-bb93-f5a6613d95c1)","28.10.2020 11:08:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:59 - with parameters: ","28.10.2020 11:08:59 - etf.testcases = *","28.10.2020 11:08:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:59 - Setting state to CREATED","28.10.2020 11:08:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:00 - Starting TestRun.0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 at 2020-10-28T11:09:01Z","28.10.2020 11:09:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:01 - Project Properties: ","28.10.2020 11:09:01 - etf.testcases - * ","28.10.2020 11:09:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml ","28.10.2020 11:09:01 - username - ","28.10.2020 11:09:01 - authUser - ","28.10.2020 11:09:01 - authMethod - basic ","28.10.2020 11:09:01 - TestRunTask initialized"]}
11:09:14.254 retry condition not satisfied: response.val == response.max
11:09:14.254 sleeping before retry #1
11:09:19.255 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:19.768 response time in milliseconds: 511.96
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:09:19 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"203","max":"204","log":["28.10.2020 11:08:59 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:08:59 UTC 2020)","28.10.2020 11:08:59 - Resolving Executable Test Suite dependencies","28.10.2020 11:08:59 - Preparing 1 Test Task:","28.10.2020 11:08:59 - TestTask 1 (8f6444f6-34f3-44bf-bb93-f5a6613d95c1)","28.10.2020 11:08:59 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:08:59 - with parameters: ","28.10.2020 11:08:59 - etf.testcases = *","28.10.2020 11:08:59 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:08:59 - Setting state to CREATED","28.10.2020 11:08:59 - Changed state from CREATED to INITIALIZING","28.10.2020 11:09:00 - Starting TestRun.0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 at 2020-10-28T11:09:01Z","28.10.2020 11:09:01 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:09:01 - Project Properties: ","28.10.2020 11:09:01 - etf.testcases - * ","28.10.2020 11:09:01 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rws/richtlijnoverstromingsrisico2018/atom/v1_0/index.xml ","28.10.2020 11:09:01 - username - ","28.10.2020 11:09:01 - authUser - ","28.10.2020 11:09:01 - authMethod - basic ","28.10.2020 11:09:01 - TestRunTask initialized","28.10.2020 11:09:16 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:16 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:16 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:17 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:09:17 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:09:19.776 retry condition not satisfied: response.val == response.max
11:09:19.776 sleeping before retry #2
11:09:24.777 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:09:25.298 response time in milliseconds: 519.83
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:09:25 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:09:25.301 retry condition satisfied
11:09:25.302 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:09:25.304 request: 6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 6 > Accept-Encoding: gzip,deflate 6 > Connection: Keep-Alive 6 > Host: inspire.ec.europa.eu 6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:55.649 java.net.SocketTimeoutException: Read timed out, http call failed after 30345 milliseconds for URL: https://inspire.ec.europa.eu/validator/v2/TestRuns/EID0cdf8b5d-ca33-49bd-8367-8ee9e817ed25 11:09:55.649 http request failed: java.net.SocketTimeoutException: Read timed out
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:02.022 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:09:02.023 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:09:03.109 response time in milliseconds: 1081.80
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:03 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883343040","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:03.116 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:12:14.512 [print] testing url:https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholetmaal/v2/wfs?request=GetCapabilities
11:12:14.513 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholetmaal/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:14.925 response time in milliseconds: 411.59 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:14 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:12:14.929 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholetmaal/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:15.317 response time in milliseconds: 387.92 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:15 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:12:15.321 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:21.908 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-ra/wfs?request=GetCapabilities&service=WFS"}}}
11:15:21.909 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 292
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/tn-ra/wfs?request=GetCapabilities&service=WFS"}}}
11:15:23.783 response time in milliseconds: 1767.14
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:23 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883723611","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:23.784 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:50.189 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/elu/wfs?request=GetCapabilities"}}}
11:13:50.190 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 278
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/elu/wfs?request=GetCapabilities"}}}
11:13:55.653 response time in milliseconds: 5357.72
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:55 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883635475","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:55.653 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:09:13.823 [print] testing url:https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities
11:09:13.824 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:14.222 response time in milliseconds: 397.63 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:14 GMT 1 < X-Cnection: [close, close]
11:09:14.226 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:09:14.632 response time in milliseconds: 406.01 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:09:14 GMT 1 < X-Cnection: [close, close]
11:09:14.633 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:11.018 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:11.019 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:20.614 response time in milliseconds: 8941.15
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:19 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:18 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/d9fef969-5b8f-46c1-8908-0edaeda2d011.json","testRuns":{"TestRun":{"id":"EIDd9fef969-5b8f-46c1-8908-0edaeda2d011","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:16.91Z","testTasks":{"TestTask":{"id":"EID8c92464b-13cd-497e-b3f5-cc232f7c9557","parent":{"ref":"EIDd9fef969-5b8f-46c1-8908-0edaeda2d011"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID8718e970-ccb3-483f-bd3b-bf0f69d6ba6a"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID8718e970-ccb3-483f-bd3b-bf0f69d6ba6a","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:11.462Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:13.961Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:20.636 [print] EIDd9fef969-5b8f-46c1-8908-0edaeda2d011
11:14:20.636 [print] UNDEFINED
11:14:20.636 [print] Conformance Class Download Service - Pre-defined Atom
11:14:20.636 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/d9fef969-5b8f-46c1-8908-0edaeda2d011.json
11:14:20.636 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/log
11:14:20.636 [print] statuspath TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011
11:14:20.636 [print] progresspath TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
11:14:20.637 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:21.156 response time in milliseconds: 515.60
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:21 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:14:16 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:16 UTC 2020)","28.10.2020 11:14:16 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:16 - Preparing 1 Test Task:","28.10.2020 11:14:16 - TestTask 1 (8c92464b-13cd-497e-b3f5-cc232f7c9557)","28.10.2020 11:14:16 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:16 - with parameters: ","28.10.2020 11:14:16 - etf.testcases = *","28.10.2020 11:14:16 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:16 - Setting state to CREATED","28.10.2020 11:14:16 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:18 - Starting TestRun.d9fef969-5b8f-46c1-8908-0edaeda2d011 at 2020-10-28T11:14:19Z","28.10.2020 11:14:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:19 - Project Properties: ","28.10.2020 11:14:19 - etf.testcases - * ","28.10.2020 11:14:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:19 - username - ","28.10.2020 11:14:19 - authUser - ","28.10.2020 11:14:19 - authMethod - basic ","28.10.2020 11:14:19 - TestRunTask initialized"]}
11:14:21.157 [print] {
"val": "21",
"max": "22",
"log": [
"28.10.2020 11:14:16 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:16 UTC 2020)",
"28.10.2020 11:14:16 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:16 - Preparing 1 Test Task:",
"28.10.2020 11:14:16 - TestTask 1 (8c92464b-13cd-497e-b3f5-cc232f7c9557)",
"28.10.2020 11:14:16 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:16 - with parameters: ",
"28.10.2020 11:14:16 - etf.testcases = *",
"28.10.2020 11:14:16 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:16 - Setting state to CREATED",
"28.10.2020 11:14:16 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:18 - Starting TestRun.d9fef969-5b8f-46c1-8908-0edaeda2d011 at 2020-10-28T11:14:19Z",
"28.10.2020 11:14:19 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:19 - Project Properties: ",
"28.10.2020 11:14:19 - etf.testcases - * ",
"28.10.2020 11:14:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:14:19 - username - ",
"28.10.2020 11:14:19 - authUser - ",
"28.10.2020 11:14:19 - authMethod - basic ",
"28.10.2020 11:14:19 - TestRunTask initialized"
]
}
11:14:21.157 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:21.675 response time in milliseconds: 517.78
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:21 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:14:16 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:16 UTC 2020)","28.10.2020 11:14:16 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:16 - Preparing 1 Test Task:","28.10.2020 11:14:16 - TestTask 1 (8c92464b-13cd-497e-b3f5-cc232f7c9557)","28.10.2020 11:14:16 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:16 - with parameters: ","28.10.2020 11:14:16 - etf.testcases = *","28.10.2020 11:14:16 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:16 - Setting state to CREATED","28.10.2020 11:14:16 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:18 - Starting TestRun.d9fef969-5b8f-46c1-8908-0edaeda2d011 at 2020-10-28T11:14:19Z","28.10.2020 11:14:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:19 - Project Properties: ","28.10.2020 11:14:19 - etf.testcases - * ","28.10.2020 11:14:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:19 - username - ","28.10.2020 11:14:19 - authUser - ","28.10.2020 11:14:19 - authMethod - basic ","28.10.2020 11:14:19 - TestRunTask initialized"]}
11:14:21.681 retry condition not satisfied: response.val == response.max
11:14:21.681 sleeping before retry #1
11:14:26.682 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:27.199 response time in milliseconds: 515.94
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:27 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"85","max":"86","log":["28.10.2020 11:14:16 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:16 UTC 2020)","28.10.2020 11:14:16 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:16 - Preparing 1 Test Task:","28.10.2020 11:14:16 - TestTask 1 (8c92464b-13cd-497e-b3f5-cc232f7c9557)","28.10.2020 11:14:16 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:16 - with parameters: ","28.10.2020 11:14:16 - etf.testcases = *","28.10.2020 11:14:16 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:16 - Setting state to CREATED","28.10.2020 11:14:16 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:18 - Starting TestRun.d9fef969-5b8f-46c1-8908-0edaeda2d011 at 2020-10-28T11:14:19Z","28.10.2020 11:14:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:19 - Project Properties: ","28.10.2020 11:14:19 - etf.testcases - * ","28.10.2020 11:14:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:19 - username - ","28.10.2020 11:14:19 - authUser - ","28.10.2020 11:14:19 - authMethod - basic ","28.10.2020 11:14:19 - TestRunTask initialized","28.10.2020 11:14:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:14:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:27.199 retry condition not satisfied: response.val == response.max
11:14:27.199 sleeping before retry #2
11:14:32.201 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:32.727 response time in milliseconds: 515.39
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:14:32 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:14:16 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:16 UTC 2020)","28.10.2020 11:14:16 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:16 - Preparing 1 Test Task:","28.10.2020 11:14:16 - TestTask 1 (8c92464b-13cd-497e-b3f5-cc232f7c9557)","28.10.2020 11:14:16 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:16 - with parameters: ","28.10.2020 11:14:16 - etf.testcases = *","28.10.2020 11:14:16 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:16 - Setting state to CREATED","28.10.2020 11:14:16 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:18 - Starting TestRun.d9fef969-5b8f-46c1-8908-0edaeda2d011 at 2020-10-28T11:14:19Z","28.10.2020 11:14:19 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:19 - Project Properties: ","28.10.2020 11:14:19 - etf.testcases - * ","28.10.2020 11:14:19 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:19 - username - ","28.10.2020 11:14:19 - authUser - ","28.10.2020 11:14:19 - authMethod - basic ","28.10.2020 11:14:19 - TestRunTask initialized","28.10.2020 11:14:22 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:22 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:24 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:26 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:14:26 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:27 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:27 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:27 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:14:27 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:27 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:27 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:28 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:28 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:28 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:28 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:28 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:29 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:29 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:14:30 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:30 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:14:32.727 retry condition not satisfied: response.val == response.max
11:14:32.727 sleeping before retry #3
11:14:37.728 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:38.375 response time in milliseconds: 646.22
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:14:38 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:14:38.375 retry condition satisfied
11:14:38.375 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:14:38.376 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:41.644 response time in milliseconds: 2298.89
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:14:40 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:14:37 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/d9fef969-5b8f-46c1-8908-0edaeda2d011.json","testRuns":{"TestRun":{"id":"EIDd9fef969-5b8f-46c1-8908-0edaeda2d011","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:16.91Z","testTasks":{"TestTask":{"id":"EID8c92464b-13cd-497e-b3f5-cc232f7c9557","parent":{"ref":"EIDd9fef969-5b8f-46c1-8908-0edaeda2d011"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID8718e970-ccb3-483f-bd3b-bf0f69d6ba6a"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID8718e970-ccb3-483f-bd3b-bf0f69d6ba6a","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:11.462Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:13.961Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479","testObject":{"ref":"EID8718e970-ccb3-483f-bd3b-bf0f69d6ba6a"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eea7127-0175-1000-9acf-5163616b9f4e","testCaseResults":{"TestCaseResult":[{"id":"EID6eea7127-0175-1000-2af1-b96cbc5d85ca","testStepResults":{"TestStepResult":[{"id":"EID6eea7128-0175-1000-6478-7c607645efaf","parent":{"ref":"EID6eea7127-0175-1000-2af1-b96cbc5d85ca"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:14:19Z","duration":31,"status":"PASSED"},{"id":"EID6eea7148-0175-1000-492c-27825c4766de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7230-0175-1000-8335-e1436a78eba5","parent":{"ref":"EID6eea7148-0175-1000-492c-27825c4766de"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7230-0175-1000-bab6-b2f09ca5eb46","parent":{"ref":"EID6eea7148-0175-1000-492c-27825c4766de"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7230-0175-1000-a6b1-e6defbf77093","parent":{"ref":"EID6eea7148-0175-1000-492c-27825c4766de"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"},{"id":"EID6eea7230-0175-1000-5037-32e8f36b4c72","parent":{"ref":"EID6eea7148-0175-1000-492c-27825c4766de"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:14:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4e438173-b172-4f2d-8600-3b7c59fe2da8"},{"ref":"EIDbeee7628-3b4b-490c-8b37-c3f9291ae597"},{"ref":"EIDa16e14e2-b77d-4dbc-b2d8-c3f38dee856a"}]},"parent":{"ref":"EID6eea7127-0175-1000-2af1-b96cbc5d85ca"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:14:19Z","duration":108,"status":"PASSED"}]},"parent":{"ref":"EID6eea7127-0175-1000-9acf-5163616b9f4e"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:14:19Z","duration":265,"status":"PASSED"},{"id":"EID6eea7230-0175-1000-a513-2d71b454dd4f","testStepResults":{"TestStepResult":{"id":"EID6eea7231-0175-1000-8bdd-5b51cbe547c3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea72f2-0175-1000-dac3-0f4ed70d2ff4","parent":{"ref":"EID6eea7231-0175-1000-8bdd-5b51cbe547c3"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea72f3-0175-1000-3853-e81152fba282","parent":{"ref":"EID6eea7231-0175-1000-8bdd-5b51cbe547c3"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea72f3-0175-1000-8889-07bba3d0acf7","parent":{"ref":"EID6eea7231-0175-1000-8bdd-5b51cbe547c3"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID47da14c0-ded1-45b1-a90f-e9dfcf97566b"},{"ref":"EID601da86e-256f-4bdc-85a7-ad1e4b6455a9"},{"ref":"EIDdb389122-5209-4bbf-bd42-a89018c6cfb6"}]},"parent":{"ref":"EID6eea7230-0175-1000-a513-2d71b454dd4f"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:14:19Z","duration":116,"status":"PASSED"}},"parent":{"ref":"EID6eea7127-0175-1000-9acf-5163616b9f4e"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:14:19Z","duration":195,"status":"PASSED"}]},"parent":{"ref":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:14:19Z","duration":460,"status":"PASSED"},{"id":"EID6eea72f3-0175-1000-f982-b88a543e7914","testCaseResults":{"TestCaseResult":[{"id":"EID6eea72f3-0175-1000-e9bb-241cd3fa6378","testStepResults":{"TestStepResult":[{"id":"EID6eea72f3-0175-1000-0858-9f66002dcd6b","parent":{"ref":"EID6eea72f3-0175-1000-e9bb-241cd3fa6378"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":116,"status":"PASSED"},{"id":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea73ef-0175-1000-60fb-ea960cc708c0","parent":{"ref":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73ef-0175-1000-6830-275b3cefb595","parent":{"ref":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73ef-0175-1000-132c-e79658fc647e","parent":{"ref":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73ef-0175-1000-3d16-1d44ac3e754a","parent":{"ref":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea73ef-0175-1000-7f95-e7f58d856e81","parent":{"ref":"EID6eea72f3-0175-1000-d5a1-e350b4fa22da"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda391eb0-62d0-447c-9be5-740af56ce405"},{"ref":"EID86348430-da4e-49ed-a045-d2f12ebaffcf"},{"ref":"EID9c03f891-9bd7-444a-8562-f52b4b5bed98"}]},"parent":{"ref":"EID6eea72f3-0175-1000-e9bb-241cd3fa6378"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:14:20Z","duration":98,"status":"PASSED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:14:20Z","duration":261,"status":"PASSED"},{"id":"EID6eea73f8-0175-1000-3740-3f3fcbbd8c17","testStepResults":{"TestStepResult":[{"id":"EID6eea73f8-0175-1000-3e78-8a1510b71c7f","attachments":{"attachment":[{"ref":"EIDa7ef8293-cf95-46ba-927b-987c124ccdf8"},{"ref":"EID17d84fb4-fed0-4899-a76a-6a5e8edc6897"}]},"parent":{"ref":"EID6eea73f8-0175-1000-3740-3f3fcbbd8c17"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":133,"status":"PASSED"},{"id":"EID6eea74a7-0175-1000-fc41-d5103c9a772c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7530-0175-1000-5ce0-4a2eab0522c6","parent":{"ref":"EID6eea74a7-0175-1000-fc41-d5103c9a772c"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7530-0175-1000-393c-96a612489e9e","parent":{"ref":"EID6eea74a7-0175-1000-fc41-d5103c9a772c"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7530-0175-1000-f97e-9f9a05b58227","parent":{"ref":"EID6eea74a7-0175-1000-fc41-d5103c9a772c"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea7530-0175-1000-5bcd-550d9932167b","parent":{"ref":"EID6eea74a7-0175-1000-fc41-d5103c9a772c"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4777d509-cb75-4286-b061-2c2c5efa6f7c"},{"ref":"EID74fb9cf0-4c90-451d-ab46-a8b75af7e1d4"},{"ref":"EID88c5e263-0978-4a86-930b-4e675ae9f20b"}]},"parent":{"ref":"EID6eea73f8-0175-1000-3740-3f3fcbbd8c17"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:14:20Z","duration":35,"status":"PASSED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:14:20Z","duration":312,"status":"PASSED"},{"id":"EID6eea7530-0175-1000-01d5-2a4b886a8132","testStepResults":{"TestStepResult":[{"id":"EID6eea7530-0175-1000-af9f-cd8a9b8add1d","attachments":{"attachment":[{"ref":"EIDe2793812-bfc3-4df3-adb2-8e5ea37c59ac"},{"ref":"EIDf779d5ed-f4fc-42db-9152-53a1288ec0a2"}]},"parent":{"ref":"EID6eea7530-0175-1000-01d5-2a4b886a8132"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":171,"status":"PASSED"},{"id":"EID6eea7602-0175-1000-9796-b4a043b684a2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea76a8-0175-1000-36ca-0aff19e92ac3","parent":{"ref":"EID6eea7602-0175-1000-9796-b4a043b684a2"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea76a8-0175-1000-3570-0d5882307b1b","parent":{"ref":"EID6eea7602-0175-1000-9796-b4a043b684a2"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea76a8-0175-1000-2a31-f98f8c5aa65d","parent":{"ref":"EID6eea7602-0175-1000-9796-b4a043b684a2"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea76a8-0175-1000-fdf5-fde62db6d012","parent":{"ref":"EID6eea7602-0175-1000-9796-b4a043b684a2"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"},{"id":"EID6eea76a8-0175-1000-ce46-1087b3d793a6","parent":{"ref":"EID6eea7602-0175-1000-9796-b4a043b684a2"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:14:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd357c1d0-350c-4ca6-b269-751daed1689f"},{"ref":"EIDbb2ec87d-35a7-4504-838e-b09076af86c6"},{"ref":"EID424d06af-49d3-4758-a694-bd345a67226e"}]},"parent":{"ref":"EID6eea7530-0175-1000-01d5-2a4b886a8132"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:14:20Z","duration":39,"status":"PASSED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:14:20Z","duration":376,"status":"PASSED"},{"id":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b","testStepResults":{"TestStepResult":[{"id":"EID6eea76bc-0175-1000-497c-367d78724e78","attachments":{"attachment":[{"ref":"EID954c313f-d143-4ea0-89e0-e7a5fe62eccc"},{"ref":"EID82de7513-3f8f-461f-ac1a-083199d647b4"}]},"parent":{"ref":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:14:20Z","duration":96,"status":"PASSED"},{"id":"EID6eea7746-0175-1000-18ba-9cef9947f80a","parent":{"ref":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7746-0175-1000-eb98-43b087b2a75b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea77ce-0175-1000-faf0-078c3721d243","parent":{"ref":"EID6eea7746-0175-1000-eb98-43b087b2a75b"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ce-0175-1000-f8ed-c6bb7571f55e","parent":{"ref":"EID6eea7746-0175-1000-eb98-43b087b2a75b"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ce-0175-1000-576a-f4831cb27213","parent":{"ref":"EID6eea7746-0175-1000-eb98-43b087b2a75b"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea77ce-0175-1000-99e6-ef663185f12a","parent":{"ref":"EID6eea7746-0175-1000-eb98-43b087b2a75b"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9d97f5d4-63b4-46b0-93d3-c0ff180a32d1"},{"ref":"EID35ae6883-0a17-48a4-a371-eeff0410fd85"},{"ref":"EIDfcc20b08-b5bf-4e50-8a54-a21d0a9594d3"}]},"parent":{"ref":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:14:21Z","duration":36,"status":"PASSED"},{"id":"EID6eea77ce-0175-1000-b05c-755eeef0a533","attachments":{"attachment":{"ref":"EID4390399e-c39a-485d-85b7-7cd1f7ef2414"}},"parent":{"ref":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":1,"status":"PASSED"},{"id":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea78c1-0175-1000-855b-0d2cf06c602a","parent":{"ref":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea78c1-0175-1000-8dab-03f5d6553ff1","parent":{"ref":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea78c1-0175-1000-8b54-dc8072a71403","parent":{"ref":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea78c1-0175-1000-b68c-5f070319f16f","parent":{"ref":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea78c1-0175-1000-aeaa-09b98baf2b40","parent":{"ref":"EID6eea77dc-0175-1000-2f54-c3d832d5ad53"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa80cd4a7-c4c4-4eb1-8ceb-31253775a05a"},{"ref":"EIDeeb04b6c-178c-4823-b692-de3d48f5a93a"},{"ref":"EIDcae8cb65-f833-4e58-ba18-ef4607c43855"}]},"parent":{"ref":"EID6eea76bc-0175-1000-3785-e0e68efa1a0b"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:14:21Z","duration":86,"status":"PASSED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:14:20Z","duration":528,"status":"PASSED"},{"id":"EID6eea78cc-0175-1000-a731-df97258204a2","testStepResults":{"TestStepResult":[{"id":"EID6eea78cc-0175-1000-8b4e-e98dbec1e20e","attachments":{"attachment":[{"ref":"EID0b69f150-4f56-432a-8e30-7916bc301dd8"},{"ref":"EIDa0c3fb90-4103-405f-8861-05097c6d6aff"}]},"parent":{"ref":"EID6eea78cc-0175-1000-a731-df97258204a2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:14:21Z","duration":185,"status":"PASSED"},{"id":"EID6eea79ef-0175-1000-f582-b19d4f886c1d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7aaf-0175-1000-66c9-abbf9335edb9","parent":{"ref":"EID6eea79ef-0175-1000-f582-b19d4f886c1d"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7aaf-0175-1000-db5f-a6dfa50e00c2","parent":{"ref":"EID6eea79ef-0175-1000-f582-b19d4f886c1d"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7aaf-0175-1000-bad7-902f6224a761","parent":{"ref":"EID6eea79ef-0175-1000-f582-b19d4f886c1d"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"},{"id":"EID6eea7aaf-0175-1000-39f8-1d94e5670d9c","parent":{"ref":"EID6eea79ef-0175-1000-f582-b19d4f886c1d"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:14:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6c84a407-c0a9-4d2a-8b41-0f939c6b700f"},{"ref":"EID5e758939-5e2b-4cfc-9e0b-e8752e55df31"},{"ref":"EID778214bb-e2f6-4cbc-9857-f07aeb317069"}]},"parent":{"ref":"EID6eea78cc-0175-1000-a731-df97258204a2"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:14:21Z","duration":68,"status":"PASSED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:14:21Z","duration":484,"status":"PASSED"},{"id":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee","testStepResults":{"TestStepResult":[{"id":"EID6eea7ab0-0175-1000-3434-2d4ca91544ec","attachments":{"attachment":[{"ref":"EID5e937d6f-f46d-4e7d-b28e-f2024d9c75f8"},{"ref":"EIDbfc68394-6d2e-4d90-8a93-316a9e073cd8"}]},"parent":{"ref":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":130,"status":"PASSED"},{"id":"EID6eea7b5c-0175-1000-c72b-678c33143341","parent":{"ref":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":8,"status":"PASSED"},{"id":"EID6eea7b65-0175-1000-899a-3e0ce8837281","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7ccb-0175-1000-05a2-8b5366a868ab","parent":{"ref":"EID6eea7b65-0175-1000-899a-3e0ce8837281"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ccb-0175-1000-88d4-6dbe48197f4c","parent":{"ref":"EID6eea7b65-0175-1000-899a-3e0ce8837281"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ccb-0175-1000-0ace-16d0e32abea2","parent":{"ref":"EID6eea7b65-0175-1000-899a-3e0ce8837281"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ccb-0175-1000-945c-67c6fc549a33","parent":{"ref":"EID6eea7b65-0175-1000-899a-3e0ce8837281"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID972c0d64-e116-4a18-97b2-a91e5712021e"},{"ref":"EID36ab6a97-c8cc-4262-a26b-24fb99477600"},{"ref":"EIDfc1b9a0d-b873-4d92-8d1d-843f35c21068"}]},"parent":{"ref":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:14:22Z","duration":69,"status":"PASSED"},{"id":"EID6eea7ccb-0175-1000-55d4-ee5ac307ebb1","attachments":{"attachment":{"ref":"EIDe193c055-6eb4-42d6-99f0-ccdb3fd926f5"}},"parent":{"ref":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":2,"status":"PASSED"},{"id":"EID6eea7cd9-0175-1000-031a-92f876f89a25","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7e0b-0175-1000-25f2-d1b189afeeb0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea7cd9-0175-1000-031a-92f876f89a25"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:14:22Z","duration":10,"status":"FAILED"},{"id":"EID6eea7e15-0175-1000-fc2f-b9a9622ced6e","parent":{"ref":"EID6eea7cd9-0175-1000-031a-92f876f89a25"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"PASSED"},{"id":"EID6eea7e15-0175-1000-de3f-bace134d8035","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6eea7cd9-0175-1000-031a-92f876f89a25"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:14:22Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID0982e3ce-84e6-49bc-bf77-08f98ab11120"},{"ref":"EID272612c6-f451-4f2e-868d-c9aca92402f9"},{"ref":"EID05c9f700-2f19-4444-853a-141a10dc3a1c"}]},"parent":{"ref":"EID6eea7ab0-0175-1000-b1c1-e813c86eadee"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:14:22Z","duration":245,"status":"FAILED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:14:22Z","duration":869,"status":"FAILED"},{"id":"EID6eea7e16-0175-1000-86ee-902238a8aa4b","testStepResults":{"TestStepResult":[{"id":"EID6eea7e16-0175-1000-07c7-e4e0fefea74a","attachments":{"attachment":[{"ref":"EIDb63097a9-42be-4634-a7fb-587570d2806a"},{"ref":"EID39cf95a3-809f-40b6-a476-d08563f2b691"}]},"parent":{"ref":"EID6eea7e16-0175-1000-86ee-902238a8aa4b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:14:22Z","duration":192,"status":"PASSED"},{"id":"EID6eea7ef9-0175-1000-c87c-bd3d603694c1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea7ffa-0175-1000-706e-bf95f6b5655f","parent":{"ref":"EID6eea7ef9-0175-1000-c87c-bd3d603694c1"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ffa-0175-1000-95e9-494a77132daa","parent":{"ref":"EID6eea7ef9-0175-1000-c87c-bd3d603694c1"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ffa-0175-1000-dbf7-5298cee2ad82","parent":{"ref":"EID6eea7ef9-0175-1000-c87c-bd3d603694c1"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea7ffa-0175-1000-8600-973242341f0f","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea7ef9-0175-1000-c87c-bd3d603694c1"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID9f811034-184b-4293-943c-b73d714382aa"},{"ref":"EID15d6f154-77a4-4e34-9da9-48e0a2057055"},{"ref":"EID8c8702f4-58a6-4e37-9e91-2e66f9454375"}]},"parent":{"ref":"EID6eea7e16-0175-1000-86ee-902238a8aa4b"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:14:23Z","duration":102,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:14:22Z","duration":484,"status":"PASSED_MANUAL"},{"id":"EID6eea7ffb-0175-1000-5930-d55abb7d1acc","testStepResults":{"TestStepResult":{"id":"EID6eea800d-0175-1000-5804-4bddaba999bd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea80f8-0175-1000-a7ee-7f159b181a1e","parent":{"ref":"EID6eea800d-0175-1000-5804-4bddaba999bd"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea80f8-0175-1000-45ef-c7d8aa3f7812","parent":{"ref":"EID6eea800d-0175-1000-5804-4bddaba999bd"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea80f8-0175-1000-915d-d30f62d77b0d","parent":{"ref":"EID6eea800d-0175-1000-5804-4bddaba999bd"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea80f8-0175-1000-0858-1732f78d3a17","parent":{"ref":"EID6eea800d-0175-1000-5804-4bddaba999bd"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd8ce071c-f73a-40ce-8e33-e4b10dc390cf"},{"ref":"EIDfe5c8785-d1cc-40dd-afda-8b1675f8c42c"},{"ref":"EID2f3ceeca-f7ff-4c7e-9715-5f0b2faf4480"}]},"parent":{"ref":"EID6eea7ffb-0175-1000-5930-d55abb7d1acc"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:14:23Z","duration":90,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:14:23Z","duration":254,"status":"PASSED"},{"id":"EID6eea80f9-0175-1000-83be-ed1a02569c1a","testStepResults":{"TestStepResult":{"id":"EID6eea80f9-0175-1000-6980-7ba7b5012ed3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8201-0175-1000-d0b6-92631459a626","parent":{"ref":"EID6eea80f9-0175-1000-6980-7ba7b5012ed3"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea8201-0175-1000-232a-f501ac645ede","parent":{"ref":"EID6eea80f9-0175-1000-6980-7ba7b5012ed3"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea8201-0175-1000-42aa-0a6983928b24","parent":{"ref":"EID6eea80f9-0175-1000-6980-7ba7b5012ed3"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"},{"id":"EID6eea8201-0175-1000-e93e-6bbaaa1a0c34","parent":{"ref":"EID6eea80f9-0175-1000-6980-7ba7b5012ed3"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:14:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6fef0ce1-52aa-41b3-b91b-b704922f720d"},{"ref":"EIDdda90015-4b60-489f-b32c-2dd98ce17e85"},{"ref":"EID4e2b722e-0cdf-4be7-9ece-37f4058ef501"}]},"parent":{"ref":"EID6eea80f9-0175-1000-83be-ed1a02569c1a"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:14:23Z","duration":118,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:14:23Z","duration":264,"status":"PASSED"},{"id":"EID6eea8201-0175-1000-4611-044f092abc10","testStepResults":{"TestStepResult":{"id":"EID6eea8201-0175-1000-58d2-61e59036db4b","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID1c45e21b-65ab-4b33-932f-4c153778bad4"},{"ref":"EID7949a676-e0f3-48a2-91b9-6b58ac86123e"},{"ref":"EID7d9f0919-912a-4180-84df-7bd717e7765c"},{"ref":"EID9134a581-d020-4c95-be79-3a6198bcea79"},{"ref":"EIDa9587501-55a0-48a8-8cca-fd0e14151bef"},{"ref":"EID3005e13c-b34c-4c2f-8780-4627f8cbc819"},{"ref":"EIDafe9e74b-d3bc-4af4-8458-659cc6464923"},{"ref":"EIDeb536c6f-2ef5-4abe-be7f-444534b27dba"},{"ref":"EID8826586d-060e-40b2-ad8c-e1385c83a7fe"}]},"parent":{"ref":"EID6eea8201-0175-1000-4611-044f092abc10"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:14:23Z","duration":668,"status":"SKIPPED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:14:23Z","duration":846,"status":"SKIPPED"},{"id":"EID6eea854f-0175-1000-0faa-0c4f605dca1f","testStepResults":{"TestStepResult":{"id":"EID6eea854f-0175-1000-91ca-4e4d8eb8f966","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea860b-0175-1000-2c42-558df6806737","parent":{"ref":"EID6eea854f-0175-1000-91ca-4e4d8eb8f966"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:14:24Z","duration":0,"status":"PASSED"},{"id":"EID6eea860b-0175-1000-7729-05df57ebd42b","parent":{"ref":"EID6eea854f-0175-1000-91ca-4e4d8eb8f966"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:14:24Z","duration":0,"status":"PASSED"},{"id":"EID6eea860b-0175-1000-fa89-dc16349279a0","parent":{"ref":"EID6eea854f-0175-1000-91ca-4e4d8eb8f966"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:14:24Z","duration":0,"status":"PASSED"},{"id":"EID6eea860b-0175-1000-81e6-d743f5973673","parent":{"ref":"EID6eea854f-0175-1000-91ca-4e4d8eb8f966"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:14:24Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7e5fa6d9-c5b4-4a99-a334-eb27b00a0670"},{"ref":"EID3e09286c-2040-4fc5-b0b4-2a393aaed862"},{"ref":"EID93137f87-ae9e-4199-bcd5-e62744c8ad2c"}]},"parent":{"ref":"EID6eea854f-0175-1000-0faa-0c4f605dca1f"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:14:24Z","duration":62,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:14:24Z","duration":188,"status":"PASSED"},{"id":"EID6eea860b-0175-1000-2f79-231ea63236fc","testStepResults":{"TestStepResult":{"id":"EID6eea860b-0175-1000-319b-3cd0ed42de61","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8733-0175-1000-b25e-138fd4b17a74","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-0ff5-48a2d4d4e0b5","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-9af9-bec4bb6dca34","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-ee0c-2f0616626d61","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-b271-0993079ec018","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-1f43-9315ff6fc95d","parent":{"ref":"EID6eea860b-0175-1000-319b-3cd0ed42de61"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1769ee7d-31f7-447c-b17c-1ae37b2c2338"},{"ref":"EID1e1b9864-18c3-4723-93b9-ee6c93fbd869"},{"ref":"EID57df87a0-f10f-4b20-99d1-a3bc7ca6f872"}]},"parent":{"ref":"EID6eea860b-0175-1000-2f79-231ea63236fc"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:14:24Z","duration":71,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:14:24Z","duration":296,"status":"PASSED"},{"id":"EID6eea8733-0175-1000-936e-838798d5c9a7","testStepResults":{"TestStepResult":{"id":"EID6eea8733-0175-1000-8315-79a7fe5591b7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8845-0175-1000-f6f3-ee76dba5733f","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8845-0175-1000-d7ce-066a1d4e9bed","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8845-0175-1000-363e-3a32fc95b292","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8845-0175-1000-2263-6747ef13077e","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8845-0175-1000-e706-f898a9ede450","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8845-0175-1000-a556-9210a21a54be","parent":{"ref":"EID6eea8733-0175-1000-8315-79a7fe5591b7"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID800ddd9a-5f4c-4383-98fc-cf6ff3bc4483"},{"ref":"EID1e585f6f-0946-458e-b7bf-3159e0d9e03e"},{"ref":"EID0239f8c7-1746-4456-93eb-a9f9d6af830a"}]},"parent":{"ref":"EID6eea8733-0175-1000-936e-838798d5c9a7"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:14:25Z","duration":89,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:14:25Z","duration":275,"status":"PASSED"},{"id":"EID6eea8846-0175-1000-529a-8dd32e347125","testStepResults":{"TestStepResult":{"id":"EID6eea8846-0175-1000-802f-b85a46e794ea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8986-0175-1000-81ea-a0db56cf4de6","parent":{"ref":"EID6eea8846-0175-1000-802f-b85a46e794ea"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8986-0175-1000-5cf3-95a25060077b","parent":{"ref":"EID6eea8846-0175-1000-802f-b85a46e794ea"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8986-0175-1000-9538-903d892fcb06","parent":{"ref":"EID6eea8846-0175-1000-802f-b85a46e794ea"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"},{"id":"EID6eea8986-0175-1000-a71c-fbb6545db8be","parent":{"ref":"EID6eea8846-0175-1000-802f-b85a46e794ea"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:14:25Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb7a35471-5c58-47b9-841c-16666fe9d538"},{"ref":"EIDed0f54c3-6b2c-4ff6-bf50-9e847e5ecfa7"},{"ref":"EID5eac6bc3-09c0-43d9-83dd-4d5412b9c40a"}]},"parent":{"ref":"EID6eea8846-0175-1000-529a-8dd32e347125"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:14:25Z","duration":128,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:14:25Z","duration":321,"status":"PASSED"},{"id":"EID6eea8987-0175-1000-056b-ef2200a7674e","testStepResults":{"TestStepResult":[{"id":"EID6eea8987-0175-1000-6a78-41574bb4f5a4","attachments":{"attachment":[{"ref":"EIDd87abb7d-03aa-4403-8c59-088b23fc8b12"},{"ref":"EIDc6ef5c2e-f5c6-411a-b389-0d29631ba3f2"},{"ref":"EID1065d6a0-8711-4330-b286-8cdea56877ad"},{"ref":"EID75845604-b844-4aed-b50d-6d71935f6963"}]},"parent":{"ref":"EID6eea8987-0175-1000-056b-ef2200a7674e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:14:25Z","duration":440,"status":"PASSED"},{"id":"EID6eea8b8f-0175-1000-6be5-4e89c6aa99cd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8caf-0175-1000-cdf4-77194cfca8d6","parent":{"ref":"EID6eea8b8f-0175-1000-6be5-4e89c6aa99cd"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8caf-0175-1000-33dd-d6d71a21c70c","parent":{"ref":"EID6eea8b8f-0175-1000-6be5-4e89c6aa99cd"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8caf-0175-1000-f158-868c99d6f50c","parent":{"ref":"EID6eea8b8f-0175-1000-6be5-4e89c6aa99cd"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8caf-0175-1000-9a68-7590a7b7d586","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6eea8b8f-0175-1000-6be5-4e89c6aa99cd"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:14:26Z","duration":1,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID3575437d-05c6-40de-9ce6-77b7b2ba2506"},{"ref":"EIDf60745ff-d22f-4c74-877f-70e0b87fec3b"},{"ref":"EID9b9fb38d-a12e-45f6-8f21-5ea285de4b27"}]},"parent":{"ref":"EID6eea8987-0175-1000-056b-ef2200a7674e"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:14:26Z","duration":114,"status":"FAILED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:14:25Z","duration":817,"status":"FAILED"},{"id":"EID6eea8cb8-0175-1000-f308-9fa20478a09f","testStepResults":{"TestStepResult":{"id":"EID6eea8cb8-0175-1000-1831-a366e0191556","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8d6d-0175-1000-deea-98473803265c","parent":{"ref":"EID6eea8cb8-0175-1000-1831-a366e0191556"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8d6d-0175-1000-7667-0673890c6f32","parent":{"ref":"EID6eea8cb8-0175-1000-1831-a366e0191556"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8d6d-0175-1000-f73e-2255632e7f9a","parent":{"ref":"EID6eea8cb8-0175-1000-1831-a366e0191556"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8d6d-0175-1000-a700-74c3367c0e97","parent":{"ref":"EID6eea8cb8-0175-1000-1831-a366e0191556"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd62d6f72-fd49-4161-9ed8-5a6e59a94650"},{"ref":"EID0a0bad58-61a5-4770-ad3c-d5dd753db844"},{"ref":"EID3fb827f9-c917-4bcf-bdc1-c5cdd8a744f6"}]},"parent":{"ref":"EID6eea8cb8-0175-1000-f308-9fa20478a09f"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:14:26Z","duration":74,"status":"PASSED"}},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:14:26Z","duration":181,"status":"PASSED"},{"id":"EID6eea8d6d-0175-1000-0627-fbab96fcfb8e","testStepResults":{"TestStepResult":[{"id":"EID6eea8d6d-0175-1000-0438-1b14f821fb45","parent":{"ref":"EID6eea8d6d-0175-1000-0627-fbab96fcfb8e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8d6d-0175-1000-70fd-7c9adc04b7dd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8e2a-0175-1000-e397-cbe13ae055ee","parent":{"ref":"EID6eea8d6d-0175-1000-70fd-7c9adc04b7dd"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8e2a-0175-1000-7f50-2885657f8e72","parent":{"ref":"EID6eea8d6d-0175-1000-70fd-7c9adc04b7dd"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8e2a-0175-1000-badd-ba9a99142c2a","parent":{"ref":"EID6eea8d6d-0175-1000-70fd-7c9adc04b7dd"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"PASSED"},{"id":"EID6eea8e2a-0175-1000-758f-24c04b0b8c91","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eea8d6d-0175-1000-70fd-7c9adc04b7dd"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:14:26Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID1f8c0e34-e6c1-4a09-969d-3c0d5893ecb8"},{"ref":"EID944d28f3-d222-4697-8e49-04bb273c878e"},{"ref":"EID699c8b82-f473-4c92-aa39-68ff6b67303e"}]},"parent":{"ref":"EID6eea8d6d-0175-1000-0627-fbab96fcfb8e"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:14:26Z","duration":45,"status":"FAILED"}]},"parent":{"ref":"EID6eea72f3-0175-1000-f982-b88a543e7914"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:14:26Z","duration":208,"status":"FAILED"}]},"parent":{"ref":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:14:20Z","duration":6986,"status":"FAILED"},{"id":"EID6eea8e3d-0175-1000-405b-273946ad17ad","testCaseResults":{"TestCaseResult":[{"id":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c","testStepResults":{"TestStepResult":[{"id":"EID6eea8e3e-0175-1000-8993-bdf18bc31cba","parent":{"ref":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8e3e-0175-1000-25a4-4273b776a075","parent":{"ref":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:14:27Z","duration":74,"status":"PASSED"},{"id":"EID6eea8e3e-0175-1000-ca0c-af47ae077bda","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8eca-0175-1000-9307-2def3281d2b4","parent":{"ref":"EID6eea8e3e-0175-1000-ca0c-af47ae077bda"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8eca-0175-1000-d5a6-c44806046ac9","parent":{"ref":"EID6eea8e3e-0175-1000-ca0c-af47ae077bda"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8eca-0175-1000-e00d-f74b6cc9d459","parent":{"ref":"EID6eea8e3e-0175-1000-ca0c-af47ae077bda"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7c1be1a3-32be-4caf-85ac-c531642f468f"},{"ref":"EID57c44f4f-31d3-45d0-a4e6-b8a9c81fa20b"},{"ref":"EID65c261e5-4ee3-4ec6-bb41-961207904e9b"}]},"parent":{"ref":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:14:27Z","duration":43,"status":"PASSED"},{"id":"EID6eea8eca-0175-1000-4dce-f31043eae8b1","attachments":{"attachment":{"ref":"EIDf9255820-0fe0-4f49-8256-d6e1be644b87"}},"parent":{"ref":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8ed7-0175-1000-0fe8-37c9bc626955","parent":{"ref":"EID6eea8e3e-0175-1000-b00e-b9c00e13472c"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:14:27Z","duration":59,"status":"PASSED"}]},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:14:27Z","duration":213,"status":"PASSED"},{"id":"EID6eea8f13-0175-1000-8b85-379207ed219a","testStepResults":{"TestStepResult":[{"id":"EID6eea8f13-0175-1000-9be5-373cc05375a4","parent":{"ref":"EID6eea8f13-0175-1000-8b85-379207ed219a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:14:27Z","duration":116,"status":"PASSED"},{"id":"EID6eea8f13-0175-1000-11f1-b4958f17151f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea8f8a-0175-1000-7768-9ea8cf78652e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea8f13-0175-1000-11f1-b4958f17151f"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:14:27Z","duration":11,"status":"FAILED"},{"id":"EID6eea8f95-0175-1000-0a3c-6104e67e7465","parent":{"ref":"EID6eea8f13-0175-1000-11f1-b4958f17151f"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8f95-0175-1000-11a5-3125a14dbccf","parent":{"ref":"EID6eea8f13-0175-1000-11f1-b4958f17151f"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea8f95-0175-1000-e9db-c562a6bdeb49","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6eea8f13-0175-1000-11f1-b4958f17151f"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"},{"id":"EID6eea8f95-0175-1000-80cf-af0a07de28b4","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6eea8f13-0175-1000-11f1-b4958f17151f"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID8da7767b-6f15-4f21-8afa-fd2701a148c3"},{"ref":"EID6966b901-f058-44db-8618-e01bdb6dd196"},{"ref":"EID24602bc2-6c22-4f59-9b5c-40710fffc7f7"}]},"parent":{"ref":"EID6eea8f13-0175-1000-8b85-379207ed219a"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:14:27Z","duration":29,"status":"FAILED"}]},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:14:27Z","duration":130,"status":"FAILED"},{"id":"EID6eea8f95-0175-1000-a4d3-8d9ce83f48d8","testStepResults":{"TestStepResult":{"id":"EID6eea8f95-0175-1000-08fa-4746c3419be8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9057-0175-1000-65a3-f303e11b3b03","parent":{"ref":"EID6eea8f95-0175-1000-08fa-4746c3419be8"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:14:27Z","duration":1,"status":"PASSED"},{"id":"EID6eea9058-0175-1000-78eb-3b10f336552e","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea8f95-0175-1000-08fa-4746c3419be8"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:14:27Z","duration":13,"status":"FAILED"},{"id":"EID6eea9066-0175-1000-b137-4299568c9193","parent":{"ref":"EID6eea8f95-0175-1000-08fa-4746c3419be8"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID032296be-0629-4fd2-8704-3cd75ff741ab"},{"ref":"EID8ee30a0f-38e9-4916-a161-432fa2169735"},{"ref":"EID18e9885c-cb06-45f6-9743-1c3c6bbe89fa"}]},"parent":{"ref":"EID6eea8f95-0175-1000-a4d3-8d9ce83f48d8"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:14:27Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:14:27Z","duration":219,"status":"FAILED"},{"id":"EID6eea9070-0175-1000-5747-97c2cb84dd10","testStepResults":{"TestStepResult":{"id":"EID6eea9070-0175-1000-9e2b-0389d9603c5a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea90d7-0175-1000-ac95-2b02a15d5138","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eea9070-0175-1000-9e2b-0389d9603c5a"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"},{"id":"EID6eea90d7-0175-1000-a0a6-81fc35aa78ab","parent":{"ref":"EID6eea9070-0175-1000-9e2b-0389d9603c5a"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea90d7-0175-1000-d925-15236bed90fd","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea9070-0175-1000-9e2b-0389d9603c5a"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:14:27Z","duration":14,"status":"FAILED"},{"id":"EID6eea90e6-0175-1000-a6c8-c20ad59ce20b","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6eea9070-0175-1000-9e2b-0389d9603c5a"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID985f4603-8f27-439d-8304-07393d0a8316"},{"ref":"EID3f2a2c7f-debd-475f-a8d1-a21a1f6cef7d"},{"ref":"EID34e85847-e5c3-45ab-91b8-b3a36f8a3593"}]},"parent":{"ref":"EID6eea9070-0175-1000-5747-97c2cb84dd10"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:14:27Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:14:27Z","duration":118,"status":"FAILED"},{"id":"EID6eea90e6-0175-1000-7b2a-9dca7e551f40","testStepResults":{"TestStepResult":{"id":"EID6eea90e6-0175-1000-69d4-1f0e4ce05a27","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea914f-0175-1000-f758-2ed2be14cd79","parent":{"ref":"EID6eea90e6-0175-1000-69d4-1f0e4ce05a27"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea914f-0175-1000-fdde-1b1f4090fc09","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea90e6-0175-1000-69d4-1f0e4ce05a27"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:14:27Z","duration":13,"status":"FAILED"},{"id":"EID6eea915c-0175-1000-e796-99746465840c","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6eea90e6-0175-1000-69d4-1f0e4ce05a27"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID07e28404-c914-4cbb-9468-53657893e486"},{"ref":"EID28a555fb-44f8-4c22-95e6-087a29eea2c5"},{"ref":"EIDa62ebd1d-1ad4-46ea-906b-8d8b338c7ffc"}]},"parent":{"ref":"EID6eea90e6-0175-1000-7b2a-9dca7e551f40"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:14:27Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:14:27Z","duration":119,"status":"FAILED"},{"id":"EID6eea915d-0175-1000-a12e-22da47298e86","testStepResults":{"TestStepResult":{"id":"EID6eea915d-0175-1000-1609-09a183c2bbe1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea91b9-0175-1000-6dde-4962be8f29fb","parent":{"ref":"EID6eea915d-0175-1000-1609-09a183c2bbe1"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"PASSED"},{"id":"EID6eea91b9-0175-1000-f0d2-4bb3faaa7d33","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea915d-0175-1000-1609-09a183c2bbe1"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:14:27Z","duration":10,"status":"FAILED"},{"id":"EID6eea91c3-0175-1000-f7fd-40ad7c450538","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eea915d-0175-1000-1609-09a183c2bbe1"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:14:27Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID69396b64-7b97-4402-bcf2-2765df75af35"},{"ref":"EID6a0fefba-7776-4f58-9438-34706cf800b5"},{"ref":"EID49eb7e1d-3727-4ada-88f8-0bdc3e519ab3"}]},"parent":{"ref":"EID6eea915d-0175-1000-a12e-22da47298e86"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:14:27Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:14:27Z","duration":102,"status":"FAILED"},{"id":"EID6eea91c4-0175-1000-a336-48462a5df7a7","testStepResults":{"TestStepResult":{"id":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9236-0175-1000-74fc-da60018b079f","parent":{"ref":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea9236-0175-1000-7f4e-5a9d612daf20","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:14:28Z","duration":14,"status":"FAILED"},{"id":"EID6eea9244-0175-1000-57a9-63d590783cd0","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"FAILED"},{"id":"EID6eea9245-0175-1000-cf10-11069630add8","parent":{"ref":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea9245-0175-1000-e46c-c3f123d23611","parent":{"ref":"EID6eea91c4-0175-1000-b0a1-11fa5fdb9dbb"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf6aa2311-7b10-4c03-906d-a89bed0f9968"},{"ref":"EIDeafc9821-3f8a-46cc-95bd-5c63ad86d224"},{"ref":"EID12db92bb-e001-493a-b2a8-99f297034ce8"}]},"parent":{"ref":"EID6eea91c4-0175-1000-a336-48462a5df7a7"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:14:27Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:14:27Z","duration":129,"status":"FAILED"},{"id":"EID6eea9245-0175-1000-f7d8-15ffb645b919","testStepResults":{"TestStepResult":{"id":"EID6eea9245-0175-1000-a3ed-944d95d26676","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea929a-0175-1000-a781-1633de533815","parent":{"ref":"EID6eea9245-0175-1000-a3ed-944d95d26676"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea929a-0175-1000-945c-d0064064979d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea9245-0175-1000-a3ed-944d95d26676"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:14:28Z","duration":12,"status":"FAILED"},{"id":"EID6eea92a6-0175-1000-ac4e-7ff048be966d","parent":{"ref":"EID6eea9245-0175-1000-a3ed-944d95d26676"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb23e2df2-c2b1-47fe-8690-e15bbb14c5f9"},{"ref":"EIDb05ecf47-192d-497c-bc78-deea6a7a103b"},{"ref":"EID42fef613-5eb6-4ed3-9083-dd5402a1e518"}]},"parent":{"ref":"EID6eea9245-0175-1000-f7d8-15ffb645b919"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:14:28Z","duration":25,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:14:28Z","duration":97,"status":"FAILED"},{"id":"EID6eea92a6-0175-1000-310b-490f6f71bd47","testStepResults":{"TestStepResult":{"id":"EID6eea92a6-0175-1000-3d4f-912d81e0d3e8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9312-0175-1000-1316-8fe0e5cbee29","parent":{"ref":"EID6eea92a6-0175-1000-3d4f-912d81e0d3e8"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea9312-0175-1000-cfd6-c1cd8407db5f","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea92a6-0175-1000-3d4f-912d81e0d3e8"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:14:28Z","duration":13,"status":"FAILED"},{"id":"EID6eea9320-0175-1000-d30a-315b92a09604","parent":{"ref":"EID6eea92a6-0175-1000-3d4f-912d81e0d3e8"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID362b0116-b718-4b2c-8ec8-66bf77adb206"},{"ref":"EID003cb91d-65cc-4530-a938-b94f017067cf"},{"ref":"EID1772396e-a482-46e6-aaa7-5bc0884ceba8"}]},"parent":{"ref":"EID6eea92a6-0175-1000-310b-490f6f71bd47"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:14:28Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:14:28Z","duration":122,"status":"FAILED"},{"id":"EID6eea9320-0175-1000-7487-0e2670c1d4fc","testStepResults":{"TestStepResult":{"id":"EID6eea9320-0175-1000-79bc-6ee7e61334f3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea93b2-0175-1000-1e8c-e5bc1f4ee7a3","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea9320-0175-1000-79bc-6ee7e61334f3"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:14:28Z","duration":14,"status":"FAILED"},{"id":"EID6eea93c0-0175-1000-497b-d4dccaf44003","parent":{"ref":"EID6eea9320-0175-1000-79bc-6ee7e61334f3"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea93c0-0175-1000-a4b0-c250f4e91daf","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea9320-0175-1000-79bc-6ee7e61334f3"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"FAILED"},{"id":"EID6eea93c0-0175-1000-5a15-53257eacf708","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eea9320-0175-1000-79bc-6ee7e61334f3"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa32614ba-cf13-4216-8f46-07e3fb518710"},{"ref":"EID3ee3234f-be2d-46bf-aef0-64f64f07ff86"},{"ref":"EID996c612b-863e-4546-9d39-0805f8260e6d"}]},"parent":{"ref":"EID6eea9320-0175-1000-7487-0e2670c1d4fc"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:14:28Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:14:28Z","duration":160,"status":"FAILED"},{"id":"EID6eea93c0-0175-1000-8a4d-ab21ea5960e1","testStepResults":{"TestStepResult":{"id":"EID6eea93c0-0175-1000-b090-bc1fb8b243ae","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea944f-0175-1000-fe16-2868ee4bc194","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea93c0-0175-1000-b090-bc1fb8b243ae"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:14:28Z","duration":12,"status":"FAILED"},{"id":"EID6eea945b-0175-1000-90fb-cdc68d5df5ce","parent":{"ref":"EID6eea93c0-0175-1000-b090-bc1fb8b243ae"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea945b-0175-1000-1236-6b291c447d35","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea93c0-0175-1000-b090-bc1fb8b243ae"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"FAILED"},{"id":"EID6eea945b-0175-1000-937a-2912862ef102","parent":{"ref":"EID6eea93c0-0175-1000-b090-bc1fb8b243ae"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDda826c2b-56f4-4695-a692-30e54535a0c1"},{"ref":"EIDb837fc45-f24b-4524-91dc-89b0071cbbcc"},{"ref":"EID7b8e2e13-4735-429b-9cdb-98ccc5740999"}]},"parent":{"ref":"EID6eea93c0-0175-1000-8a4d-ab21ea5960e1"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:14:28Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:14:28Z","duration":155,"status":"FAILED"},{"id":"EID6eea945b-0175-1000-150a-ad2b583a77f3","testStepResults":{"TestStepResult":[{"id":"EID6eea945c-0175-1000-f852-db9eb0661f7b","parent":{"ref":"EID6eea945b-0175-1000-150a-ad2b583a77f3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea945c-0175-1000-7f8d-0d428df31db2","parent":{"ref":"EID6eea945b-0175-1000-150a-ad2b583a77f3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:14:28Z","duration":214,"status":"PASSED"},{"id":"EID6eea945c-0175-1000-271a-5f8c1bff3e11","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea94f9-0175-1000-070e-6bd71486de44","parent":{"ref":"EID6eea945c-0175-1000-271a-5f8c1bff3e11"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea94f9-0175-1000-ada2-35a3fd61d59b","parent":{"ref":"EID6eea945c-0175-1000-271a-5f8c1bff3e11"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea94f9-0175-1000-a702-0ba0f934b8da","parent":{"ref":"EID6eea945c-0175-1000-271a-5f8c1bff3e11"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea94f9-0175-1000-5245-7dc17d17f580","parent":{"ref":"EID6eea945c-0175-1000-271a-5f8c1bff3e11"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9890a07d-ed07-4c96-a10a-4f50b7919921"},{"ref":"EID02830d0a-d1ce-4747-b26a-e4fea31d7705"},{"ref":"EIDe8b6341a-791b-48f5-a938-51d2b64e6b56"}]},"parent":{"ref":"EID6eea945b-0175-1000-150a-ad2b583a77f3"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:14:28Z","duration":35,"status":"PASSED"},{"id":"EID6eea94f9-0175-1000-95db-fab35c1e8ab8","attachments":{"attachment":{"ref":"EIDd4d29495-3be5-4ed0-a466-6f53e9025f12"}},"parent":{"ref":"EID6eea945b-0175-1000-150a-ad2b583a77f3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:14:28Z","duration":3,"status":"PASSED"},{"id":"EID6eea951a-0175-1000-64bc-316f2f9d838e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea958f-0175-1000-f97e-87baacef1528","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea958f-0175-1000-cf14-e4d03d343509","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:14:28Z","duration":13,"status":"FAILED"},{"id":"EID6eea959c-0175-1000-44b3-4787c005eeb0","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea959c-0175-1000-080f-31bfcbd58507","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea959c-0175-1000-a3f0-6ecc25d4d386","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea959c-0175-1000-df0f-3138351d3bfb","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea959c-0175-1000-fc73-842358dd0943","parent":{"ref":"EID6eea951a-0175-1000-64bc-316f2f9d838e"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfbf7cf80-11fb-4fa9-8dda-dab963049f14"},{"ref":"EIDf74d2282-8ddb-4e83-b599-f707744b71d1"},{"ref":"EIDf76ad23a-fdf2-470d-973a-246544aaa276"}]},"parent":{"ref":"EID6eea945b-0175-1000-150a-ad2b583a77f3"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:14:28Z","duration":26,"status":"FAILED"}]},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:14:28Z","duration":321,"status":"FAILED"},{"id":"EID6eea959c-0175-1000-ba84-a6f6bc9c5c8e","testStepResults":{"TestStepResult":[{"id":"EID6eea959c-0175-1000-39c6-ae53a272c9d7","parent":{"ref":"EID6eea959c-0175-1000-ba84-a6f6bc9c5c8e"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:14:28Z","duration":0,"status":"PASSED"},{"id":"EID6eea959c-0175-1000-c226-c35db1ad89b5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9686-0175-1000-fb56-22d49e57e9bd","parent":{"ref":"EID6eea959c-0175-1000-c226-c35db1ad89b5"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea9686-0175-1000-290f-9f9b57e139ff","parent":{"ref":"EID6eea959c-0175-1000-c226-c35db1ad89b5"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea9686-0175-1000-ea0f-7894189e2d6e","parent":{"ref":"EID6eea959c-0175-1000-c226-c35db1ad89b5"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea9686-0175-1000-5ed0-d80a5ba94c2e","parent":{"ref":"EID6eea959c-0175-1000-c226-c35db1ad89b5"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3a61f74f-2095-49a3-861e-f4b057047e79"},{"ref":"EIDe7ad8a43-ec2c-4a56-98b8-1432120227ff"},{"ref":"EID6358a653-8887-49e1-9c08-0ecbdb71ae49"}]},"parent":{"ref":"EID6eea959c-0175-1000-ba84-a6f6bc9c5c8e"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:14:28Z","duration":143,"status":"PASSED"},{"id":"EID6eea9686-0175-1000-dd5c-e2f46355021a","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eea96a8-0175-1000-8159-718476b14789","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea97bc-0175-1000-e95e-da0277ed5669","parent":{"ref":"EID6eea96a8-0175-1000-8159-718476b14789"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea97bc-0175-1000-0179-942152d376a3","parent":{"ref":"EID6eea96a8-0175-1000-8159-718476b14789"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea97bc-0175-1000-46b3-9740813547f2","parent":{"ref":"EID6eea96a8-0175-1000-8159-718476b14789"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdf832f88-ecc7-4512-885a-a63de10b1355"},{"ref":"EIDd4e67911-62ee-4862-b1df-d9a8a15a3431"},{"ref":"EIDeaa3a5d8-c171-4d3f-8181-35afb3224ede"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:29Z","duration":162,"status":"PASSED"},{"id":"EID6eea97bf-0175-1000-642f-78f3fa4a885c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9890-0175-1000-8ee6-f06535101c7c","parent":{"ref":"EID6eea97bf-0175-1000-642f-78f3fa4a885c"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea9890-0175-1000-10e0-50002f58efe8","parent":{"ref":"EID6eea97bf-0175-1000-642f-78f3fa4a885c"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea9890-0175-1000-e381-a564e166816c","parent":{"ref":"EID6eea97bf-0175-1000-642f-78f3fa4a885c"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID9de16cee-661b-4ff1-8a51-ba06f4adb409"},{"ref":"EIDc6c10e9b-33b5-478e-bdb7-bee9498b083a"},{"ref":"EID52fef296-e023-4350-92e3-d3e0f814b78e"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:29Z","duration":156,"status":"PASSED"},{"id":"EID6eea9892-0175-1000-4b16-5659e0a49b11","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea995d-0175-1000-4404-e923c005a276","parent":{"ref":"EID6eea9892-0175-1000-4b16-5659e0a49b11"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea995d-0175-1000-621c-f9bb4e559c7e","parent":{"ref":"EID6eea9892-0175-1000-4b16-5659e0a49b11"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea995d-0175-1000-7de6-aa343d5b9627","parent":{"ref":"EID6eea9892-0175-1000-4b16-5659e0a49b11"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDcf052814-9641-4c46-9bb1-df4d2a1e3b34"},{"ref":"EIDda4ce89d-16a2-4609-b69e-b8a778214284"},{"ref":"EID9298fece-c3d1-412a-b4ca-b1c7740fdc59"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:14:29Z","duration":152,"status":"PASSED"}]},"parent":{"ref":"EID6eea959c-0175-1000-ba84-a6f6bc9c5c8e"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:14:29Z","duration":728,"status":"PASSED"},{"id":"EID6eea995f-0175-1000-fc4c-e8d69350d109","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea99c1-0175-1000-8b6a-9914e98d8d95","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea995f-0175-1000-fc4c-e8d69350d109"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:14:29Z","duration":11,"status":"FAILED"},{"id":"EID6eea99cc-0175-1000-4fb7-30e6ffc61e70","parent":{"ref":"EID6eea995f-0175-1000-fc4c-e8d69350d109"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"},{"id":"EID6eea99cc-0175-1000-5ac4-ed579e7b498f","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea995f-0175-1000-fc4c-e8d69350d109"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"FAILED"},{"id":"EID6eea99cc-0175-1000-24d6-bef86a8a7fb0","parent":{"ref":"EID6eea995f-0175-1000-fc4c-e8d69350d109"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:14:29Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6823fcc0-cb17-4578-a8cc-32ac974416a5"},{"ref":"EID0bcf83c2-17ee-4d09-8b4c-514d51d06059"},{"ref":"EIDb3a417d1-6689-4574-b8ee-1e4fb573a246"}]},"parent":{"ref":"EID6eea959c-0175-1000-ba84-a6f6bc9c5c8e"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:14:29Z","duration":31,"status":"FAILED"}]},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:14:28Z","duration":1081,"status":"FAILED"},{"id":"EID6eea99d5-0175-1000-5f41-d92151269e08","testStepResults":{"TestStepResult":{"id":"EID6eea99de-0175-1000-d9c6-4d062f7c1718","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eea9a58-0175-1000-f211-00defa8a2f02","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eea99de-0175-1000-d9c6-4d062f7c1718"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:14:30Z","duration":13,"status":"FAILED"},{"id":"EID6eea9a65-0175-1000-af2e-0df01f63c4cc","parent":{"ref":"EID6eea99de-0175-1000-d9c6-4d062f7c1718"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"PASSED"},{"id":"EID6eea9a65-0175-1000-48f9-7448d44ad177","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eea99de-0175-1000-d9c6-4d062f7c1718"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"FAILED"},{"id":"EID6eea9a65-0175-1000-239a-315b6c7a26d8","parent":{"ref":"EID6eea99de-0175-1000-d9c6-4d062f7c1718"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe3cb6b8f-4298-47dd-9666-5de251eb6dcd"},{"ref":"EID1a32c5d1-4698-4cd7-bfaf-7d8044b2f6d1"},{"ref":"EID8dd4d85e-24eb-4461-a73b-408b0e3c2702"}]},"parent":{"ref":"EID6eea99d5-0175-1000-5f41-d92151269e08"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:14:29Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6eea8e3d-0175-1000-405b-273946ad17ad"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:14:29Z","duration":144,"status":"FAILED"}]},"parent":{"ref":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:14:27Z","duration":3112,"status":"FAILED"},{"id":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d","testCaseResults":{"TestCaseResult":[{"id":"EID6eea9a65-0175-1000-c65b-41d609b40688","testStepResults":{"TestStepResult":{"id":"EID6eea9a65-0175-1000-5a0a-9cdce12cc407","parent":{"ref":"EID6eea9a65-0175-1000-c65b-41d609b40688"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"SKIPPED"},{"id":"EID6eea9a65-0175-1000-658b-c13f31d7c6f6","testStepResults":{"TestStepResult":{"id":"EID6eea9a65-0175-1000-8bea-a7dc732644ff","parent":{"ref":"EID6eea9a65-0175-1000-658b-c13f31d7c6f6"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"SKIPPED"},{"id":"EID6eea9a65-0175-1000-8ea8-a7642162a8e3","testStepResults":{"TestStepResult":{"id":"EID6eea9a6e-0175-1000-003a-10776bf875d2","parent":{"ref":"EID6eea9a65-0175-1000-8ea8-a7642162a8e3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:14:30Z","duration":9,"status":"SKIPPED"},{"id":"EID6eea9a6e-0175-1000-afe0-a6ebb75df7ca","testStepResults":{"TestStepResult":{"id":"EID6eea9a6e-0175-1000-dda0-17a1473d905a","parent":{"ref":"EID6eea9a6e-0175-1000-afe0-a6ebb75df7ca"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"SKIPPED"},{"id":"EID6eea9a6e-0175-1000-8c18-5c784ab17432","testStepResults":{"TestStepResult":{"id":"EID6eea9a6e-0175-1000-d75c-bc7091585562","parent":{"ref":"EID6eea9a6e-0175-1000-8c18-5c784ab17432"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:14:30Z","duration":1,"status":"SKIPPED"},{"id":"EID6eea9a6f-0175-1000-52df-cc03bc818f44","testStepResults":{"TestStepResult":{"id":"EID6eea9a6f-0175-1000-ed5f-122485ee4456","parent":{"ref":"EID6eea9a6f-0175-1000-52df-cc03bc818f44"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"SKIPPED"},{"id":"EID6eea9a6f-0175-1000-5a77-d092b1fd4b9c","testStepResults":{"TestStepResult":{"id":"EID6eea9a6f-0175-1000-1c5c-72692fa11a3a","parent":{"ref":"EID6eea9a6f-0175-1000-5a77-d092b1fd4b9c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:14:30Z","duration":446,"status":"SKIPPED"}},"parent":{"ref":"EID6eea9a65-0175-1000-137c-aee8a4c55b8d"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:14:30Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID39d8aeff-8346-4ae0-856c-c6ed4555b479"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:14:30Z","duration":10,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EID57c44f4f-31d3-45d0-a4e6-b8a9c81fa20b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID57c44f4f-31d3-45d0-a4e6-b8a9c81fa20b"}},{"type":"ServiceResponse","id":"EID6a0fefba-7776-4f58-9438-34706cf800b5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID6a0fefba-7776-4f58-9438-34706cf800b5"}},{"type":"ServiceResponse","id":"EIDf60745ff-d22f-4c74-877f-70e0b87fec3b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf60745ff-d22f-4c74-877f-70e0b87fec3b"}},{"type":"Error","id":"EID06d61df1-386c-420b-862a-a031b1f4776a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID06d61df1-386c-420b-862a-a031b1f4776a"}},{"type":"ServiceEndpoint","id":"EID8da7767b-6f15-4f21-8afa-fd2701a148c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID5eac6bc3-09c0-43d9-83dd-4d5412b9c40a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID7b8e2e13-4735-429b-9cdb-98ccc5740999","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID1769ee7d-31f7-447c-b17c-1ae37b2c2338","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID9134a581-d020-4c95-be79-3a6198bcea79","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID9134a581-d020-4c95-be79-3a6198bcea79"}},{"type":"ServiceResponse","id":"EIDdda90015-4b60-489f-b32c-2dd98ce17e85","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDdda90015-4b60-489f-b32c-2dd98ce17e85"}},{"type":"GetParameter","id":"EID42fef613-5eb6-4ed3-9083-dd5402a1e518","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID9890a07d-ed07-4c96-a10a-4f50b7919921","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID7949a676-e0f3-48a2-91b9-6b58ac86123e","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID7949a676-e0f3-48a2-91b9-6b58ac86123e"}},{"type":"ServiceResponse","id":"EID601da86e-256f-4bdc-85a7-ad1e4b6455a9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID601da86e-256f-4bdc-85a7-ad1e4b6455a9"}},{"type":"ServiceEndpoint","id":"EID3575437d-05c6-40de-9ce6-77b7b2ba2506","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID9bcb5b12-d1d0-449a-8da1-b08d7f8a7619","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID9bcb5b12-d1d0-449a-8da1-b08d7f8a7619"}},{"type":"Message","id":"EIDeb536c6f-2ef5-4abe-be7f-444534b27dba","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDeb536c6f-2ef5-4abe-be7f-444534b27dba"}},{"type":"GetParameter","id":"EID0239f8c7-1746-4456-93eb-a9f9d6af830a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID34e85847-e5c3-45ab-91b8-b3a36f8a3593","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDb05ecf47-192d-497c-bc78-deea6a7a103b","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDb05ecf47-192d-497c-bc78-deea6a7a103b"}},{"type":"ServiceResponse","id":"EIDed0f54c3-6b2c-4ff6-bf50-9e847e5ecfa7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDed0f54c3-6b2c-4ff6-bf50-9e847e5ecfa7"}},{"type":"ServiceEndpoint","id":"EIDcf052814-9641-4c46-9bb1-df4d2a1e3b34","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDbeee7628-3b4b-490c-8b37-c3f9291ae597","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDbeee7628-3b4b-490c-8b37-c3f9291ae597"}},{"type":"ServiceEndpoint","id":"EIDfbf7cf80-11fb-4fa9-8dda-dab963049f14","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6358a653-8887-49e1-9c08-0ecbdb71ae49","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID65c261e5-4ee3-4ec6-bb41-961207904e9b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID1c45e21b-65ab-4b33-932f-4c153778bad4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1c45e21b-65ab-4b33-932f-4c153778bad4"}},{"type":"ServiceResponse","id":"EID15d6f154-77a4-4e34-9da9-48e0a2057055","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID15d6f154-77a4-4e34-9da9-48e0a2057055"}},{"type":"ServiceEndpoint","id":"EID362b0116-b718-4b2c-8ec8-66bf77adb206","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDb3a417d1-6689-4574-b8ee-1e4fb573a246","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID1065d6a0-8711-4330-b286-8cdea56877ad","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1065d6a0-8711-4330-b286-8cdea56877ad"}},{"type":"ServiceEndpoint","id":"EID032296be-0629-4fd2-8704-3cd75ff741ab","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID9b9fb38d-a12e-45f6-8f21-5ea285de4b27","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9298fece-c3d1-412a-b4ca-b1c7740fdc59","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceEndpoint","id":"EIDb7a35471-5c58-47b9-841c-16666fe9d538","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf6aa2311-7b10-4c03-906d-a89bed0f9968","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID2f3ceeca-f7ff-4c7e-9715-5f0b2faf4480","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"LogFile","id":"EIDf66ccdee-9b9c-489b-9607-ad5c98cb186b","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf66ccdee-9b9c-489b-9607-ad5c98cb186b"}},{"type":"GetParameter","id":"EID424d06af-49d3-4758-a694-bd345a67226e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf74d2282-8ddb-4e83-b599-f707744b71d1","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf74d2282-8ddb-4e83-b599-f707744b71d1"}},{"type":"GetParameter","id":"EIDdb389122-5209-4bbf-bd42-a89018c6cfb6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID24602bc2-6c22-4f59-9b5c-40710fffc7f7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0982e3ce-84e6-49bc-bf77-08f98ab11120","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID49eb7e1d-3727-4ada-88f8-0bdc3e519ab3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID18e9885c-cb06-45f6-9743-1c3c6bbe89fa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDeafc9821-3f8a-46cc-95bd-5c63ad86d224","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDeafc9821-3f8a-46cc-95bd-5c63ad86d224"}},{"type":"GetParameter","id":"EID8dd4d85e-24eb-4461-a73b-408b0e3c2702","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf76ad23a-fdf2-470d-973a-246544aaa276","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDf9255820-0fe0-4f49-8256-d6e1be644b87","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf9255820-0fe0-4f49-8256-d6e1be644b87"}},{"type":"ServiceEndpoint","id":"EIDa80cd4a7-c4c4-4eb1-8ceb-31253775a05a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EIDb63097a9-42be-4634-a7fb-587570d2806a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDb63097a9-42be-4634-a7fb-587570d2806a"}},{"type":"ServiceEndpoint","id":"EID4777d509-cb75-4286-b061-2c2c5efa6f7c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID74fb9cf0-4c90-451d-ab46-a8b75af7e1d4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID74fb9cf0-4c90-451d-ab46-a8b75af7e1d4"}},{"type":"ServiceEndpoint","id":"EID985f4603-8f27-439d-8304-07393d0a8316","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDda826c2b-56f4-4695-a692-30e54535a0c1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDda4ce89d-16a2-4609-b69e-b8a778214284","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDda4ce89d-16a2-4609-b69e-b8a778214284"}},{"type":"ServiceResponse","id":"EIDbb2ec87d-35a7-4504-838e-b09076af86c6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDbb2ec87d-35a7-4504-838e-b09076af86c6"}},{"type":"GetParameter","id":"EID9c03f891-9bd7-444a-8562-f52b4b5bed98","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3fb827f9-c917-4bcf-bdc1-c5cdd8a744f6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID47da14c0-ded1-45b1-a90f-e9dfcf97566b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4e2b722e-0cdf-4be7-9ece-37f4058ef501","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8ee30a0f-38e9-4916-a161-432fa2169735","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID8ee30a0f-38e9-4916-a161-432fa2169735"}},{"type":"Message","id":"EIDafe9e74b-d3bc-4af4-8458-659cc6464923","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDafe9e74b-d3bc-4af4-8458-659cc6464923"}},{"type":"Message","id":"EIDbfc68394-6d2e-4d90-8a93-316a9e073cd8","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDbfc68394-6d2e-4d90-8a93-316a9e073cd8"}},{"type":"ServiceEndpoint","id":"EID4e438173-b172-4f2d-8600-3b7c59fe2da8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID4390399e-c39a-485d-85b7-7cd1f7ef2414","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID4390399e-c39a-485d-85b7-7cd1f7ef2414"}},{"type":"ServiceResponse","id":"EIDfe5c8785-d1cc-40dd-afda-8b1675f8c42c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDfe5c8785-d1cc-40dd-afda-8b1675f8c42c"}},{"type":"Message","id":"EID8826586d-060e-40b2-ad8c-e1385c83a7fe","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID8826586d-060e-40b2-ad8c-e1385c83a7fe"}},{"type":"ServiceResponse","id":"EID02830d0a-d1ce-4747-b26a-e4fea31d7705","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID02830d0a-d1ce-4747-b26a-e4fea31d7705"}},{"type":"Message","id":"EID954c313f-d143-4ea0-89e0-e7a5fe62eccc","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID954c313f-d143-4ea0-89e0-e7a5fe62eccc"}},{"type":"Error","id":"EID0f8702ad-139d-49b2-ab4f-7abfd35be535","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID0f8702ad-139d-49b2-ab4f-7abfd35be535"}},{"type":"Message","id":"EIDf779d5ed-f4fc-42db-9152-53a1288ec0a2","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf779d5ed-f4fc-42db-9152-53a1288ec0a2"}},{"type":"Error","id":"EIDf71cfb1d-0dcc-4499-a4d6-cbd740df0c3f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDf71cfb1d-0dcc-4499-a4d6-cbd740df0c3f"}},{"type":"ServiceResponse","id":"EID1e1b9864-18c3-4723-93b9-ee6c93fbd869","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1e1b9864-18c3-4723-93b9-ee6c93fbd869"}},{"type":"Message","id":"EIDd87abb7d-03aa-4403-8c59-088b23fc8b12","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDd87abb7d-03aa-4403-8c59-088b23fc8b12"}},{"type":"ServiceEndpoint","id":"EIDd8ce071c-f73a-40ce-8e33-e4b10dc390cf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID1f8c0e34-e6c1-4a09-969d-3c0d5893ecb8","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID93137f87-ae9e-4199-bcd5-e62744c8ad2c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID3005e13c-b34c-4c2f-8780-4627f8cbc819","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID3005e13c-b34c-4c2f-8780-4627f8cbc819"}},{"type":"ServiceEndpoint","id":"EID07e28404-c914-4cbb-9468-53657893e486","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID6966b901-f058-44db-8618-e01bdb6dd196","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID6966b901-f058-44db-8618-e01bdb6dd196"}},{"type":"GetParameter","id":"EIDe8b6341a-791b-48f5-a938-51d2b64e6b56","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID9d97f5d4-63b4-46b0-93d3-c0ff180a32d1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDb837fc45-f24b-4524-91dc-89b0071cbbcc","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDb837fc45-f24b-4524-91dc-89b0071cbbcc"}},{"type":"ServiceEndpoint","id":"EIDe3cb6b8f-4298-47dd-9666-5de251eb6dcd","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDa7ef8293-cf95-46ba-927b-987c124ccdf8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDa7ef8293-cf95-46ba-927b-987c124ccdf8"}},{"type":"Message","id":"EID39cf95a3-809f-40b6-a476-d08563f2b691","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID39cf95a3-809f-40b6-a476-d08563f2b691"}},{"type":"GetParameter","id":"EID699c8b82-f473-4c92-aa39-68ff6b67303e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID2f76804d-fe47-4682-893f-6943be8bb683","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID2f76804d-fe47-4682-893f-6943be8bb683"}},{"type":"ServiceResponse","id":"EIDc6c10e9b-33b5-478e-bdb7-bee9498b083a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDc6c10e9b-33b5-478e-bdb7-bee9498b083a"}},{"type":"ServiceEndpoint","id":"EIDda391eb0-62d0-447c-9be5-740af56ce405","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDa0c3fb90-4103-405f-8861-05097c6d6aff","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDa0c3fb90-4103-405f-8861-05097c6d6aff"}},{"type":"Error","id":"EID2e6382ff-0af2-479c-a93f-33a635104b06","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID2e6382ff-0af2-479c-a93f-33a635104b06"}},{"type":"GetParameter","id":"EID996c612b-863e-4546-9d39-0805f8260e6d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDfc1b9a0d-b873-4d92-8d1d-843f35c21068","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID72302526-ce7f-42a8-9e0f-8ebc5b314505","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID72302526-ce7f-42a8-9e0f-8ebc5b314505"}},{"type":"Message","id":"EID82de7513-3f8f-461f-ac1a-083199d647b4","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID82de7513-3f8f-461f-ac1a-083199d647b4"}},{"type":"Message","id":"EID75845604-b844-4aed-b50d-6d71935f6963","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID75845604-b844-4aed-b50d-6d71935f6963"}},{"type":"ServiceResponse","id":"EID3e09286c-2040-4fc5-b0b4-2a393aaed862","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID3e09286c-2040-4fc5-b0b4-2a393aaed862"}},{"type":"ServiceResponse","id":"EID86348430-da4e-49ed-a045-d2f12ebaffcf","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID86348430-da4e-49ed-a045-d2f12ebaffcf"}},{"type":"Message","id":"EID0b69f150-4f56-432a-8e30-7916bc301dd8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID0b69f150-4f56-432a-8e30-7916bc301dd8"}},{"type":"ServiceEndpoint","id":"EIDd62d6f72-fd49-4161-9ed8-5a6e59a94650","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDcae8cb65-f833-4e58-ba18-ef4607c43855","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EID7d9f0919-912a-4180-84df-7bd717e7765c","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID7d9f0919-912a-4180-84df-7bd717e7765c"}},{"type":"ServiceResponse","id":"EIDe7ad8a43-ec2c-4a56-98b8-1432120227ff","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDe7ad8a43-ec2c-4a56-98b8-1432120227ff"}},{"type":"ServiceEndpoint","id":"EID69396b64-7b97-4402-bcf2-2765df75af35","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID6fef0ce1-52aa-41b3-b91b-b704922f720d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID944d28f3-d222-4697-8e49-04bb273c878e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID944d28f3-d222-4697-8e49-04bb273c878e"}},{"type":"ServiceEndpoint","id":"EIDdf832f88-ecc7-4512-885a-a63de10b1355","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceEndpoint","id":"EID6823fcc0-cb17-4578-a8cc-32ac974416a5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID6c84a407-c0a9-4d2a-8b41-0f939c6b700f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID35ae6883-0a17-48a4-a371-eeff0410fd85","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID35ae6883-0a17-48a4-a371-eeff0410fd85"}},{"type":"ServiceResponse","id":"EID0bcf83c2-17ee-4d09-8b4c-514d51d06059","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID0bcf83c2-17ee-4d09-8b4c-514d51d06059"}},{"type":"ServiceResponse","id":"EID3f2a2c7f-debd-475f-a8d1-a21a1f6cef7d","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID3f2a2c7f-debd-475f-a8d1-a21a1f6cef7d"}},{"type":"ServiceEndpoint","id":"EID3a61f74f-2095-49a3-861e-f4b057047e79","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID1e585f6f-0946-458e-b7bf-3159e0d9e03e","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1e585f6f-0946-458e-b7bf-3159e0d9e03e"}},{"type":"Message","id":"EIDc6ef5c2e-f5c6-411a-b389-0d29631ba3f2","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDc6ef5c2e-f5c6-411a-b389-0d29631ba3f2"}},{"type":"ServiceResponse","id":"EID003cb91d-65cc-4530-a938-b94f017067cf","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID003cb91d-65cc-4530-a938-b94f017067cf"}},{"type":"Error","id":"EID3ab21d2e-6d6d-45c2-9204-ab4eb4afa418","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID3ab21d2e-6d6d-45c2-9204-ab4eb4afa418"}},{"type":"Message","id":"EID5e937d6f-f46d-4e7d-b28e-f2024d9c75f8","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID5e937d6f-f46d-4e7d-b28e-f2024d9c75f8"}},{"type":"ServiceEndpoint","id":"EID972c0d64-e116-4a18-97b2-a91e5712021e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID8c8702f4-58a6-4e37-9e91-2e66f9454375","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDa32614ba-cf13-4216-8f46-07e3fb518710","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID57df87a0-f10f-4b20-99d1-a3bc7ca6f872","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID17d84fb4-fed0-4899-a76a-6a5e8edc6897","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID17d84fb4-fed0-4899-a76a-6a5e8edc6897"}},{"type":"ServiceResponse","id":"EIDeeb04b6c-178c-4823-b692-de3d48f5a93a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDeeb04b6c-178c-4823-b692-de3d48f5a93a"}},{"type":"GetParameter","id":"EIDeaa3a5d8-c171-4d3f-8181-35afb3224ede","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID36ab6a97-c8cc-4262-a26b-24fb99477600","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID36ab6a97-c8cc-4262-a26b-24fb99477600"}},{"type":"ServiceEndpoint","id":"EID7e5fa6d9-c5b4-4a99-a334-eb27b00a0670","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID272612c6-f451-4f2e-868d-c9aca92402f9","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID272612c6-f451-4f2e-868d-c9aca92402f9"}},{"type":"Message","id":"EIDa9587501-55a0-48a8-8cca-fd0e14151bef","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDa9587501-55a0-48a8-8cca-fd0e14151bef"}},{"type":"GetParameter","id":"EID52fef296-e023-4350-92e3-d3e0f814b78e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Error","id":"EID1de4d741-367f-4bf1-a150-51cec0437726","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1de4d741-367f-4bf1-a150-51cec0437726"}},{"type":"Error","id":"EID26ae6717-d829-4e38-99cc-511febd55a5b","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID26ae6717-d829-4e38-99cc-511febd55a5b"}},{"type":"ServiceEndpoint","id":"EIDd357c1d0-350c-4ca6-b269-751daed1689f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDd2dc8927-7db7-41a3-a9e9-bbfa2884804b","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDd2dc8927-7db7-41a3-a9e9-bbfa2884804b"}},{"type":"ServiceEndpoint","id":"EID7c1be1a3-32be-4caf-85ac-c531642f468f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID3ee3234f-be2d-46bf-aef0-64f64f07ff86","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID3ee3234f-be2d-46bf-aef0-64f64f07ff86"}},{"type":"GetParameter","id":"EIDa62ebd1d-1ad4-46ea-906b-8d8b338c7ffc","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID5e758939-5e2b-4cfc-9e0b-e8752e55df31","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID5e758939-5e2b-4cfc-9e0b-e8752e55df31"}},{"type":"ServiceEndpoint","id":"EID9de16cee-661b-4ff1-8a51-ba06f4adb409","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EID800ddd9a-5f4c-4383-98fc-cf6ff3bc4483","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID0a0bad58-61a5-4770-ad3c-d5dd753db844","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID0a0bad58-61a5-4770-ad3c-d5dd753db844"}},{"type":"ServiceEndpoint","id":"EIDb23e2df2-c2b1-47fe-8690-e15bbb14c5f9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID9f811034-184b-4293-943c-b73d714382aa","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID88c5e263-0978-4a86-930b-4e675ae9f20b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID12db92bb-e001-493a-b2a8-99f297034ce8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDe193c055-6eb4-42d6-99f0-ccdb3fd926f5","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDe193c055-6eb4-42d6-99f0-ccdb3fd926f5"}},{"type":"ServiceResponse","id":"EIDd4e67911-62ee-4862-b1df-d9a8a15a3431","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDd4e67911-62ee-4862-b1df-d9a8a15a3431"}},{"type":"GetParameter","id":"EID778214bb-e2f6-4cbc-9857-f07aeb317069","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID28a555fb-44f8-4c22-95e6-087a29eea2c5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID28a555fb-44f8-4c22-95e6-087a29eea2c5"}},{"type":"GetParameter","id":"EID1772396e-a482-46e6-aaa7-5bc0884ceba8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID05c9f700-2f19-4444-853a-141a10dc3a1c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Error","id":"EIDaa779756-1dc8-4602-ad33-f769d15589b4","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDaa779756-1dc8-4602-ad33-f769d15589b4"}},{"type":"GetParameter","id":"EIDfcc20b08-b5bf-4e50-8a54-a21d0a9594d3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1a32c5d1-4698-4cd7-bfaf-7d8044b2f6d1","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID1a32c5d1-4698-4cd7-bfaf-7d8044b2f6d1"}},{"type":"Error","id":"EIDa9b6a869-a6c2-4882-b154-f28f907b968f","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDa9b6a869-a6c2-4882-b154-f28f907b968f"}},{"type":"Message","id":"EIDd4d29495-3be5-4ed0-a466-6f53e9025f12","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDd4d29495-3be5-4ed0-a466-6f53e9025f12"}},{"type":"Message","id":"EIDe2793812-bfc3-4df3-adb2-8e5ea37c59ac","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EIDe2793812-bfc3-4df3-adb2-8e5ea37c59ac"}},{"type":"Error","id":"EID06cae1b9-174d-4561-97ee-a1b1b0f4b030","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID39d8aeff-8346-4ae0-856c-c6ed4555b479/Attachments/EID06cae1b9-174d-4561-97ee-a1b1b0f4b030"}},{"type":"GetParameter","id":"EIDa16e14e2-b77d-4dbc-b2d8-c3f38dee856a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:14:19Z","duration":10605,"status":"FAILED"}}}}}
11:14:41.648 [print] EIDd9fef969-5b8f-46c1-8908-0edaeda2d011
11:14:41.648 [print] FAILED
11:14:41.649 [print] FAILED
11:14:41.649 [print] Conformance Class Download Service - Pre-defined Atom
11:14:41.649 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/d9fef969-5b8f-46c1-8908-0edaeda2d011.json
11:14:41.649 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/d9fef969-5b8f-46c1-8908-0edaeda2d011.json
11:14:41.649 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDd9fef969-5b8f-46c1-8908-0edaeda2d011/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:41.670 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:14:41.670 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:34.673 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:14:34.673 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 284
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities"}}}
11:14:37.693 response time in milliseconds: 2914.22
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:37 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027","timestamp":"1603883677436","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/rwsgeluidskaarten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:37.694 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:30.295 [print] testing url:https://geodata.nationaalgeoregister.nl/inspire/tn-ro/wfs?request=GetCapabilities&service=WFS
11:15:30.295 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-ro/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:30.723 response time in milliseconds: 427.72 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:30 GMT 1 < ETag: "1c94e-5af58a6542a86-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:30.728 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/inspire/tn-ro/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:15:31.118 response time in milliseconds: 390.42 1 < 200 1 < Accept-Ranges: bytes 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: application/xml 1 < Date: Wed, 28 Oct 2020 11:15:31 GMT 1 < ETag: "1c94e-5af58a6542a86-gzip" 1 < Last-Modified: Tue, 15 Sep 2020 11:42:46 GMT 1 < Vary: Accept-Encoding 1 < X-Cnection: [close, close]
11:15:31.121 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:07:08.653 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}}}
11:07:08.653 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 287
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}}}
11:07:17.784 response time in milliseconds: 8356.32
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:07:16 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:07:14 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/189aa04f-635e-4577-816d-683e7419b00a.json","testRuns":{"TestRun":{"id":"EID189aa04f-635e-4577-816d-683e7419b00a","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:07:14.266Z","testTasks":{"TestTask":{"id":"EID2ebee4a4-179b-4866-9d3d-906ffb08e711","parent":{"ref":"EID189aa04f-635e-4577-816d-683e7419b00a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID74a8fc09-a65d-4e5f-af72-ded1ff033d86"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID74a8fc09-a65d-4e5f-af72-ded1ff033d86","remoteResource":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:07:09.128Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:07:13.899Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:07:17.789 [print] EID189aa04f-635e-4577-816d-683e7419b00a
11:07:17.789 [print] UNDEFINED
11:07:17.790 [print] Conformance Class Download Service - Pre-defined Atom
11:07:17.790 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/189aa04f-635e-4577-816d-683e7419b00a.json
11:07:17.799 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/log
11:07:17.801 [print] statuspath TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a
11:07:17.802 [print] progresspath TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
11:07:17.804 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:18.324 response time in milliseconds: 518.87
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:07:18 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"4","max":"5","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:18.324 [print] {
"val": "4",
"max": "5",
"log": [
"28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)",
"28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:07:14 - Preparing 1 Test Task:",
"28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)",
"28.10.2020 11:07:14 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:07:14 - with parameters: ",
"28.10.2020 11:07:14 - etf.testcases = *",
"28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:07:14 - Setting state to CREATED",
"28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z",
"28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:07:16 - Project Properties: ",
"28.10.2020 11:07:16 - etf.testcases - * ",
"28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ",
"28.10.2020 11:07:16 - username - ",
"28.10.2020 11:07:16 - authUser - ",
"28.10.2020 11:07:16 - authMethod - basic ",
"28.10.2020 11:07:16 - TestRunTask initialized"
]
}
11:07:18.325 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:18.868 response time in milliseconds: 542.60
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:07:18 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"4","max":"5","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:18.869 retry condition not satisfied: response.val == response.max
11:07:18.869 sleeping before retry #1
11:07:23.870 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:24.384 response time in milliseconds: 512.80
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:07:24 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:24.385 retry condition not satisfied: response.val == response.max
11:07:24.385 sleeping before retry #2
11:07:29.386 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:29.897 response time in milliseconds: 510.11
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:07:29 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:29.897 retry condition not satisfied: response.val == response.max
11:07:29.897 sleeping before retry #3
11:07:34.899 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:35.423 response time in milliseconds: 523.48
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:07:35 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:35.424 retry condition not satisfied: response.val == response.max
11:07:35.424 sleeping before retry #4
11:07:40.425 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:40.939 response time in milliseconds: 512.98
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:07:40 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"41","max":"42","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:40.939 retry condition not satisfied: response.val == response.max
11:07:40.939 sleeping before retry #5
11:07:45.941 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:46.463 response time in milliseconds: 516.89
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:07:46 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"53","max":"54","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:46.464 retry condition not satisfied: response.val == response.max
11:07:46.464 sleeping before retry #6
11:07:51.465 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:52.028 response time in milliseconds: 559.80
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:07:51 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"74","max":"75","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:52.032 retry condition not satisfied: response.val == response.max
11:07:52.032 sleeping before retry #7
11:07:57.033 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:07:57.546 response time in milliseconds: 510.14
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:07:57 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"82","max":"83","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:07:57.546 retry condition not satisfied: response.val == response.max
11:07:57.546 sleeping before retry #8
11:08:02.547 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:03.069 response time in milliseconds: 520.97
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:08:03 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"109","max":"110","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:08:03.070 retry condition not satisfied: response.val == response.max
11:08:03.070 sleeping before retry #9
11:08:08.071 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:08.589 response time in milliseconds: 517.19
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:08:08 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"130","max":"131","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:08:08.593 retry condition not satisfied: response.val == response.max
11:08:08.593 sleeping before retry #10
11:08:13.594 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:14.105 response time in milliseconds: 510.05
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:08:14 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"149","max":"150","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:08:14.111 retry condition not satisfied: response.val == response.max
11:08:14.111 sleeping before retry #11
11:08:19.112 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:19.635 response time in milliseconds: 518.65
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:08:19 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"164","max":"165","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized"]}
11:08:19.635 retry condition not satisfied: response.val == response.max
11:08:19.635 sleeping before retry #12
11:08:24.636 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:25.182 response time in milliseconds: 544.57
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:08:25 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"203","max":"204","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:08:25.183 retry condition not satisfied: response.val == response.max
11:08:25.183 sleeping before retry #13
11:08:30.184 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:30.725 response time in milliseconds: 529.50
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:08:30 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"203","max":"204","log":["28.10.2020 11:07:14 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:07:14 UTC 2020)","28.10.2020 11:07:14 - Resolving Executable Test Suite dependencies","28.10.2020 11:07:14 - Preparing 1 Test Task:","28.10.2020 11:07:14 - TestTask 1 (2ebee4a4-179b-4866-9d3d-906ffb08e711)","28.10.2020 11:07:14 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:07:14 - with parameters: ","28.10.2020 11:07:14 - etf.testcases = *","28.10.2020 11:07:14 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:07:14 - Setting state to CREATED","28.10.2020 11:07:14 - Changed state from CREATED to INITIALIZING","28.10.2020 11:07:14 - Starting TestRun.189aa04f-635e-4577-816d-683e7419b00a at 2020-10-28T11:07:16Z","28.10.2020 11:07:16 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:07:16 - Project Properties: ","28.10.2020 11:07:16 - etf.testcases - * ","28.10.2020 11:07:16 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml ","28.10.2020 11:07:16 - username - ","28.10.2020 11:07:16 - authUser - ","28.10.2020 11:07:16 - authMethod - basic ","28.10.2020 11:07:16 - TestRunTask initialized","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:21 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:08:23 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:08:30.725 retry condition not satisfied: response.val == response.max
11:08:30.725 sleeping before retry #14
11:08:35.727 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:37.813 response time in milliseconds: 2085.59
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:08:37 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:08:37.813 retry condition satisfied
11:08:37.814 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:08:37.814 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:08:48.294 response time in milliseconds: 9522.02
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Cache-Control: public, max-age=120
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:08:47 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Last-Modified: Wed, 28 Oct 2020 11:08:32 GMT
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/189aa04f-635e-4577-816d-683e7419b00a.json","testRuns":{"TestRun":{"id":"EID189aa04f-635e-4577-816d-683e7419b00a","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:07:14.266Z","testTasks":{"TestTask":{"id":"EID2ebee4a4-179b-4866-9d3d-906ffb08e711","parent":{"ref":"EID189aa04f-635e-4577-816d-683e7419b00a"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID74a8fc09-a65d-4e5f-af72-ded1ff033d86"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID347853ac-4983-4b74-9f18-6901a926a90e"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID74a8fc09-a65d-4e5f-af72-ded1ff033d86","remoteResource":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:07:09.128Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:07:13.899Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/rvo/inspire/invasieve-exoten/atom/v1_0/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID347853ac-4983-4b74-9f18-6901a926a90e","testObject":{"ref":"EID74a8fc09-a65d-4e5f-af72-ded1ff033d86"},"testModuleResults":{"TestModuleResult":[{"id":"EID6ee3fbab-0175-1000-b85a-e5f1b73fefce","testCaseResults":{"TestCaseResult":[{"id":"EID6ee3fbab-0175-1000-4175-77708f26e4a0","testStepResults":{"TestStepResult":[{"id":"EID6ee3fbac-0175-1000-247c-a21aa4124139","parent":{"ref":"EID6ee3fbab-0175-1000-4175-77708f26e4a0"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:07:16Z","duration":19,"status":"PASSED"},{"id":"EID6ee3fbc0-0175-1000-df69-541c8466dba8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee3fdae-0175-1000-7fcc-c83042bd2518","parent":{"ref":"EID6ee3fbc0-0175-1000-df69-541c8466dba8"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fdae-0175-1000-457c-65d3d9408eaf","parent":{"ref":"EID6ee3fbc0-0175-1000-df69-541c8466dba8"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fdae-0175-1000-a91f-51b1591cf8d4","parent":{"ref":"EID6ee3fbc0-0175-1000-df69-541c8466dba8"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"},{"id":"EID6ee3fdae-0175-1000-9a0e-5bdbcd75daee","parent":{"ref":"EID6ee3fbc0-0175-1000-df69-541c8466dba8"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:07:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID7aec7130-e0cd-4dd9-a964-a118973d09bf"},{"ref":"EID13096e9f-1a88-4bf4-b559-c20e4ace0f8b"},{"ref":"EID457638a7-5e5f-4a86-bffc-bedd7154f1c3"}]},"parent":{"ref":"EID6ee3fbab-0175-1000-4175-77708f26e4a0"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:07:16Z","duration":395,"status":"PASSED"}]},"parent":{"ref":"EID6ee3fbab-0175-1000-b85a-e5f1b73fefce"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:07:16Z","duration":516,"status":"PASSED"},{"id":"EID6ee3fdaf-0175-1000-de87-6308076f220d","testStepResults":{"TestStepResult":{"id":"EID6ee3fdaf-0175-1000-478c-eeee1eff2f2c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee41137-0175-1000-6870-816abfda71df","parent":{"ref":"EID6ee3fdaf-0175-1000-478c-eeee1eff2f2c"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:07:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee41137-0175-1000-6565-3d2bee5ceaac","parent":{"ref":"EID6ee3fdaf-0175-1000-478c-eeee1eff2f2c"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:07:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee41137-0175-1000-1db4-d1e3ff03f867","parent":{"ref":"EID6ee3fdaf-0175-1000-478c-eeee1eff2f2c"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:07:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID626e39cb-6452-4327-a0e3-cde2612cfaad"},{"ref":"EIDdb51e304-52b5-42c6-8d8c-47d441e455f5"},{"ref":"EID9800ecfc-d47d-4500-bf01-6ae4046983ec"}]},"parent":{"ref":"EID6ee3fdaf-0175-1000-de87-6308076f220d"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:07:16Z","duration":1506,"status":"PASSED"}},"parent":{"ref":"EID6ee3fbab-0175-1000-b85a-e5f1b73fefce"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:07:16Z","duration":5012,"status":"PASSED"}]},"parent":{"ref":"EID347853ac-4983-4b74-9f18-6901a926a90e"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:07:16Z","duration":5528,"status":"PASSED"},{"id":"EID6ee41143-0175-1000-7b1a-715265654646","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4114e-0175-1000-8def-b5ad7f1f0c85","testStepResults":{"TestStepResult":[{"id":"EID6ee41158-0175-1000-c5c3-292c02a52bd3","parent":{"ref":"EID6ee4114e-0175-1000-8def-b5ad7f1f0c85"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:07:21Z","duration":1507,"status":"PASSED"},{"id":"EID6ee41159-0175-1000-636d-57c1008f8be2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee41356-0175-1000-e652-4f470bec9fce","parent":{"ref":"EID6ee41159-0175-1000-636d-57c1008f8be2"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41356-0175-1000-eb0c-ffaeaf219734","parent":{"ref":"EID6ee41159-0175-1000-636d-57c1008f8be2"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41356-0175-1000-9427-5beaa905a137","parent":{"ref":"EID6ee41159-0175-1000-636d-57c1008f8be2"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41356-0175-1000-df75-3daf814a4ec0","parent":{"ref":"EID6ee41159-0175-1000-636d-57c1008f8be2"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"},{"id":"EID6ee41356-0175-1000-96ad-3147fe1ea3ba","parent":{"ref":"EID6ee41159-0175-1000-636d-57c1008f8be2"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:07:22Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID05b3a480-7615-4e06-9b1c-010c85253d58"},{"ref":"EIDa5fe3713-103c-4ed5-8020-9aacb7dcbdbb"},{"ref":"EID1663fa50-1446-4366-abb6-b8a3bef8cf5e"}]},"parent":{"ref":"EID6ee4114e-0175-1000-8def-b5ad7f1f0c85"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:07:21Z","duration":373,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:07:21Z","duration":520,"status":"PASSED"},{"id":"EID6ee41357-0175-1000-2356-43fc54195320","testStepResults":{"TestStepResult":[{"id":"EID6ee41357-0175-1000-518e-06ee2a600810","attachments":{"attachment":[{"ref":"EIDf419399a-3640-4fbb-ada0-fc0b49c844b4"},{"ref":"EID42aafe20-94e5-4dab-b738-fc9a21f48cdb"}]},"parent":{"ref":"EID6ee41357-0175-1000-2356-43fc54195320"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:07:22Z","duration":915,"status":"PASSED"},{"id":"EID6ee41715-0175-1000-2568-0157a2bb0e46","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee419a9-0175-1000-bc76-1881d4b636a5","parent":{"ref":"EID6ee41715-0175-1000-2568-0157a2bb0e46"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:07:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee419a9-0175-1000-2d96-d0f377e808c0","parent":{"ref":"EID6ee41715-0175-1000-2568-0157a2bb0e46"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:07:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee419a9-0175-1000-c8c6-0bae5550407b","parent":{"ref":"EID6ee41715-0175-1000-2568-0157a2bb0e46"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:07:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee419a9-0175-1000-d6aa-d3720a9dcf3d","parent":{"ref":"EID6ee41715-0175-1000-2568-0157a2bb0e46"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:07:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID501ce127-b1c8-4d51-8280-5eaaf183e3a5"},{"ref":"EID511ee24b-2b1b-4445-bd6a-f5a81eb1dae6"},{"ref":"EID6b7d3905-0f38-4419-9e53-d7cfa56c2f3f"}]},"parent":{"ref":"EID6ee41357-0175-1000-2356-43fc54195320"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:07:23Z","duration":593,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:07:22Z","duration":1618,"status":"PASSED"},{"id":"EID6ee419a9-0175-1000-4831-415917ed2a4d","testStepResults":{"TestStepResult":[{"id":"EID6ee419a9-0175-1000-d7e3-454892422c4f","attachments":{"attachment":[{"ref":"EID8b63e5d4-ec7e-4626-952b-772e9839723d"},{"ref":"EID592b9479-4a48-461a-b714-9f32b1a25694"}]},"parent":{"ref":"EID6ee419a9-0175-1000-4831-415917ed2a4d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:07:23Z","duration":929,"status":"PASSED"},{"id":"EID6ee41d99-0175-1000-1e53-8618781045f7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee42573-0175-1000-efc0-664c7919ba72","parent":{"ref":"EID6ee41d99-0175-1000-1e53-8618781045f7"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:07:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee42573-0175-1000-580c-d5e2a6d73e15","parent":{"ref":"EID6ee41d99-0175-1000-1e53-8618781045f7"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:07:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee42573-0175-1000-01cb-c684ab07124c","parent":{"ref":"EID6ee41d99-0175-1000-1e53-8618781045f7"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:07:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee42573-0175-1000-1529-270a98b2b7e9","parent":{"ref":"EID6ee41d99-0175-1000-1e53-8618781045f7"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:07:26Z","duration":0,"status":"PASSED"},{"id":"EID6ee42573-0175-1000-25d8-0c4752181936","parent":{"ref":"EID6ee41d99-0175-1000-1e53-8618781045f7"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:07:26Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID51ea04f4-6727-4a4c-9e2e-6a973b3e3af4"},{"ref":"EID8d3befd1-fbf8-4173-baf5-d971f9cd68b1"},{"ref":"EID9bae6885-26c7-46f5-86fb-194c27027a11"}]},"parent":{"ref":"EID6ee419a9-0175-1000-4831-415917ed2a4d"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:07:24Z","duration":1538,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:07:23Z","duration":3018,"status":"PASSED"},{"id":"EID6ee42573-0175-1000-9ec5-706b21ecaf81","testStepResults":{"TestStepResult":[{"id":"EID6ee4257f-0175-1000-ad2e-8782a6bb33fa","attachments":{"attachment":[{"ref":"EID3a9d2bad-e2cc-4272-b5cc-f3f8f64f1681"},{"ref":"EIDa5a801b1-e81b-47ff-9bf0-9a62b03f8ade"}]},"parent":{"ref":"EID6ee42573-0175-1000-9ec5-706b21ecaf81"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:07:26Z","duration":1848,"status":"PASSED"},{"id":"EID6ee42ce4-0175-1000-9e42-5edd49f5f218","parent":{"ref":"EID6ee42573-0175-1000-9ec5-706b21ecaf81"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:07:28Z","duration":0,"status":"PASSED"},{"id":"EID6ee42ceb-0175-1000-c2b2-265956ce61de","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee43572-0175-1000-f0a8-6def19265abc","parent":{"ref":"EID6ee42ceb-0175-1000-c2b2-265956ce61de"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee43572-0175-1000-db64-9ef2795683e1","parent":{"ref":"EID6ee42ceb-0175-1000-c2b2-265956ce61de"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee43572-0175-1000-c068-57d74131b531","parent":{"ref":"EID6ee42ceb-0175-1000-c2b2-265956ce61de"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"},{"id":"EID6ee43572-0175-1000-5633-e28b9ccd5444","parent":{"ref":"EID6ee42ceb-0175-1000-c2b2-265956ce61de"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:07:31Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID97d39176-ff15-41c3-913f-52061da4b048"},{"ref":"EID595c09c6-9b73-4379-87f5-53368983e134"},{"ref":"EID29d35745-47a3-489b-a712-1afb43ee2dfa"}]},"parent":{"ref":"EID6ee42573-0175-1000-9ec5-706b21ecaf81"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:07:28Z","duration":2105,"status":"PASSED"},{"id":"EID6ee43572-0175-1000-4e9e-10a2a84d6b15","attachments":{"attachment":{"ref":"EID5b5c2a25-8416-4b0e-b6ba-3d62043e1fb2"}},"parent":{"ref":"EID6ee42573-0175-1000-9ec5-706b21ecaf81"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:07:31Z","duration":1,"status":"PASSED"},{"id":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee440c3-0175-1000-84ab-c0b420215f44","parent":{"ref":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:07:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee440c3-0175-1000-6644-4a7d68272644","parent":{"ref":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:07:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee440c3-0175-1000-1a65-726c1e609b7d","parent":{"ref":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:07:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee440c3-0175-1000-c5aa-d6059d5641c8","parent":{"ref":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:07:33Z","duration":0,"status":"PASSED"},{"id":"EID6ee440c3-0175-1000-db5d-6725bb8cb445","parent":{"ref":"EID6ee4357d-0175-1000-69c3-2dd58fd8d24b"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:07:33Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID01ba5261-b195-4901-8d3b-a089c1c5b140"},{"ref":"EID4bc362e7-a1cf-465c-b189-37065fc4c0b2"},{"ref":"EIDe5e5a086-d24e-46c7-8d2d-6b69e65b230f"}]},"parent":{"ref":"EID6ee42573-0175-1000-9ec5-706b21ecaf81"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:07:31Z","duration":2722,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:07:26Z","duration":6992,"status":"PASSED"},{"id":"EID6ee440c3-0175-1000-fecc-a1ddee7ec040","testStepResults":{"TestStepResult":[{"id":"EID6ee440c3-0175-1000-9a6c-47664731070b","attachments":{"attachment":[{"ref":"EIDfb955980-804f-4231-b92a-13154bd0f5e7"},{"ref":"EID9399dfe5-7372-4f7c-bdd8-505f0a41654c"}]},"parent":{"ref":"EID6ee440c3-0175-1000-fecc-a1ddee7ec040"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:07:33Z","duration":2127,"status":"PASSED"},{"id":"EID6ee44962-0175-1000-5d9f-80af1c6dcbaa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee44ca4-0175-1000-5c8f-a2508611368c","parent":{"ref":"EID6ee44962-0175-1000-5d9f-80af1c6dcbaa"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:07:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee44ca4-0175-1000-a4f6-14f43112099d","parent":{"ref":"EID6ee44962-0175-1000-5d9f-80af1c6dcbaa"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:07:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee44ca4-0175-1000-96ec-705ef0988978","parent":{"ref":"EID6ee44962-0175-1000-5d9f-80af1c6dcbaa"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:07:36Z","duration":0,"status":"PASSED"},{"id":"EID6ee44ca4-0175-1000-2a22-74cf425bd48a","parent":{"ref":"EID6ee44962-0175-1000-5d9f-80af1c6dcbaa"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:07:36Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3fe63367-a4be-4324-b35a-1877176b8d04"},{"ref":"EID5d5712fe-acca-49f5-bc98-423858647d4f"},{"ref":"EIDa90c6c69-1b4a-448b-9a2e-8cd9c48e192b"}]},"parent":{"ref":"EID6ee440c3-0175-1000-fecc-a1ddee7ec040"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:07:36Z","duration":744,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:07:33Z","duration":3041,"status":"PASSED"},{"id":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55","testStepResults":{"TestStepResult":[{"id":"EID6ee44cac-0175-1000-b9fe-b7190c114544","attachments":{"attachment":[{"ref":"EIDdd0c0918-3e02-43b6-b19c-62b05e907d27"},{"ref":"EIDbefb56a6-78ff-429c-aa24-f9ed52a034cc"}]},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:07:37Z","duration":912,"status":"PASSED"},{"id":"EID6ee4506e-0175-1000-a539-5d594eebafa4","parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:07:37Z","duration":0,"status":"PASSED"},{"id":"EID6ee4506e-0175-1000-8648-bdbad51ad0c1","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee454c1-0175-1000-1add-11a9dff48741","parent":{"ref":"EID6ee4506e-0175-1000-8648-bdbad51ad0c1"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee454c1-0175-1000-cb3f-d13b51d57e22","parent":{"ref":"EID6ee4506e-0175-1000-8648-bdbad51ad0c1"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee454c1-0175-1000-a967-400bf689380f","parent":{"ref":"EID6ee4506e-0175-1000-8648-bdbad51ad0c1"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee454c1-0175-1000-d547-e1995243f8f0","parent":{"ref":"EID6ee4506e-0175-1000-8648-bdbad51ad0c1"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0d4bd05d-0f7f-46e4-b560-2fa5fd5bacf9"},{"ref":"EID8383f376-04e1-4ceb-9c75-ccc7d11b3797"},{"ref":"EID58605533-79d3-480e-aca3-dba44c8c2880"}]},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:07:37Z","duration":1017,"status":"PASSED"},{"id":"EID6ee454c1-0175-1000-8574-c1e3be7f0ed3","attachments":{"attachment":{"ref":"EID4f2743fb-0259-4c2a-89df-f66d55c598dd"}},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:07:39Z","duration":1,"status":"PASSED"},{"id":"EID6ee454ce-0175-1000-a63f-805c48c803a8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee455bf-0175-1000-31b6-0e613aa92360","parent":{"ref":"EID6ee454ce-0175-1000-a63f-805c48c803a8"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee455bf-0175-1000-1f72-e7e718a20e79","parent":{"ref":"EID6ee454ce-0175-1000-a63f-805c48c803a8"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"},{"id":"EID6ee455bf-0175-1000-0166-83f24c90d6f4","parent":{"ref":"EID6ee454ce-0175-1000-a63f-805c48c803a8"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:07:39Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb098c59e-c7a2-4e51-834f-9de11f1e58bf"},{"ref":"EID3fdc17b9-c226-4bfe-95ca-8c8281f8e488"},{"ref":"EIDd9fa0c4f-cbce-4703-bc47-a783538fdeb5"}]},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:07:39Z","duration":138,"status":"PASSED"},{"id":"EID6ee455c7-0175-1000-48e7-a4102b0cf64b","attachments":{"attachment":{"ref":"EID814ec22a-ef45-4acc-aaa2-d7d6cc2c097f"}},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/452e5b04-edf4-4698-a4de-25bade284add.json"},"startTimestamp":"2020-10-28T11:07:39Z","duration":1,"status":"PASSED"},{"id":"EID6ee455da-0175-1000-926a-54f7e3cd54e2","attachments":{"attachment":{"ref":"EID0bc0f288-28fa-4745-b8c7-3fb51c7f0580"}},"parent":{"ref":"EID6ee44ca4-0175-1000-5e6a-8d4dac8e0f55"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ab7d72c-abe4-458b-875b-0f15bfb70cb4.json"},"startTimestamp":"2020-10-28T11:07:39Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:07:36Z","duration":2369,"status":"PASSED"},{"id":"EID6ee455e6-0175-1000-e661-aff1d2a83003","testStepResults":{"TestStepResult":[{"id":"EID6ee455e6-0175-1000-5f12-0bbbf3bff970","attachments":{"attachment":[{"ref":"EID838bdaa1-bcc1-45a0-b0e5-131dc3ce807e"},{"ref":"EIDe167fd10-2eac-4a83-b471-9c340be1940f"}]},"parent":{"ref":"EID6ee455e6-0175-1000-e661-aff1d2a83003"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:07:39Z","duration":1747,"status":"PASSED"},{"id":"EID6ee45ce4-0175-1000-ef3c-1d025742e405","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee468e2-0175-1000-13fd-d9a35a75c302","parent":{"ref":"EID6ee45ce4-0175-1000-ef3c-1d025742e405"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee468e2-0175-1000-ed3c-9760343ebdf9","parent":{"ref":"EID6ee45ce4-0175-1000-ef3c-1d025742e405"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee468e2-0175-1000-678a-25a00ccc3177","parent":{"ref":"EID6ee45ce4-0175-1000-ef3c-1d025742e405"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee468e2-0175-1000-912a-5b6eb9e974d2","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6ee45ce4-0175-1000-ef3c-1d025742e405"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDd26a99c7-ce58-4102-b1fe-b39b549d698a"},{"ref":"EID30f80fde-7b6b-408b-9f52-9762b2e7d9d6"},{"ref":"EID039e7201-3cae-44fd-92fb-d7b5652a4e14"}]},"parent":{"ref":"EID6ee455e6-0175-1000-e661-aff1d2a83003"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:07:41Z","duration":2994,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:07:39Z","duration":4860,"status":"PASSED_MANUAL"},{"id":"EID6ee468e2-0175-1000-18d2-0de894fa37d2","testStepResults":{"TestStepResult":{"id":"EID6ee468e2-0175-1000-9766-70a73a984f0c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee46b5c-0175-1000-c3eb-d0ed0f84241d","parent":{"ref":"EID6ee468e2-0175-1000-9766-70a73a984f0c"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46b5c-0175-1000-1c4c-3da897412734","parent":{"ref":"EID6ee468e2-0175-1000-9766-70a73a984f0c"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46b5c-0175-1000-dace-518451aba189","parent":{"ref":"EID6ee468e2-0175-1000-9766-70a73a984f0c"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"},{"id":"EID6ee46b5c-0175-1000-ccfe-c9928100b4ad","parent":{"ref":"EID6ee468e2-0175-1000-9766-70a73a984f0c"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:07:44Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID02d7a351-43d1-4d47-bd37-16ed9266052c"},{"ref":"EIDc86624d0-8770-4200-bcb4-40eaff828acd"},{"ref":"EID2667cf6c-b0ca-4b6f-8813-93c1fa483567"}]},"parent":{"ref":"EID6ee468e2-0175-1000-18d2-0de894fa37d2"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:07:44Z","duration":563,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:07:44Z","duration":634,"status":"PASSED"},{"id":"EID6ee46b5d-0175-1000-3d8e-2a6821db38da","testStepResults":{"TestStepResult":{"id":"EID6ee46b5d-0175-1000-96b8-3e9545b61cb0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee46e15-0175-1000-4494-04e3689ef301","parent":{"ref":"EID6ee46b5d-0175-1000-96b8-3e9545b61cb0"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:07:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee46e15-0175-1000-09f6-81c3e9d80f94","parent":{"ref":"EID6ee46b5d-0175-1000-96b8-3e9545b61cb0"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:07:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee46e15-0175-1000-2b55-26c9e5b2020a","parent":{"ref":"EID6ee46b5d-0175-1000-96b8-3e9545b61cb0"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:07:45Z","duration":0,"status":"PASSED"},{"id":"EID6ee46e15-0175-1000-2138-f42c9927f64f","parent":{"ref":"EID6ee46b5d-0175-1000-96b8-3e9545b61cb0"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:07:45Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDceb4e809-3d57-4dde-858b-5dbddfaa7046"},{"ref":"EIDc19dc4e7-9bf5-4464-81b9-022c47fbdd95"},{"ref":"EID07a4e164-eb16-4b39-ad45-77b2d94508b6"}]},"parent":{"ref":"EID6ee46b5d-0175-1000-3d8e-2a6821db38da"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:07:44Z","duration":624,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:07:44Z","duration":696,"status":"PASSED"},{"id":"EID6ee46e15-0175-1000-7532-6ba94ac39438","testStepResults":{"TestStepResult":[{"id":"EID6ee46e15-0175-1000-59b0-b12ccf2bf43c","attachments":{"attachment":[{"ref":"EID694757f2-ff0f-41ad-ab24-373d97dac72c"},{"ref":"EID06fa0f7d-8978-4148-bb5c-b44a9a5ecde0"},{"ref":"EID467480e3-ae20-4e19-b7ee-a3c5f8191e48"},{"ref":"EIDdddd7b96-84cc-4862-8fec-f90f7f50da04"},{"ref":"EIDcfa78da4-b642-4dcb-89bb-3fb86f9f87e4"},{"ref":"EID24583c9e-8018-493f-aa54-6e5dc9004efc"},{"ref":"EID6b72505a-e1f0-4f59-8d91-0eb3db3becd1"},{"ref":"EID7aa93405-ea66-47f6-b755-49ebfa77a3a7"},{"ref":"EID2bd544c8-3836-4a3b-903e-5554e500d4e4"},{"ref":"EIDa575e65e-33b7-4930-8b8e-97a4d2b55343"},{"ref":"EIDfe571bcb-eb6f-4863-900c-8077eab41daf"},{"ref":"EID07ed2d19-243d-4fa1-953c-a5fd547d4182"}]},"parent":{"ref":"EID6ee46e15-0175-1000-7532-6ba94ac39438"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:07:45Z","duration":1074,"status":"PASSED"},{"id":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee475ac-0175-1000-8085-ddffb7a0c11e","parent":{"ref":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d"},"resultedFrom":{"ref":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee"},"startTimestamp":"2020-10-28T11:07:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee475ac-0175-1000-b084-5f2c162762cf","parent":{"ref":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d"},"resultedFrom":{"ref":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79"},"startTimestamp":"2020-10-28T11:07:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee475ac-0175-1000-8669-de962aa09f64","parent":{"ref":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d"},"resultedFrom":{"ref":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a"},"startTimestamp":"2020-10-28T11:07:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee475ac-0175-1000-1215-21e7a2e734a9","parent":{"ref":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d"},"resultedFrom":{"ref":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69"},"startTimestamp":"2020-10-28T11:07:47Z","duration":0,"status":"PASSED"},{"id":"EID6ee475ac-0175-1000-6e57-83acd04cf2ae","parent":{"ref":"EID6ee4732b-0175-1000-5fb1-1d3f1313356d"},"resultedFrom":{"ref":"EID544cf934-0fe3-4865-88b5-5e12285a393f"},"startTimestamp":"2020-10-28T11:07:47Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb916b776-ab46-43ac-9960-236875c65b7a"},{"ref":"EIDecbe836e-003a-4b27-9ea5-2cc5eafd11ed"},{"ref":"EIDef64922d-60b5-4ae7-92ff-c65738a923e6"}]},"parent":{"ref":"EID6ee46e15-0175-1000-7532-6ba94ac39438"},"resultedFrom":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"startTimestamp":"2020-10-28T11:07:46Z","duration":334,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:07:45Z","duration":1951,"status":"PASSED"},{"id":"EID6ee475b4-0175-1000-d9a1-d0f7018a428e","testStepResults":{"TestStepResult":{"id":"EID6ee475b4-0175-1000-b0df-861aa89c3a8f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47807-0175-1000-0dee-305a0c6025c3","parent":{"ref":"EID6ee475b4-0175-1000-b0df-861aa89c3a8f"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47807-0175-1000-7470-e36ab5c67594","parent":{"ref":"EID6ee475b4-0175-1000-b0df-861aa89c3a8f"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47807-0175-1000-180f-1d4843a33dde","parent":{"ref":"EID6ee475b4-0175-1000-b0df-861aa89c3a8f"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47807-0175-1000-d9f1-efac66e63085","parent":{"ref":"EID6ee475b4-0175-1000-b0df-861aa89c3a8f"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID4d02f589-dbfc-4d48-8dbc-3de30631aeb0"},{"ref":"EID56b715ef-f1b0-4b69-9ef6-c72f0ae4cefb"},{"ref":"EID779b6700-5c60-408b-99cc-162414351f66"}]},"parent":{"ref":"EID6ee475b4-0175-1000-d9a1-d0f7018a428e"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:07:47Z","duration":431,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:07:47Z","duration":595,"status":"PASSED"},{"id":"EID6ee47807-0175-1000-e865-261d5da09baa","testStepResults":{"TestStepResult":{"id":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47b63-0175-1000-f394-2d9204b9364d","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-a53a-558b332c91d0","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-1d75-8d2ec65eceac","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-94b8-e1d5da841dcc","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-05e5-6afd5b71250e","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-c0cf-5ad17a218940","parent":{"ref":"EID6ee47807-0175-1000-7cf8-3083ad04c5ea"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:07:48Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0e5655bf-9b0c-44a8-91c9-c371c1034c0f"},{"ref":"EID800a547a-612d-42fe-98c5-261e033ad08f"},{"ref":"EID7d809047-98c3-4644-b00c-ef6d90e6d3f9"}]},"parent":{"ref":"EID6ee47807-0175-1000-e865-261d5da09baa"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:07:48Z","duration":625,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:07:48Z","duration":860,"status":"PASSED"},{"id":"EID6ee47b63-0175-1000-bc23-367d818664ff","testStepResults":{"TestStepResult":{"id":"EID6ee47b64-0175-1000-9529-10509775b1dc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee47de4-0175-1000-5c88-80e0cff3eb76","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47de4-0175-1000-ebb1-d1e7bc22e068","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47de4-0175-1000-b8d8-a470e91acb3a","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47de4-0175-1000-8d4c-257aa10afdbf","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47de4-0175-1000-c89e-ef4f62cdb380","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"},{"id":"EID6ee47de4-0175-1000-899b-d312489d941e","parent":{"ref":"EID6ee47b64-0175-1000-9529-10509775b1dc"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:07:49Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID019857b1-7119-4a4a-a289-849e7ebdf194"},{"ref":"EIDa0639f77-8e13-4c99-b68d-fac404767182"},{"ref":"EID10cfea2a-7890-4e28-8f64-60cb4972bab9"}]},"parent":{"ref":"EID6ee47b63-0175-1000-bc23-367d818664ff"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:07:48Z","duration":329,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:07:48Z","duration":1210,"status":"PASSED"},{"id":"EID6ee4801d-0175-1000-1438-455fe5dc1cd9","testStepResults":{"TestStepResult":{"id":"EID6ee4801d-0175-1000-c9cc-d9ee842e209e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee48762-0175-1000-a580-6d879f28e04a","parent":{"ref":"EID6ee4801d-0175-1000-c9cc-d9ee842e209e"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee48762-0175-1000-102c-22e1359f78fe","parent":{"ref":"EID6ee4801d-0175-1000-c9cc-d9ee842e209e"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee48762-0175-1000-c3ea-7e16da709cbc","parent":{"ref":"EID6ee4801d-0175-1000-c9cc-d9ee842e209e"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"},{"id":"EID6ee48762-0175-1000-4de8-83d8e03949a6","parent":{"ref":"EID6ee4801d-0175-1000-c9cc-d9ee842e209e"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:07:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf3b9ae17-9484-4902-b318-b0bf34254c32"},{"ref":"EIDecfb29bd-dafc-491a-a738-021531ccc993"},{"ref":"EIDdf6d90e4-aacf-4096-8502-02647c20ee9a"}]},"parent":{"ref":"EID6ee4801d-0175-1000-1438-455fe5dc1cd9"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:07:50Z","duration":1714,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:07:50Z","duration":1861,"status":"PASSED"},{"id":"EID6ee48762-0175-1000-124f-1c82d2468e96","testStepResults":{"TestStepResult":[{"id":"EID6ee48762-0175-1000-5ea7-e8bd0548efe8","attachments":{"attachment":[{"ref":"EIDb29a8c98-8efe-46c5-b688-1dfba9d74041"},{"ref":"EID29787235-598e-48d2-98e8-73f94250dd12"},{"ref":"EIDe852002f-7a2a-4348-aeb8-0cc070a3f47d"},{"ref":"EID22331341-7129-4274-84d8-2345eb8da251"}]},"parent":{"ref":"EID6ee48762-0175-1000-124f-1c82d2468e96"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:07:52Z","duration":1494,"status":"PASSED"},{"id":"EID6ee48d74-0175-1000-b232-8457a014bda8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee49075-0175-1000-6805-b57c1b7f3488","parent":{"ref":"EID6ee48d74-0175-1000-b232-8457a014bda8"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:07:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee49075-0175-1000-35ef-896b1c56a54a","parent":{"ref":"EID6ee48d74-0175-1000-b232-8457a014bda8"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:07:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee49075-0175-1000-3ecc-b5622f10aa7e","parent":{"ref":"EID6ee48d74-0175-1000-b232-8457a014bda8"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:07:54Z","duration":0,"status":"PASSED"},{"id":"EID6ee49075-0175-1000-3854-09552913bac4","parent":{"ref":"EID6ee48d74-0175-1000-b232-8457a014bda8"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:07:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDff060314-98aa-4faa-bd14-3bb44604c4d6"},{"ref":"EIDa7125ff7-1477-4d6d-ba2a-81e5f99e21f0"},{"ref":"EID00696abe-f413-409b-9866-ae0acdd93658"}]},"parent":{"ref":"EID6ee48762-0175-1000-124f-1c82d2468e96"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:07:53Z","duration":699,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:07:52Z","duration":2323,"status":"PASSED"},{"id":"EID6ee49075-0175-1000-ce10-2babecb6b5fa","testStepResults":{"TestStepResult":{"id":"EID6ee49075-0175-1000-e80e-801eb11175f0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee49f00-0175-1000-e26c-d95dcf0b7fa7","parent":{"ref":"EID6ee49075-0175-1000-e80e-801eb11175f0"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee49f00-0175-1000-2f13-b439e38ac01e","parent":{"ref":"EID6ee49075-0175-1000-e80e-801eb11175f0"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee49f00-0175-1000-56f4-0c53ac9b5833","parent":{"ref":"EID6ee49075-0175-1000-e80e-801eb11175f0"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee49f00-0175-1000-051e-adb148b4ed37","parent":{"ref":"EID6ee49075-0175-1000-e80e-801eb11175f0"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0293c494-7d5d-4044-ba33-40fcc012519f"},{"ref":"EID9559c726-c513-44a1-a4df-01b38b1d74f8"},{"ref":"EID474fd821-b9ef-41ab-b208-213b5a96a0ed"}]},"parent":{"ref":"EID6ee49075-0175-1000-ce10-2babecb6b5fa"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:07:54Z","duration":3635,"status":"PASSED"}},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:07:54Z","duration":3724,"status":"PASSED"},{"id":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f","testStepResults":{"TestStepResult":[{"id":"EID6ee49f02-0175-1000-0fdc-6ca10538a324","parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee49f02-0175-1000-f7d2-74f1bb550773","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a13c-0175-1000-c678-12e874475370","parent":{"ref":"EID6ee49f02-0175-1000-f7d2-74f1bb550773"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a13c-0175-1000-0c12-5fc38e9ffaa4","parent":{"ref":"EID6ee49f02-0175-1000-f7d2-74f1bb550773"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a13c-0175-1000-a853-751b7f5c2b2b","parent":{"ref":"EID6ee49f02-0175-1000-f7d2-74f1bb550773"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a13c-0175-1000-24c9-59166578ce79","parent":{"ref":"EID6ee49f02-0175-1000-f7d2-74f1bb550773"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID04b10b2b-4058-481a-8d7e-c24809521205"},{"ref":"EID0dadf62d-a0cc-4b2a-b4df-a6a6860a50ec"},{"ref":"EID8da0d033-69e1-4fc0-bcdc-af3fc5543825"}]},"parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:07:58Z","duration":504,"status":"PASSED"},{"id":"EID6ee4a13d-0175-1000-b303-46be42419d12","attachments":{"attachment":{"ref":"EID572fc61b-5900-4d6d-b857-2ce3033cdb38"}},"parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/63db16c5-c828-4922-95dd-5db67bc9c203.json"},"startTimestamp":"2020-10-28T11:07:58Z","duration":1,"status":"PASSED"},{"id":"EID6ee4a149-0175-1000-bbfb-8ceea9e1611a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a21a-0175-1000-9165-55ae77e2e9ec","parent":{"ref":"EID6ee4a149-0175-1000-bbfb-8ceea9e1611a"},"resultedFrom":{"ref":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a21a-0175-1000-1668-b0e69cb4a30b","parent":{"ref":"EID6ee4a149-0175-1000-bbfb-8ceea9e1611a"},"resultedFrom":{"ref":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a21a-0175-1000-201a-88e163034b36","parent":{"ref":"EID6ee4a149-0175-1000-bbfb-8ceea9e1611a"},"resultedFrom":{"ref":"EID234062a4-45c2-4013-9038-71b8cc9a7d36"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a21a-0175-1000-7108-83f93df17c68","parent":{"ref":"EID6ee4a149-0175-1000-bbfb-8ceea9e1611a"},"resultedFrom":{"ref":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862"},"startTimestamp":"2020-10-28T11:07:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID53a520cd-7670-41ba-a46c-fd6a5d0ce92e"},{"ref":"EIDebd10ae3-609a-462c-9d64-7c2a0786230a"},{"ref":"EID31a4288b-d2e6-4f22-ad68-d58215a3988e"}]},"parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"startTimestamp":"2020-10-28T11:07:58Z","duration":127,"status":"PASSED"},{"id":"EID6ee4a223-0175-1000-f215-9651cb6aa402","attachments":{"attachment":{"ref":"EID571e79de-5ddb-4546-aa1c-f73c43d3aa60"}},"parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/18c66972-5d73-4718-8e9c-439d4032a9fe.json"},"startTimestamp":"2020-10-28T11:07:58Z","duration":1,"status":"PASSED"},{"id":"EID6ee4a22f-0175-1000-be2e-f79c88784272","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a412-0175-1000-c58a-a435c6b1dc1b","parent":{"ref":"EID6ee4a22f-0175-1000-be2e-f79c88784272"},"resultedFrom":{"ref":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a412-0175-1000-fba1-561646eb8149","parent":{"ref":"EID6ee4a22f-0175-1000-be2e-f79c88784272"},"resultedFrom":{"ref":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a412-0175-1000-159b-497349d7496d","parent":{"ref":"EID6ee4a22f-0175-1000-be2e-f79c88784272"},"resultedFrom":{"ref":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a412-0175-1000-65a6-fa086b2d1dfb","parent":{"ref":"EID6ee4a22f-0175-1000-be2e-f79c88784272"},"resultedFrom":{"ref":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2d6c83b7-4a0b-4349-9573-f184d431b7c6"},{"ref":"EIDe24b569c-aaec-43c8-a4eb-be7b5857706a"},{"ref":"EID9315f5d0-1609-467e-aa55-b178faf55d7c"}]},"parent":{"ref":"EID6ee49f01-0175-1000-2ed0-0b9711aa500f"},"resultedFrom":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"startTimestamp":"2020-10-28T11:07:58Z","duration":395,"status":"PASSED"}]},"parent":{"ref":"EID6ee41143-0175-1000-7b1a-715265654646"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:07:58Z","duration":1297,"status":"PASSED"}]},"parent":{"ref":"EID347853ac-4983-4b74-9f18-6901a926a90e"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:07:21Z","duration":37584,"status":"PASSED_MANUAL"},{"id":"EID6ee4a413-0175-1000-9add-a1518065cba3","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd","testStepResults":{"TestStepResult":[{"id":"EID6ee4a413-0175-1000-0394-6672157f7e11","parent":{"ref":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a413-0175-1000-0d00-f50798cf5777","parent":{"ref":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:07:59Z","duration":3634,"status":"PASSED"},{"id":"EID6ee4a41d-0175-1000-0f59-48fe94c723d4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a544-0175-1000-da38-08f8f9429085","parent":{"ref":"EID6ee4a41d-0175-1000-0f59-48fe94c723d4"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a544-0175-1000-9859-f423cb31b238","parent":{"ref":"EID6ee4a41d-0175-1000-0f59-48fe94c723d4"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a544-0175-1000-9f41-041243f9cdbb","parent":{"ref":"EID6ee4a41d-0175-1000-0f59-48fe94c723d4"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID50c5d428-a8d2-4020-8abb-fc02ff72214a"},{"ref":"EIDece4cedb-8d77-4216-bc7a-9a2d99bd851b"},{"ref":"EIDa5ec6595-f243-49aa-8c8f-9743b60eb2bf"}]},"parent":{"ref":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:07:59Z","duration":201,"status":"PASSED"},{"id":"EID6ee4a545-0175-1000-b15b-76be3c7b9d59","attachments":{"attachment":{"ref":"EID7e354f32-0ef1-405f-ba58-7e532a86b639"}},"parent":{"ref":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:07:59Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a551-0175-1000-b737-284ac03757aa","parent":{"ref":"EID6ee4a413-0175-1000-68b5-6b4d01fd14bd"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:07:59Z","duration":57,"status":"PASSED"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:07:59Z","duration":388,"status":"PASSED"},{"id":"EID6ee4a597-0175-1000-92bf-0350df93cb0c","testStepResults":{"TestStepResult":[{"id":"EID6ee4a597-0175-1000-fb5c-dfb1b6b73921","parent":{"ref":"EID6ee4a597-0175-1000-92bf-0350df93cb0c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:07:59Z","duration":1506,"status":"PASSED"},{"id":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4a7a7-0175-1000-8e86-9cc4b92c3af6","parent":{"ref":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a7a7-0175-1000-abc4-7935ec9f5b1e","parent":{"ref":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a7a7-0175-1000-a2e2-ec0324aa5806","parent":{"ref":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a7a7-0175-1000-9d2d-ceea6d08f338","parent":{"ref":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4a7a7-0175-1000-ac39-8ac01875ed79","parent":{"ref":"EID6ee4a597-0175-1000-84fe-3b3f0d084fff"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2e811611-8c12-4574-8278-6be70b004a42"},{"ref":"EID942e5eb0-d625-403c-ae4f-e02b28b557c4"},{"ref":"EID615b3e81-6bad-4119-903b-ad28c52cff96"}]},"parent":{"ref":"EID6ee4a597-0175-1000-92bf-0350df93cb0c"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:07:59Z","duration":412,"status":"PASSED"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:07:59Z","duration":528,"status":"PASSED"},{"id":"EID6ee4a7b1-0175-1000-140b-aa03803c6ae2","testStepResults":{"TestStepResult":[{"id":"EID6ee4a7b1-0175-1000-9804-9737a45f2b4a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4aa4e-0175-1000-059a-5458b2deae9b","parent":{"ref":"EID6ee4a7b1-0175-1000-9804-9737a45f2b4a"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4aa4e-0175-1000-6f64-2de77e458906","parent":{"ref":"EID6ee4a7b1-0175-1000-9804-9737a45f2b4a"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"},{"id":"EID6ee4aa4e-0175-1000-a211-c35e5b3cd130","parent":{"ref":"EID6ee4a7b1-0175-1000-9804-9737a45f2b4a"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:08:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf9d922d6-80c4-446a-b2e8-01fca6cecfbb"},{"ref":"EID90fc384c-205f-4f08-91a3-46a021604e38"},{"ref":"EIDe71418d7-dc12-412e-93ef-e3ca0c1bf903"}]},"parent":{"ref":"EID6ee4a7b1-0175-1000-140b-aa03803c6ae2"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:08:00Z","duration":609,"status":"PASSED"},{"id":"EID6ee4aa4e-0175-1000-961e-081705d742d3","attachments":{"attachment":{"ref":"EID13787f88-99b2-4a85-bdf6-64d265f56bfe"}},"parent":{"ref":"EID6ee4a7b1-0175-1000-140b-aa03803c6ae2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f3779bf4-fde8-4992-8d34-445f10f7ac23.json"},"startTimestamp":"2020-10-28T11:08:00Z","duration":1,"status":"PASSED"},{"id":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4b38e-0175-1000-e2df-efb9ec5d22b3","parent":{"ref":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62"},"resultedFrom":{"ref":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b38e-0175-1000-937e-06def63a1bc5","parent":{"ref":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62"},"resultedFrom":{"ref":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0"},"startTimestamp":"2020-10-28T11:08:03Z","duration":1,"status":"PASSED"},{"id":"EID6ee4b38f-0175-1000-5915-1c792ca31a0a","parent":{"ref":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62"},"resultedFrom":{"ref":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b38f-0175-1000-dbfb-90f36f170fea","parent":{"ref":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62"},"resultedFrom":{"ref":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b38f-0175-1000-f90b-ce0b91126f5d","parent":{"ref":"EID6ee4aa60-0175-1000-af2f-6adb4f387a62"},"resultedFrom":{"ref":"EID568e315d-81c7-426d-8e06-d90ada499d9c"},"startTimestamp":"2020-10-28T11:08:03Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1e8f81a5-7058-4146-a472-24ee53124599"},{"ref":"EIDac3b0ed6-bea1-495e-beb9-f09919d678c2"},{"ref":"EID76ca736e-4458-416d-ad79-3054f5cb4341"}]},"parent":{"ref":"EID6ee4a7b1-0175-1000-140b-aa03803c6ae2"},"resultedFrom":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"startTimestamp":"2020-10-28T11:08:00Z","duration":2167,"status":"PASSED"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:08:00Z","duration":3038,"status":"PASSED"},{"id":"EID6ee4b38f-0175-1000-030c-d491901807c0","testStepResults":{"TestStepResult":[{"id":"EID6ee4b38f-0175-1000-1929-b7cc4c1a845c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4b865-0175-1000-7ab1-56d7932e6a37","parent":{"ref":"EID6ee4b38f-0175-1000-1929-b7cc4c1a845c"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:08:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b865-0175-1000-0fc3-1185dd517821","parent":{"ref":"EID6ee4b38f-0175-1000-1929-b7cc4c1a845c"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:08:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b865-0175-1000-1be1-8578002d8a25","parent":{"ref":"EID6ee4b38f-0175-1000-1929-b7cc4c1a845c"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:08:04Z","duration":0,"status":"PASSED"},{"id":"EID6ee4b865-0175-1000-ba11-6190e48629ba","parent":{"ref":"EID6ee4b38f-0175-1000-1929-b7cc4c1a845c"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:08:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8cea9710-2f83-421c-ae64-e628ccce0e00"},{"ref":"EID430b4775-b1e1-4643-b63b-450a1669fe9f"},{"ref":"EID1041f349-2ff7-4003-8e65-15037d531c77"}]},"parent":{"ref":"EID6ee4b38f-0175-1000-030c-d491901807c0"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:08:03Z","duration":1141,"status":"PASSED"},{"id":"EID6ee4b865-0175-1000-fd2c-60f2b4c6d66d","attachments":{"attachment":{"ref":"EIDe8811e51-b18b-4f0e-9c26-75b3e92735ce"}},"parent":{"ref":"EID6ee4b38f-0175-1000-030c-d491901807c0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/8ee30acb-5c8a-4205-8874-55ba86bf8a9c.json"},"startTimestamp":"2020-10-28T11:08:04Z","duration":1,"status":"PASSED"},{"id":"EID6ee4b871-0175-1000-0f04-54219f915ee4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bb31-0175-1000-a249-16060456685d","parent":{"ref":"EID6ee4b871-0175-1000-0f04-54219f915ee4"},"resultedFrom":{"ref":"EIDf99befdc-93e5-4089-8926-af36a5a35494"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bb31-0175-1000-6d78-33dda84c1319","parent":{"ref":"EID6ee4b871-0175-1000-0f04-54219f915ee4"},"resultedFrom":{"ref":"EIDe3345203-a8f6-4db5-bf12-814533a4625d"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdb36a62c-271d-48ef-98b3-cbb7acb2f948"},{"ref":"EID494bcb30-ce1b-4fb6-9446-2f84c738a408"}]},"parent":{"ref":"EID6ee4b38f-0175-1000-030c-d491901807c0"},"resultedFrom":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"startTimestamp":"2020-10-28T11:08:04Z","duration":699,"status":"PASSED"},{"id":"EID6ee4bb32-0175-1000-78a4-3a62b27f9458","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4bd14-0175-1000-8a02-d7b069ed32cd","parent":{"ref":"EID6ee4bb32-0175-1000-78a4-3a62b27f9458"},"resultedFrom":{"ref":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd14-0175-1000-a137-a0a3c96f60b4","parent":{"ref":"EID6ee4bb32-0175-1000-78a4-3a62b27f9458"},"resultedFrom":{"ref":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd14-0175-1000-b241-19db807146f3","parent":{"ref":"EID6ee4bb32-0175-1000-78a4-3a62b27f9458"},"resultedFrom":{"ref":"EID1a1bd393-4cdd-4204-aa58-445458503c79"},"startTimestamp":"2020-10-28T11:08:05Z","duration":0,"status":"PASSED"},{"id":"EID6ee4bd14-0175-1000-4976-f77be99506e5","messages":{"message":{"ref":"TR.manual.checkLengthOfDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6ee4bb32-0175-1000-78a4-3a62b27f9458"},"resultedFrom":{"ref":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb"},"startTimestamp":"2020-10-28T11:08:05Z","duration":1,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID5c15afaf-2cc9-482d-a9eb-a15006da0eb7"},{"ref":"EID10fb6724-4d95-4ce2-a47d-461c14185cd3"},{"ref":"EID2648163b-de13-459c-af6f-db88eb551435"}]},"parent":{"ref":"EID6ee4b38f-0175-1000-030c-d491901807c0"},"resultedFrom":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"startTimestamp":"2020-10-28T11:08:05Z","duration":391,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:08:03Z","duration":2438,"status":"PASSED_MANUAL"},{"id":"EID6ee4bd15-0175-1000-c79c-2c545dd2d4c5","testStepResults":{"TestStepResult":{"id":"EID6ee4bd1d-0175-1000-eb0a-a82efafee2da","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4c0e9-0175-1000-ab1f-5e49c00275c5","parent":{"ref":"EID6ee4bd1d-0175-1000-eb0a-a82efafee2da"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c0e9-0175-1000-07b5-a843128c74a7","parent":{"ref":"EID6ee4bd1d-0175-1000-eb0a-a82efafee2da"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c0e9-0175-1000-7c6c-270593f9ebfe","parent":{"ref":"EID6ee4bd1d-0175-1000-eb0a-a82efafee2da"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:08:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa260605d-ba5b-4fbd-aef0-61126c3d8459"},{"ref":"EID037aed1a-5580-442d-bffd-9140e912ee42"},{"ref":"EID0d5a5778-7069-4b6e-a4ac-89ffa8c366a0"}]},"parent":{"ref":"EID6ee4bd15-0175-1000-c79c-2c545dd2d4c5"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:08:05Z","duration":895,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:08:05Z","duration":980,"status":"PASSED"},{"id":"EID6ee4c0e9-0175-1000-a35a-3276bd0c5863","testStepResults":{"TestStepResult":{"id":"EID6ee4c0e9-0175-1000-c063-89f83635b68f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4c66b-0175-1000-54dc-9af3b2675853","parent":{"ref":"EID6ee4c0e9-0175-1000-c063-89f83635b68f"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c66b-0175-1000-4df9-280fbb94ea69","parent":{"ref":"EID6ee4c0e9-0175-1000-c063-89f83635b68f"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"},{"id":"EID6ee4c66b-0175-1000-36e2-b2c19167fd47","parent":{"ref":"EID6ee4c0e9-0175-1000-c063-89f83635b68f"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:08:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDdd20567e-ebbd-449c-aa49-e077188bf521"},{"ref":"EIDffab7ac9-491c-4b09-9065-45a89dc5c826"},{"ref":"EIDc2546438-5271-4557-a6bd-906247fdfb55"}]},"parent":{"ref":"EID6ee4c0e9-0175-1000-a35a-3276bd0c5863"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:08:06Z","duration":1319,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:08:06Z","duration":1410,"status":"PASSED"},{"id":"EID6ee4c66b-0175-1000-6215-924d37575357","testStepResults":{"TestStepResult":{"id":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4cb40-0175-1000-ebb2-b19437ee213e","parent":{"ref":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cb40-0175-1000-fdd1-c4474fe54862","parent":{"ref":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cb40-0175-1000-88b6-57c1e4d3a5a6","parent":{"ref":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cb40-0175-1000-7c00-f500057343f7","parent":{"ref":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cb40-0175-1000-a7bc-4e03f7e2e578","parent":{"ref":"EID6ee4c66b-0175-1000-ee61-6e7cb3c04144"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:08:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0d9bbd97-97c5-41db-a1a3-2fcc3564e024"},{"ref":"EIDb5598766-e024-4fb5-a6cc-489270fb02a7"},{"ref":"EID6623ea56-b99e-427d-82fa-95cdc107e36b"}]},"parent":{"ref":"EID6ee4c66b-0175-1000-6215-924d37575357"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:08:08Z","duration":1009,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:08:08Z","duration":1237,"status":"PASSED"},{"id":"EID6ee4cb41-0175-1000-43ff-b4b40749e3f5","testStepResults":{"TestStepResult":{"id":"EID6ee4cb41-0175-1000-4442-7464f4f00309","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4cf07-0175-1000-c3f6-e6556eb3fa90","parent":{"ref":"EID6ee4cb41-0175-1000-4442-7464f4f00309"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf07-0175-1000-febe-c6a87eeec456","parent":{"ref":"EID6ee4cb41-0175-1000-4442-7464f4f00309"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"},{"id":"EID6ee4cf07-0175-1000-99df-dea8d2f33623","parent":{"ref":"EID6ee4cb41-0175-1000-4442-7464f4f00309"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:08:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDca4313f2-b038-45b8-be53-8ff91d6588e7"},{"ref":"EID324a59df-5949-43a8-81bd-982cf26a1c8a"},{"ref":"EID4f23d06d-172e-4da7-b914-0c861d9ff901"}]},"parent":{"ref":"EID6ee4cb41-0175-1000-43ff-b4b40749e3f5"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:08:09Z","duration":875,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:08:09Z","duration":977,"status":"PASSED"},{"id":"EID6ee4cf13-0175-1000-4250-5a56fb04b991","testStepResults":{"TestStepResult":{"id":"EID6ee4cf13-0175-1000-4a89-628522b31554","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4d526-0175-1000-6b39-aa1b1bb8c7dc","parent":{"ref":"EID6ee4cf13-0175-1000-4a89-628522b31554"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:08:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee4d526-0175-1000-2031-d43b6f747975","parent":{"ref":"EID6ee4cf13-0175-1000-4a89-628522b31554"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:08:11Z","duration":0,"status":"PASSED"},{"id":"EID6ee4d526-0175-1000-b563-c24db94a1c53","parent":{"ref":"EID6ee4cf13-0175-1000-4a89-628522b31554"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:08:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb84faefd-a40a-4d7b-8041-758de273b5c3"},{"ref":"EID9d492444-1c74-4c89-86f3-b689b395d01a"},{"ref":"EID182bbb9e-0bef-4e74-8f0b-854b25f3786a"}]},"parent":{"ref":"EID6ee4cf13-0175-1000-4250-5a56fb04b991"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:08:10Z","duration":1396,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:08:10Z","duration":1555,"status":"PASSED"},{"id":"EID6ee4d526-0175-1000-e592-445000357b2d","testStepResults":{"TestStepResult":{"id":"EID6ee4d526-0175-1000-360f-22ce1454cb50","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4d766-0175-1000-f7bd-59719eaf6557","parent":{"ref":"EID6ee4d526-0175-1000-360f-22ce1454cb50"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:08:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee4d767-0175-1000-70d0-6a14558a9fe9","parent":{"ref":"EID6ee4d526-0175-1000-360f-22ce1454cb50"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:08:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee4d767-0175-1000-77f0-43a7d3befa29","parent":{"ref":"EID6ee4d526-0175-1000-360f-22ce1454cb50"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:08:12Z","duration":0,"status":"PASSED"},{"id":"EID6ee4d767-0175-1000-b344-1d83a4aadfbd","parent":{"ref":"EID6ee4d526-0175-1000-360f-22ce1454cb50"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:08:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa4425263-0c38-4195-8963-303b2342f80b"},{"ref":"EIDd7688a2a-e5c0-4003-b731-e3c0cc07aab5"},{"ref":"EIDc87cf491-ac54-4306-9aec-51f9cbd0fb00"}]},"parent":{"ref":"EID6ee4d526-0175-1000-e592-445000357b2d"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:08:11Z","duration":452,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:08:11Z","duration":577,"status":"PASSED"},{"id":"EID6ee4d767-0175-1000-1da3-2ecb3a296699","testStepResults":{"TestStepResult":{"id":"EID6ee4d767-0175-1000-5dc6-2306624c06f0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4da61-0175-1000-dc09-e834653287fb","parent":{"ref":"EID6ee4d767-0175-1000-5dc6-2306624c06f0"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-7f2e-bfd407b6c073","parent":{"ref":"EID6ee4d767-0175-1000-5dc6-2306624c06f0"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-c40c-abb6289f67ee","parent":{"ref":"EID6ee4d767-0175-1000-5dc6-2306624c06f0"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-a760-30948e419e88","parent":{"ref":"EID6ee4d767-0175-1000-5dc6-2306624c06f0"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID94eccf97-2cab-4705-bb63-97e609ed7d57"},{"ref":"EID41465cd9-3245-47ad-8d1a-97390e5aa0b6"},{"ref":"EID4abe1343-3f15-4ee1-ae38-0b760dc029ce"}]},"parent":{"ref":"EID6ee4d767-0175-1000-1da3-2ecb3a296699"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:08:12Z","duration":663,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:08:12Z","duration":762,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279","testStepResults":{"TestStepResult":[{"id":"EID6ee4da61-0175-1000-dd8d-2eab68915785","parent":{"ref":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:08:13Z","duration":0,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-a644-29194a1a2a70","parent":{"ref":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:08:13Z","duration":1879,"status":"PASSED"},{"id":"EID6ee4da61-0175-1000-1cd1-f6c874198ad7","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4ddd6-0175-1000-57cf-ad054787e01c","parent":{"ref":"EID6ee4da61-0175-1000-1cd1-f6c874198ad7"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ddd6-0175-1000-513e-a4c684765249","parent":{"ref":"EID6ee4da61-0175-1000-1cd1-f6c874198ad7"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ddd6-0175-1000-ee80-3bcad4052e1a","parent":{"ref":"EID6ee4da61-0175-1000-1cd1-f6c874198ad7"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ddd6-0175-1000-520a-f8b974f72386","parent":{"ref":"EID6ee4da61-0175-1000-1cd1-f6c874198ad7"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:08:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8dfb462c-a46e-4fc3-b162-1a6fd9a90c01"},{"ref":"EID0e21579a-6b9c-42d0-987d-bf1ed02cb6f9"},{"ref":"EIDbaaa85b1-1f4e-4709-bec9-b5d7ad23ac8f"}]},"parent":{"ref":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:08:13Z","duration":803,"status":"PASSED"},{"id":"EID6ee4ddd6-0175-1000-1a8b-d19b82838083","attachments":{"attachment":{"ref":"EID3e57763c-a5e3-4e35-a645-d2ed10992c11"}},"parent":{"ref":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:08:14Z","duration":1,"status":"PASSED"},{"id":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4ee05-0175-1000-02eb-bf19850a2a4d","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-f86c-2713c02c6042","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-27c6-39097cb44cf0","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-3f93-b5f2c7d1e39c","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-f6b4-af458eb3164c","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-c268-7e9aab04553c","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-1ba4-1ef73d9b78c9","parent":{"ref":"EID6ee4dde1-0175-1000-e098-d93cfb37c5dc"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5f9d7396-ae11-415d-898a-9f1f1d6b18fc"},{"ref":"EID563db6cf-d9ab-406b-bff0-d9985ca350d6"},{"ref":"EIDdde6d7cf-c54d-4c05-8f63-9a3aeabddb64"}]},"parent":{"ref":"EID6ee4da61-0175-1000-ffcc-4bcd940a1279"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:08:14Z","duration":4003,"status":"PASSED"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:08:13Z","duration":5028,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-4645-5e271f10bdac","testStepResults":{"TestStepResult":[{"id":"EID6ee4ee05-0175-1000-6b2b-d4031114c1bf","parent":{"ref":"EID6ee4ee05-0175-1000-4645-5e271f10bdac"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ee05-0175-1000-e62a-f6a443b0bfaa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4ef03-0175-1000-d00a-4dc3d76fb218","parent":{"ref":"EID6ee4ee05-0175-1000-e62a-f6a443b0bfaa"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ef03-0175-1000-af68-84e5fe7a1b73","parent":{"ref":"EID6ee4ee05-0175-1000-e62a-f6a443b0bfaa"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ef03-0175-1000-643f-3afa8b03fd34","parent":{"ref":"EID6ee4ee05-0175-1000-e62a-f6a443b0bfaa"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4ef03-0175-1000-fc9b-bf989aaca244","parent":{"ref":"EID6ee4ee05-0175-1000-e62a-f6a443b0bfaa"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID97c6efdd-e059-4e8f-a5c4-4ea81f53f316"},{"ref":"EIDd3f4f986-2e13-4e1d-844b-3a3e906b2b2f"},{"ref":"EID40354908-8cb2-425d-8e5a-89bd16bd0c91"}]},"parent":{"ref":"EID6ee4ee05-0175-1000-4645-5e271f10bdac"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:08:18Z","duration":143,"status":"PASSED"},{"id":"EID6ee4ef03-0175-1000-7a34-c1040aac520c","invokedTests":{"":null,"TestStepResult":[{"id":"EID6ee4ef1e-0175-1000-f849-27522ddf7344","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f007-0175-1000-d8cd-5c75114273ed","parent":{"ref":"EID6ee4ef1e-0175-1000-f849-27522ddf7344"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f007-0175-1000-8afe-5fc81dd78821","parent":{"ref":"EID6ee4ef1e-0175-1000-f849-27522ddf7344"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f007-0175-1000-7078-ab869f77bd73","parent":{"ref":"EID6ee4ef1e-0175-1000-f849-27522ddf7344"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:18Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID54d343cd-655a-4545-adfb-efe8239353d6"},{"ref":"EIDc1c2c142-75fc-4d1d-b94e-77f4ccce82fe"},{"ref":"EID7238afa9-5ab0-4ce2-bc6a-56d73755feaf"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:18Z","duration":153,"status":"PASSED"},{"id":"EID6ee4f009-0175-1000-3f15-0a20ee792523","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f0d8-0175-1000-8f00-a157f14e8c81","parent":{"ref":"EID6ee4f009-0175-1000-3f15-0a20ee792523"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f0d8-0175-1000-3ab2-b097f04d6800","parent":{"ref":"EID6ee4f009-0175-1000-3f15-0a20ee792523"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f0d8-0175-1000-5cd4-b673d11d947c","parent":{"ref":"EID6ee4f009-0175-1000-3f15-0a20ee792523"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDbcb83f5a-41af-45d5-be4f-e7442c36577a"},{"ref":"EID86dceaeb-5c69-4cc6-94ba-cb916894c7d1"},{"ref":"EIDb6245743-67dd-4c50-8b1a-b0443c782ad8"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:18Z","duration":148,"status":"PASSED"},{"id":"EID6ee4f0da-0175-1000-10d1-a62c2dcc8866","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f1a4-0175-1000-adc3-8bee57059ff5","parent":{"ref":"EID6ee4f0da-0175-1000-10d1-a62c2dcc8866"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f1a4-0175-1000-3cc4-20480363b9ca","parent":{"ref":"EID6ee4f0da-0175-1000-10d1-a62c2dcc8866"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f1a4-0175-1000-4060-65350de21aa8","parent":{"ref":"EID6ee4f0da-0175-1000-10d1-a62c2dcc8866"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID22d07966-ca96-416f-af15-4e1ead9d171e"},{"ref":"EID40ea6995-1ec3-4aa5-9254-b7d93e2bf777"},{"ref":"EID6dc1c060-bcb7-4429-bfb9-5606a3f6179a"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:08:19Z","duration":148,"status":"PASSED"}]},"parent":{"ref":"EID6ee4ee05-0175-1000-4645-5e271f10bdac"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:08:18Z","duration":674,"status":"PASSED"},{"id":"EID6ee4f1b3-0175-1000-17e7-139609ed5e1d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f342-0175-1000-f2d9-8249af975299","parent":{"ref":"EID6ee4f1b3-0175-1000-17e7-139609ed5e1d"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f342-0175-1000-8b5e-d1769625f1c7","parent":{"ref":"EID6ee4f1b3-0175-1000-17e7-139609ed5e1d"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f342-0175-1000-a5b0-17fbcd261d76","parent":{"ref":"EID6ee4f1b3-0175-1000-17e7-139609ed5e1d"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f342-0175-1000-9da3-206bf2ab7518","parent":{"ref":"EID6ee4f1b3-0175-1000-17e7-139609ed5e1d"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:08:19Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc22512f5-b684-4382-8a75-404be1a39eec"},{"ref":"EID5d392af2-e704-46b8-acde-d204d2736634"},{"ref":"EID15169a02-821d-4ef3-80f8-f2917e6f0b1f"}]},"parent":{"ref":"EID6ee4ee05-0175-1000-4645-5e271f10bdac"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:08:19Z","duration":332,"status":"PASSED"}]},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:08:18Z","duration":1341,"status":"PASSED"},{"id":"EID6ee4f343-0175-1000-9eef-f2ffa7f74dc4","testStepResults":{"TestStepResult":{"id":"EID6ee4f343-0175-1000-01a5-ca5043405176","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f66c-0175-1000-891e-d826e9c7954d","parent":{"ref":"EID6ee4f343-0175-1000-01a5-ca5043405176"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f66c-0175-1000-48f8-34f686b8e299","parent":{"ref":"EID6ee4f343-0175-1000-01a5-ca5043405176"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f66c-0175-1000-2a49-6ba2e6bf54eb","parent":{"ref":"EID6ee4f343-0175-1000-01a5-ca5043405176"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f66c-0175-1000-50ef-1cc88142df94","parent":{"ref":"EID6ee4f343-0175-1000-01a5-ca5043405176"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID668945ce-3869-40be-a1ad-6a8aee22b60f"},{"ref":"EID437b4df3-dc12-4138-b32e-3422bbd7efd4"},{"ref":"EIDc92a1c07-d554-4f83-bb37-21c7a4f87762"}]},"parent":{"ref":"EID6ee4f343-0175-1000-9eef-f2ffa7f74dc4"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:08:19Z","duration":739,"status":"PASSED"}},"parent":{"ref":"EID6ee4a413-0175-1000-9add-a1518065cba3"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:08:19Z","duration":809,"status":"PASSED"}]},"parent":{"ref":"EID347853ac-4983-4b74-9f18-6901a926a90e"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:07:59Z","duration":21081,"status":"PASSED_MANUAL"},{"id":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a","testCaseResults":{"TestCaseResult":[{"id":"EID6ee4f66d-0175-1000-a1ae-e492b3cbd015","testStepResults":{"TestStepResult":[{"id":"EID6ee4f66d-0175-1000-9c48-1aaa5871112c","parent":{"ref":"EID6ee4f66d-0175-1000-a1ae-e492b3cbd015"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:08:20Z","duration":2070,"status":"PASSED"},{"id":"EID6ee4f66d-0175-1000-940c-8e9b930311eb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f856-0175-1000-a390-680776e70dcd","parent":{"ref":"EID6ee4f66d-0175-1000-940c-8e9b930311eb"},"resultedFrom":{"ref":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f856-0175-1000-6d5c-b2f73d3832c8","parent":{"ref":"EID6ee4f66d-0175-1000-940c-8e9b930311eb"},"resultedFrom":{"ref":"EID8c018d06-fce0-4029-9c58-62e544d85b07"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f856-0175-1000-8640-0902eabc6706","parent":{"ref":"EID6ee4f66d-0175-1000-940c-8e9b930311eb"},"resultedFrom":{"ref":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8"},"startTimestamp":"2020-10-28T11:08:20Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID80a493d9-c456-4f38-b5bb-b0117892939e"},{"ref":"EIDbef85258-8372-487a-874e-b72e5790d274"},{"ref":"EIDef7495a1-befd-4368-bb9d-77c8e9302bcb"}]},"parent":{"ref":"EID6ee4f66d-0175-1000-a1ae-e492b3cbd015"},"resultedFrom":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"startTimestamp":"2020-10-28T11:08:20Z","duration":436,"status":"PASSED"},{"id":"EID6ee4f856-0175-1000-680b-07169b1ea248","attachments":{"attachment":{"ref":"EIDd57b03d4-4624-4c21-a2b8-04b247a53fb3"}},"parent":{"ref":"EID6ee4f66d-0175-1000-a1ae-e492b3cbd015"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/ca77c4d7-4c4f-43b6-ba39-28644250d284.json"},"startTimestamp":"2020-10-28T11:08:20Z","duration":1,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:08:20Z","duration":501,"status":"PASSED"},{"id":"EID6ee4f862-0175-1000-f362-783480d77196","testStepResults":{"TestStepResult":[{"id":"EID6ee4f86a-0175-1000-9a6a-4aa7a08c0031","parent":{"ref":"EID6ee4f862-0175-1000-f362-783480d77196"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:08:20Z","duration":2070,"status":"PASSED"},{"id":"EID6ee4f86b-0175-1000-1724-748d1a9dfede","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4f934-0175-1000-b3d5-ad9c47d68afc","parent":{"ref":"EID6ee4f86b-0175-1000-1724-748d1a9dfede"},"resultedFrom":{"ref":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f934-0175-1000-d303-a787b981d90c","parent":{"ref":"EID6ee4f86b-0175-1000-1724-748d1a9dfede"},"resultedFrom":{"ref":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f934-0175-1000-c83a-0382a8cd7294","parent":{"ref":"EID6ee4f86b-0175-1000-1724-748d1a9dfede"},"resultedFrom":{"ref":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f934-0175-1000-e495-fa9f77965d7c","parent":{"ref":"EID6ee4f86b-0175-1000-1724-748d1a9dfede"},"resultedFrom":{"ref":"EID0ca5302c-48aa-4097-912f-266ed6f51e05"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID27cef1b6-c2e8-48ba-8a81-0260c6383090"},{"ref":"EID79e44328-73ff-409f-a07e-909581e3be80"},{"ref":"EIDb5459190-db16-42af-931a-2d68b0c63328"}]},"parent":{"ref":"EID6ee4f862-0175-1000-f362-783480d77196"},"resultedFrom":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"startTimestamp":"2020-10-28T11:08:20Z","duration":118,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:08:20Z","duration":210,"status":"PASSED"},{"id":"EID6ee4f934-0175-1000-9cae-581efb9d135d","testStepResults":{"TestStepResult":[{"id":"EID6ee4f934-0175-1000-0d6c-4fff92fad95a","parent":{"ref":"EID6ee4f934-0175-1000-9cae-581efb9d135d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":2071,"status":"PASSED"},{"id":"EID6ee4f935-0175-1000-b228-b9377c8d5d77","parent":{"ref":"EID6ee4f934-0175-1000-9cae-581efb9d135d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/005c256d-3874-4590-b962-a215634d34ea.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4f935-0175-1000-469b-927ed07b8c8b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fa06-0175-1000-4ed5-49aa8fa8ec43","parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EIDc839657a-0d7c-49d9-8665-ee32690350db"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-33b2-50cf438576cd","parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-0062-f1c7873f9225","parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-c290-57ec0ca7531c","parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-12fa-40dd661f5c8b","parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-42f9-00da8e9c6557","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}}},"parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EID793e1bf6-1c47-4819-b552-1be93e488ee8"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"FAILED"},{"id":"EID6ee4fa06-0175-1000-a6c8-540e7a8b542e","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee4f935-0175-1000-469b-927ed07b8c8b"},"resultedFrom":{"ref":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID27428e96-9a25-4b73-bff4-5aeb19ff2e73"},{"ref":"EID69b18641-bf8f-4cff-a36b-f7235a265e5c"},{"ref":"EID7b0634de-1fef-4bde-bc10-6d3d42cf4e66"}]},"parent":{"ref":"EID6ee4f934-0175-1000-9cae-581efb9d135d"},"resultedFrom":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"startTimestamp":"2020-10-28T11:08:21Z","duration":103,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:08:21Z","duration":210,"status":"FAILED"},{"id":"EID6ee4fa06-0175-1000-4910-25948a83fe23","testStepResults":{"TestStepResult":[{"id":"EID6ee4fa06-0175-1000-e250-d666e1a77d97","parent":{"ref":"EID6ee4fa06-0175-1000-4910-25948a83fe23"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":2070,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-9c7c-f14040b2d90f","parent":{"ref":"EID6ee4fa06-0175-1000-4910-25948a83fe23"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0fe76109-9653-4fd6-b903-c78ee734dc9f.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fa06-0175-1000-0757-6e33c885dde5","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee4fab7-0175-1000-f9ec-ffa03ab9b8f9","parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fab7-0175-1000-4c62-2b8e807887cc","parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EIDab501b29-1391-4093-87bf-5a67b23a451b"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fab7-0175-1000-e965-7fcb870ee6af","parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EIDf244d763-7392-49c7-aedc-74703bd8dcca"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fab7-0175-1000-82db-cc396408f4e1","parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fab7-0175-1000-b877-4e23957e75d8","parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EIDa3d96fc4-8656-44a2-a219-261052291d3f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"PASSED"},{"id":"EID6ee4fab7-0175-1000-0af5-e8acc9352f14","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}},"parent":{"ref":"EID6ee4fa06-0175-1000-0757-6e33c885dde5"},"resultedFrom":{"ref":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f"},"startTimestamp":"2020-10-28T11:08:21Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID4c110ab1-8818-488a-b536-6e0165fb7090"},{"ref":"EID42abb5f6-5d1b-4b62-8e2d-24d506bbc6d6"},{"ref":"EID500c7f7a-829d-4810-9bf3-d4a418fca3e5"}]},"parent":{"ref":"EID6ee4fa06-0175-1000-4910-25948a83fe23"},"resultedFrom":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"startTimestamp":"2020-10-28T11:08:21Z","duration":76,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:08:21Z","duration":177,"status":"FAILED"},{"id":"EID6ee4fab8-0175-1000-4f46-3982575f7415","testStepResults":{"TestStepResult":[{"id":"EID6ee4fab8-0175-1000-ffd8-5e7248978e7c","parent":{"ref":"EID6ee4fab8-0175-1000-4f46-3982575f7415"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":2070,"status":"PASSED"},{"id":"EID6ee4fab8-0175-1000-19a2-e7aef5ca6662","messages":{"message":[{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]"}]}},{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"os:Query"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]"}]}}]},"attachments":{"attachment":[{"ref":"EID330a083c-28e5-4c68-af93-3994dfaca38a"},{"ref":"EID6f0e34ef-b447-4c14-93bc-36277690ab17"},{"ref":"EID867e0454-bdc4-490f-82dc-c384f92c4b69"},{"ref":"EID4cb2c8c3-9bd2-4e9e-9d61-939fae0622bd"},{"ref":"EIDa4330a04-81e1-4cdf-9048-185ac7b4a66c"},{"ref":"EIDad59f7dd-ec60-40de-be87-6b4a46029ee1"},{"ref":"EIDbf45b87b-ca34-4429-98dd-44709bf9c790"},{"ref":"EIDe46a2e1e-1ff8-4b17-8472-6d55bce24aba"},{"ref":"EID93074276-e768-40f1-a839-38ee4e01f87b"},{"ref":"EIDcd77b131-5b7c-45a4-8a19-93e12d2c4dc0"},{"ref":"EID9819e81e-5a26-451c-9d72-4c0904ba3bfc"},{"ref":"EID5f7039d8-ff4f-41a7-a092-d02f58974eac"},{"ref":"EID63406678-028a-46e3-81f8-78cc1a325d83"},{"ref":"EID3d8bd7ba-5bb7-446c-a9c7-7e08ff0b33c8"},{"ref":"EID8dc6576f-c91e-43c4-9ec3-90f44407aa60"}]},"parent":{"ref":"EID6ee4fab8-0175-1000-4f46-3982575f7415"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/b7539b87-0287-452d-a49a-e1c7c342eb8d.json"},"startTimestamp":"2020-10-28T11:08:21Z","duration":1513,"status":"SKIPPED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:08:21Z","duration":1821,"status":"SKIPPED"},{"id":"EID6ee501d5-0175-1000-11ac-8baff0260f5a","testStepResults":{"TestStepResult":[{"id":"EID6ee501d5-0175-1000-4d7a-0d172cefb8c2","parent":{"ref":"EID6ee501d5-0175-1000-11ac-8baff0260f5a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:08:23Z","duration":2071,"status":"PASSED"},{"id":"EID6ee501d6-0175-1000-34e8-300647828457","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50270-0175-1000-1cd2-ebbfdc73041b","parent":{"ref":"EID6ee501d6-0175-1000-34e8-300647828457"},"resultedFrom":{"ref":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50270-0175-1000-4025-06999ba52910","parent":{"ref":"EID6ee501d6-0175-1000-34e8-300647828457"},"resultedFrom":{"ref":"EIDde93e839-9029-4c1b-a47b-950437792241"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50270-0175-1000-b6c2-4d787b9a4e5e","parent":{"ref":"EID6ee501d6-0175-1000-34e8-300647828457"},"resultedFrom":{"ref":"EID2efd175c-e24e-4924-9bdd-13237591a99f"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50270-0175-1000-310f-6d70dc3f58d4","messages":{"message":{"ref":"TR.incorrectFeedSelfReference","translationArguments":{"argument":[{"token":"actual","$":"https://www.nationaalgeoregister.nl/geonetwork/opensearch/dut/d2a05dd5-98e8-4f9c-8ba2-7fe2d5c7c507/OpenSearchDescription.xml"},{"token":"element","$":"/os:OpenSearchDescription/os:Url"},{"token":"expected","$":"https://www.nationaalgeoregister.nl:443/geonetwork/opensearch/dut/d2a05dd5-98e8-4f9c-8ba2-7fe2d5c7c507/OpenSearchDescription.xml"},{"token":"xpath","$":"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template"}]}}},"parent":{"ref":"EID6ee501d6-0175-1000-34e8-300647828457"},"resultedFrom":{"ref":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDb77757bb-23b6-4beb-bffb-6d505304f3d3"},{"ref":"EIDa949a581-9414-4f57-968f-0c04ccb4c264"},{"ref":"EID0d44b903-bbca-4f30-ab9c-a2a4d224a611"}]},"parent":{"ref":"EID6ee501d5-0175-1000-11ac-8baff0260f5a"},"resultedFrom":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"startTimestamp":"2020-10-28T11:08:23Z","duration":80,"status":"FAILED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:08:23Z","duration":155,"status":"FAILED"},{"id":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea","testStepResults":{"TestStepResult":[{"id":"EID6ee50270-0175-1000-1ec7-adff76cc6dab","parent":{"ref":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:08:23Z","duration":2070,"status":"PASSED"},{"id":"EID6ee50271-0175-1000-7dd3-84425addd132","parent":{"ref":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a0d3ba8-34c6-44b5-881b-e352ea3d6db6.json"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50271-0175-1000-b1b6-bb0156230b9a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee5030a-0175-1000-31df-ed3eefc2b79c","parent":{"ref":"EID6ee50271-0175-1000-b1b6-bb0156230b9a"},"resultedFrom":{"ref":"EID8cb55602-5705-4d92-8d35-08732f19ae81"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee5030a-0175-1000-3790-778b51b95c26","parent":{"ref":"EID6ee50271-0175-1000-b1b6-bb0156230b9a"},"resultedFrom":{"ref":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee5030a-0175-1000-76ba-144915b510ac","parent":{"ref":"EID6ee50271-0175-1000-b1b6-bb0156230b9a"},"resultedFrom":{"ref":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee5030a-0175-1000-534a-db5c79f2fe15","parent":{"ref":"EID6ee50271-0175-1000-b1b6-bb0156230b9a"},"resultedFrom":{"ref":"EID6135b42e-8137-40d5-902b-5ff839d143e2"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6aab1ddd-3b49-4b35-b039-1ea9e73ac3c4"},{"ref":"EIDd2bb1b63-de6b-4a91-ac32-dc38afef1027"},{"ref":"EID82a4190a-b49c-4b18-9084-9d00bb1055e7"}]},"parent":{"ref":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea"},"resultedFrom":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"startTimestamp":"2020-10-28T11:08:23Z","duration":76,"status":"PASSED"},{"id":"EID6ee5030b-0175-1000-1681-a4f19ede5461","attachments":{"attachment":{"ref":"EID5b9b532e-d96a-453f-923f-ca6548e2912c"}},"parent":{"ref":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/198ca8bf-9df4-4d1f-bc79-4908339a53d6.json"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee5031a-0175-1000-ad72-887966f7ad7b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6ee50328-0175-1000-c240-ac127e14cfdf","parent":{"ref":"EID6ee5031a-0175-1000-ad72-887966f7ad7b"},"resultedFrom":{"ref":"EID69821145-bef3-41af-adfe-226eaf86cd9a"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50328-0175-1000-8eba-a5f7d9fde7f4","parent":{"ref":"EID6ee5031a-0175-1000-ad72-887966f7ad7b"},"resultedFrom":{"ref":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"},{"id":"EID6ee50328-0175-1000-34f8-a0b64263ad4d","parent":{"ref":"EID6ee5031a-0175-1000-ad72-887966f7ad7b"},"resultedFrom":{"ref":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfa795855-28e2-4254-b6c7-465ac5c50c05"},{"ref":"EIDc823209c-170a-4345-88e0-35b0f81bdfe9"}]},"parent":{"ref":"EID6ee50270-0175-1000-af56-6d4e1b6ea8ea"},"resultedFrom":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"startTimestamp":"2020-10-28T11:08:23Z","duration":0,"status":"PASSED"}]},"parent":{"ref":"EID6ee4f66c-0175-1000-9474-7fb4b056d72a"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:08:23Z","duration":184,"status":"PASSED"}]},"parent":{"ref":"EID347853ac-4983-4b74-9f18-6901a926a90e"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:08:20Z","duration":3260,"status":"FAILED"}]},"attachments":{"Attachment":[{"type":"ServiceResponse","id":"EID437b4df3-dc12-4138-b32e-3422bbd7efd4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID437b4df3-dc12-4138-b32e-3422bbd7efd4"}},{"type":"ServiceResponse","id":"EIDa5fe3713-103c-4ed5-8020-9aacb7dcbdbb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa5fe3713-103c-4ed5-8020-9aacb7dcbdbb"}},{"type":"ServiceEndpoint","id":"EIDf3b9ae17-9484-4902-b318-b0bf34254c32","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID7aa93405-ea66-47f6-b755-49ebfa77a3a7","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID7aa93405-ea66-47f6-b755-49ebfa77a3a7"}},{"type":"ServiceEndpoint","id":"EID4d02f589-dbfc-4d48-8dbc-3de30631aeb0","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDb5598766-e024-4fb5-a6cc-489270fb02a7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDb5598766-e024-4fb5-a6cc-489270fb02a7"}},{"type":"Message","id":"EID93074276-e768-40f1-a839-38ee4e01f87b","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID93074276-e768-40f1-a839-38ee4e01f87b"}},{"type":"ServiceEndpoint","id":"EID0e5655bf-9b0c-44a8-91c9-c371c1034c0f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDbef85258-8372-487a-874e-b72e5790d274","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDbef85258-8372-487a-874e-b72e5790d274"}},{"type":"ServiceResponse","id":"EID13096e9f-1a88-4bf4-b559-c20e4ace0f8b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID13096e9f-1a88-4bf4-b559-c20e4ace0f8b"}},{"type":"Message","id":"EID8b63e5d4-ec7e-4626-952b-772e9839723d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID8b63e5d4-ec7e-4626-952b-772e9839723d"}},{"type":"ServiceResponse","id":"EID324a59df-5949-43a8-81bd-982cf26a1c8a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID324a59df-5949-43a8-81bd-982cf26a1c8a"}},{"type":"ServiceEndpoint","id":"EID53a520cd-7670-41ba-a46c-fd6a5d0ce92e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L3htbC5tZXRhZGF0YS5nZXQ="},{"type":"Message","id":"EID07ed2d19-243d-4fa1-953c-a5fd547d4182","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID07ed2d19-243d-4fa1-953c-a5fd547d4182"}},{"type":"ServiceEndpoint","id":"EIDfa795855-28e2-4254-b6c7-465ac5c50c05","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EID0e21579a-6b9c-42d0-987d-bf1ed02cb6f9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID0e21579a-6b9c-42d0-987d-bf1ed02cb6f9"}},{"type":"Message","id":"EID5f7039d8-ff4f-41a7-a092-d02f58974eac","label":"Message.12","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID5f7039d8-ff4f-41a7-a092-d02f58974eac"}},{"type":"GetParameter","id":"EID58605533-79d3-480e-aca3-dba44c8c2880","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID86dceaeb-5c69-4cc6-94ba-cb916894c7d1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID86dceaeb-5c69-4cc6-94ba-cb916894c7d1"}},{"type":"ServiceEndpoint","id":"EIDf9d922d6-80c4-446a-b2e8-01fca6cecfbb","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID9d492444-1c74-4c89-86f3-b689b395d01a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID9d492444-1c74-4c89-86f3-b689b395d01a"}},{"type":"GetParameter","id":"EIDb6245743-67dd-4c50-8b1a-b0443c782ad8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EIDdd20567e-ebbd-449c-aa49-e077188bf521","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID6dc1c060-bcb7-4429-bfb9-5606a3f6179a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"Message","id":"EID0bc0f288-28fa-4745-b8c7-3fb51c7f0580","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID0bc0f288-28fa-4745-b8c7-3fb51c7f0580"}},{"type":"ServiceResponse","id":"EID4bc362e7-a1cf-465c-b189-37065fc4c0b2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID4bc362e7-a1cf-465c-b189-37065fc4c0b2"}},{"type":"ServiceEndpoint","id":"EID94eccf97-2cab-4705-bb63-97e609ed7d57","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID626e39cb-6452-4327-a0e3-cde2612cfaad","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID9399dfe5-7372-4f7c-bdd8-505f0a41654c","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID9399dfe5-7372-4f7c-bdd8-505f0a41654c"}},{"type":"ServiceEndpoint","id":"EIDdb36a62c-271d-48ef-98b3-cbb7acb2f948","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2Rvd25sb2Fkcy9pbnZhc2lldmUtZXhvdGVuLmdtbC56aXA="},{"type":"Message","id":"EID330a083c-28e5-4c68-af93-3994dfaca38a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID330a083c-28e5-4c68-af93-3994dfaca38a"}},{"type":"Message","id":"EIDa4330a04-81e1-4cdf-9048-185ac7b4a66c","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa4330a04-81e1-4cdf-9048-185ac7b4a66c"}},{"type":"Message","id":"EID572fc61b-5900-4d6d-b857-2ce3033cdb38","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID572fc61b-5900-4d6d-b857-2ce3033cdb38"}},{"type":"GetParameter","id":"EID1663fa50-1446-4366-abb6-b8a3bef8cf5e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDfb955980-804f-4231-b92a-13154bd0f5e7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDfb955980-804f-4231-b92a-13154bd0f5e7"}},{"type":"ServiceResponse","id":"EID5d5712fe-acca-49f5-bc98-423858647d4f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID5d5712fe-acca-49f5-bc98-423858647d4f"}},{"type":"ServiceResponse","id":"EIDe24b569c-aaec-43c8-a4eb-be7b5857706a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDe24b569c-aaec-43c8-a4eb-be7b5857706a"}},{"type":"ServiceResponse","id":"EID942e5eb0-d625-403c-ae4f-e02b28b557c4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID942e5eb0-d625-403c-ae4f-e02b28b557c4"}},{"type":"GetParameter","id":"EID07a4e164-eb16-4b39-ad45-77b2d94508b6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID4f2743fb-0259-4c2a-89df-f66d55c598dd","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID4f2743fb-0259-4c2a-89df-f66d55c598dd"}},{"type":"ServiceEndpoint","id":"EIDceb4e809-3d57-4dde-858b-5dbddfaa7046","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID2d6c83b7-4a0b-4349-9573-f184d431b7c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDdb51e304-52b5-42c6-8d8c-47d441e455f5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDdb51e304-52b5-42c6-8d8c-47d441e455f5"}},{"type":"ServiceResponse","id":"EID3fdc17b9-c226-4bfe-95ca-8c8281f8e488","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID3fdc17b9-c226-4bfe-95ca-8c8281f8e488"}},{"type":"ServiceEndpoint","id":"EIDa260605d-ba5b-4fbd-aef0-61126c3d8459","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID2648163b-de13-459c-af6f-db88eb551435","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID51ea04f4-6727-4a4c-9e2e-6a973b3e3af4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID615b3e81-6bad-4119-903b-ad28c52cff96","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EIDcfa78da4-b642-4dcb-89bb-3fb86f9f87e4","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDcfa78da4-b642-4dcb-89bb-3fb86f9f87e4"}},{"type":"ServiceEndpoint","id":"EID97d39176-ff15-41c3-913f-52061da4b048","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID06fa0f7d-8978-4148-bb5c-b44a9a5ecde0","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID06fa0f7d-8978-4148-bb5c-b44a9a5ecde0"}},{"type":"ServiceEndpoint","id":"EID5f9d7396-ae11-415d-898a-9f1f1d6b18fc","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID6623ea56-b99e-427d-82fa-95cdc107e36b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EIDe71418d7-dc12-412e-93ef-e3ca0c1bf903","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID22331341-7129-4274-84d8-2345eb8da251","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID22331341-7129-4274-84d8-2345eb8da251"}},{"type":"ServiceResponse","id":"EID10fb6724-4d95-4ce2-a47d-461c14185cd3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID10fb6724-4d95-4ce2-a47d-461c14185cd3"}},{"type":"ServiceEndpoint","id":"EID01ba5261-b195-4901-8d3b-a089c1c5b140","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID97c6efdd-e059-4e8f-a5c4-4ea81f53f316","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceEndpoint","id":"EID501ce127-b1c8-4d51-8280-5eaaf183e3a5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDd7688a2a-e5c0-4003-b731-e3c0cc07aab5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDd7688a2a-e5c0-4003-b731-e3c0cc07aab5"}},{"type":"ServiceResponse","id":"EIDecbe836e-003a-4b27-9ea5-2cc5eafd11ed","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDecbe836e-003a-4b27-9ea5-2cc5eafd11ed"}},{"type":"Message","id":"EID838bdaa1-bcc1-45a0-b0e5-131dc3ce807e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID838bdaa1-bcc1-45a0-b0e5-131dc3ce807e"}},{"type":"Message","id":"EID29787235-598e-48d2-98e8-73f94250dd12","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID29787235-598e-48d2-98e8-73f94250dd12"}},{"type":"GetParameter","id":"EIDbaaa85b1-1f4e-4709-bec9-b5d7ad23ac8f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDad59f7dd-ec60-40de-be87-6b4a46029ee1","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDad59f7dd-ec60-40de-be87-6b4a46029ee1"}},{"type":"ServiceResponse","id":"EID511ee24b-2b1b-4445-bd6a-f5a81eb1dae6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID511ee24b-2b1b-4445-bd6a-f5a81eb1dae6"}},{"type":"GetParameter","id":"EIDdf6d90e4-aacf-4096-8502-02647c20ee9a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID5b5c2a25-8416-4b0e-b6ba-3d62043e1fb2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID5b5c2a25-8416-4b0e-b6ba-3d62043e1fb2"}},{"type":"ServiceEndpoint","id":"EID05b3a480-7615-4e06-9b1c-010c85253d58","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDbefb56a6-78ff-429c-aa24-f9ed52a034cc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDbefb56a6-78ff-429c-aa24-f9ed52a034cc"}},{"type":"GetParameter","id":"EID40354908-8cb2-425d-8e5a-89bd16bd0c91","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID0d5a5778-7069-4b6e-a4ac-89ffa8c366a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID814ec22a-ef45-4acc-aaa2-d7d6cc2c097f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID814ec22a-ef45-4acc-aaa2-d7d6cc2c097f"}},{"type":"GetParameter","id":"EID76ca736e-4458-416d-ad79-3054f5cb4341","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EIDb29a8c98-8efe-46c5-b688-1dfba9d74041","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDb29a8c98-8efe-46c5-b688-1dfba9d74041"}},{"type":"GetParameter","id":"EIDa5ec6595-f243-49aa-8c8f-9743b60eb2bf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID22d07966-ca96-416f-af15-4e1ead9d171e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EIDef64922d-60b5-4ae7-92ff-c65738a923e6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID4cb2c8c3-9bd2-4e9e-9d61-939fae0622bd","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID4cb2c8c3-9bd2-4e9e-9d61-939fae0622bd"}},{"type":"GetParameter","id":"EID500c7f7a-829d-4810-9bf3-d4a418fca3e5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceResponse","id":"EIDac3b0ed6-bea1-495e-beb9-f09919d678c2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDac3b0ed6-bea1-495e-beb9-f09919d678c2"}},{"type":"ServiceEndpoint","id":"EIDff060314-98aa-4faa-bd14-3bb44604c4d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID8383f376-04e1-4ceb-9c75-ccc7d11b3797","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID8383f376-04e1-4ceb-9c75-ccc7d11b3797"}},{"type":"Message","id":"EID24583c9e-8018-493f-aa54-6e5dc9004efc","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID24583c9e-8018-493f-aa54-6e5dc9004efc"}},{"type":"ServiceResponse","id":"EID0dadf62d-a0cc-4b2a-b4df-a6a6860a50ec","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID0dadf62d-a0cc-4b2a-b4df-a6a6860a50ec"}},{"type":"GetParameter","id":"EIDc2546438-5271-4557-a6bd-906247fdfb55","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID69b18641-bf8f-4cff-a36b-f7235a265e5c","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID69b18641-bf8f-4cff-a36b-f7235a265e5c"}},{"type":"ServiceResponse","id":"EID42abb5f6-5d1b-4b62-8e2d-24d506bbc6d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID42abb5f6-5d1b-4b62-8e2d-24d506bbc6d6"}},{"type":"ServiceEndpoint","id":"EIDbcb83f5a-41af-45d5-be4f-e7442c36577a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceResponse","id":"EIDffab7ac9-491c-4b09-9065-45a89dc5c826","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDffab7ac9-491c-4b09-9065-45a89dc5c826"}},{"type":"ServiceResponse","id":"EIDd3f4f986-2e13-4e1d-844b-3a3e906b2b2f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDd3f4f986-2e13-4e1d-844b-3a3e906b2b2f"}},{"type":"Message","id":"EIDfe571bcb-eb6f-4863-900c-8077eab41daf","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDfe571bcb-eb6f-4863-900c-8077eab41daf"}},{"type":"Message","id":"EID3e57763c-a5e3-4e35-a645-d2ed10992c11","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID3e57763c-a5e3-4e35-a645-d2ed10992c11"}},{"type":"ServiceEndpoint","id":"EID6aab1ddd-3b49-4b35-b039-1ea9e73ac3c4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceEndpoint","id":"EIDb84faefd-a40a-4d7b-8041-758de273b5c3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID29d35745-47a3-489b-a712-1afb43ee2dfa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID3fe63367-a4be-4324-b35a-1877176b8d04","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDa90c6c69-1b4a-448b-9a2e-8cd9c48e192b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID04b10b2b-4058-481a-8d7e-c24809521205","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID50c5d428-a8d2-4020-8abb-fc02ff72214a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID41465cd9-3245-47ad-8d1a-97390e5aa0b6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID41465cd9-3245-47ad-8d1a-97390e5aa0b6"}},{"type":"Message","id":"EID9819e81e-5a26-451c-9d72-4c0904ba3bfc","label":"Message.11","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID9819e81e-5a26-451c-9d72-4c0904ba3bfc"}},{"type":"ServiceEndpoint","id":"EID7aec7130-e0cd-4dd9-a964-a118973d09bf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID27cef1b6-c2e8-48ba-8a81-0260c6383090","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EIDd57b03d4-4624-4c21-a2b8-04b247a53fb3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDd57b03d4-4624-4c21-a2b8-04b247a53fb3"}},{"type":"GetParameter","id":"EID2667cf6c-b0ca-4b6f-8813-93c1fa483567","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID595c09c6-9b73-4379-87f5-53368983e134","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID595c09c6-9b73-4379-87f5-53368983e134"}},{"type":"Message","id":"EID571e79de-5ddb-4546-aa1c-f73c43d3aa60","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID571e79de-5ddb-4546-aa1c-f73c43d3aa60"}},{"type":"GetParameter","id":"EIDc87cf491-ac54-4306-9aec-51f9cbd0fb00","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID8dfb462c-a46e-4fc3-b162-1a6fd9a90c01","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EIDa0639f77-8e13-4c99-b68d-fac404767182","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa0639f77-8e13-4c99-b68d-fac404767182"}},{"type":"Message","id":"EID3a9d2bad-e2cc-4272-b5cc-f3f8f64f1681","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID3a9d2bad-e2cc-4272-b5cc-f3f8f64f1681"}},{"type":"ServiceResponse","id":"EID430b4775-b1e1-4643-b63b-450a1669fe9f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID430b4775-b1e1-4643-b63b-450a1669fe9f"}},{"type":"ServiceEndpoint","id":"EIDd26a99c7-ce58-4102-b1fe-b39b549d698a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDb5459190-db16-42af-931a-2d68b0c63328","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceEndpoint","id":"EIDc22512f5-b684-4382-8a75-404be1a39eec","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID7b0634de-1fef-4bde-bc10-6d3d42cf4e66","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EIDf419399a-3640-4fbb-ada0-fc0b49c844b4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDf419399a-3640-4fbb-ada0-fc0b49c844b4"}},{"type":"GetParameter","id":"EID6b7d3905-0f38-4419-9e53-d7cfa56c2f3f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDa575e65e-33b7-4930-8b8e-97a4d2b55343","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa575e65e-33b7-4930-8b8e-97a4d2b55343"}},{"type":"GetParameter","id":"EID1041f349-2ff7-4003-8e65-15037d531c77","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID457638a7-5e5f-4a86-bffc-bedd7154f1c3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDe167fd10-2eac-4a83-b471-9c340be1940f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDe167fd10-2eac-4a83-b471-9c340be1940f"}},{"type":"ServiceResponse","id":"EID8d3befd1-fbf8-4173-baf5-d971f9cd68b1","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID8d3befd1-fbf8-4173-baf5-d971f9cd68b1"}},{"type":"GetParameter","id":"EID039e7201-3cae-44fd-92fb-d7b5652a4e14","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID63406678-028a-46e3-81f8-78cc1a325d83","label":"Message.13","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID63406678-028a-46e3-81f8-78cc1a325d83"}},{"type":"ServiceResponse","id":"EIDece4cedb-8d77-4216-bc7a-9a2d99bd851b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDece4cedb-8d77-4216-bc7a-9a2d99bd851b"}},{"type":"ServiceResponse","id":"EID40ea6995-1ec3-4aa5-9254-b7d93e2bf777","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID40ea6995-1ec3-4aa5-9254-b7d93e2bf777"}},{"type":"ServiceEndpoint","id":"EIDb77757bb-23b6-4beb-bffb-6d505304f3d3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EID10cfea2a-7890-4e28-8f64-60cb4972bab9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID800a547a-612d-42fe-98c5-261e033ad08f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID800a547a-612d-42fe-98c5-261e033ad08f"}},{"type":"Message","id":"EID2bd544c8-3836-4a3b-903e-5554e500d4e4","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID2bd544c8-3836-4a3b-903e-5554e500d4e4"}},{"type":"ServiceResponse","id":"EID30f80fde-7b6b-408b-9f52-9762b2e7d9d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID30f80fde-7b6b-408b-9f52-9762b2e7d9d6"}},{"type":"ServiceEndpoint","id":"EIDca4313f2-b038-45b8-be53-8ff91d6588e7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID9800ecfc-d47d-4500-bf01-6ae4046983ec","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID8da0d033-69e1-4fc0-bcdc-af3fc5543825","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDe852002f-7a2a-4348-aeb8-0cc070a3f47d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDe852002f-7a2a-4348-aeb8-0cc070a3f47d"}},{"type":"ServiceEndpoint","id":"EID668945ce-3869-40be-a1ad-6a8aee22b60f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID474fd821-b9ef-41ab-b208-213b5a96a0ed","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID5d392af2-e704-46b8-acde-d204d2736634","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID5d392af2-e704-46b8-acde-d204d2736634"}},{"type":"GetParameter","id":"EIDc92a1c07-d554-4f83-bb37-21c7a4f87762","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EIDa4425263-0c38-4195-8963-303b2342f80b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EIDa5a801b1-e81b-47ff-9bf0-9a62b03f8ade","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa5a801b1-e81b-47ff-9bf0-9a62b03f8ade"}},{"type":"Message","id":"EID7e354f32-0ef1-405f-ba58-7e532a86b639","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID7e354f32-0ef1-405f-ba58-7e532a86b639"}},{"type":"Message","id":"EID5b9b532e-d96a-453f-923f-ca6548e2912c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID5b9b532e-d96a-453f-923f-ca6548e2912c"}},{"type":"GetParameter","id":"EID4f23d06d-172e-4da7-b914-0c861d9ff901","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EID467480e3-ae20-4e19-b7ee-a3c5f8191e48","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID467480e3-ae20-4e19-b7ee-a3c5f8191e48"}},{"type":"ServiceEndpoint","id":"EID1e8f81a5-7058-4146-a472-24ee53124599","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDd2bb1b63-de6b-4a91-ac32-dc38afef1027","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDd2bb1b63-de6b-4a91-ac32-dc38afef1027"}},{"type":"ServiceEndpoint","id":"EID019857b1-7119-4a4a-a289-849e7ebdf194","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb916b776-ab46-43ac-9960-236875c65b7a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDdde6d7cf-c54d-4c05-8f63-9a3aeabddb64","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID9bae6885-26c7-46f5-86fb-194c27027a11","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID90fc384c-205f-4f08-91a3-46a021604e38","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID90fc384c-205f-4f08-91a3-46a021604e38"}},{"type":"ServiceEndpoint","id":"EID80a493d9-c456-4f38-b5bb-b0117892939e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceEndpoint","id":"EID0d9bbd97-97c5-41db-a1a3-2fcc3564e024","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"Message","id":"EIDe8811e51-b18b-4f0e-9c26-75b3e92735ce","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDe8811e51-b18b-4f0e-9c26-75b3e92735ce"}},{"type":"Message","id":"EID6f0e34ef-b447-4c14-93bc-36277690ab17","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID6f0e34ef-b447-4c14-93bc-36277690ab17"}},{"type":"ServiceResponse","id":"EIDa7125ff7-1477-4d6d-ba2a-81e5f99e21f0","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa7125ff7-1477-4d6d-ba2a-81e5f99e21f0"}},{"type":"GetParameter","id":"EID00696abe-f413-409b-9866-ae0acdd93658","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"ServiceResponse","id":"EID79e44328-73ff-409f-a07e-909581e3be80","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID79e44328-73ff-409f-a07e-909581e3be80"}},{"type":"ServiceEndpoint","id":"EID5c15afaf-2cc9-482d-a9eb-a15006da0eb7","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDc19dc4e7-9bf5-4464-81b9-022c47fbdd95","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDc19dc4e7-9bf5-4464-81b9-022c47fbdd95"}},{"type":"Message","id":"EID694757f2-ff0f-41ad-ab24-373d97dac72c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID694757f2-ff0f-41ad-ab24-373d97dac72c"}},{"type":"GetParameter","id":"EID4abe1343-3f15-4ee1-ae38-0b760dc029ce","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceEndpoint","id":"EID54d343cd-655a-4545-adfb-efe8239353d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"GetParameter","id":"EID82a4190a-b49c-4b18-9084-9d00bb1055e7","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EIDdddd7b96-84cc-4862-8fec-f90f7f50da04","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDdddd7b96-84cc-4862-8fec-f90f7f50da04"}},{"type":"ServiceEndpoint","id":"EID4c110ab1-8818-488a-b536-6e0165fb7090","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EIDcd77b131-5b7c-45a4-8a19-93e12d2c4dc0","label":"Message.10","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDcd77b131-5b7c-45a4-8a19-93e12d2c4dc0"}},{"type":"Message","id":"EID8dc6576f-c91e-43c4-9ec3-90f44407aa60","label":"Message.15","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID8dc6576f-c91e-43c4-9ec3-90f44407aa60"}},{"type":"Message","id":"EIDdd0c0918-3e02-43b6-b19c-62b05e907d27","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDdd0c0918-3e02-43b6-b19c-62b05e907d27"}},{"type":"ServiceEndpoint","id":"EID0d4bd05d-0f7f-46e4-b560-2fa5fd5bacf9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID6b72505a-e1f0-4f59-8d91-0eb3db3becd1","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID6b72505a-e1f0-4f59-8d91-0eb3db3becd1"}},{"type":"ServiceEndpoint","id":"EIDb098c59e-c7a2-4e51-834f-9de11f1e58bf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"GetParameter","id":"EID9315f5d0-1609-467e-aa55-b178faf55d7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"LogFile","id":"EIDa3e68d32-6e64-4661-94f4-2c60e86a7875","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa3e68d32-6e64-4661-94f4-2c60e86a7875"}},{"type":"GetParameter","id":"EIDd9fa0c4f-cbce-4703-bc47-a783538fdeb5","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"ServiceResponse","id":"EIDc1c2c142-75fc-4d1d-b94e-77f4ccce82fe","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDc1c2c142-75fc-4d1d-b94e-77f4ccce82fe"}},{"type":"ServiceEndpoint","id":"EID0293c494-7d5d-4044-ba33-40fcc012519f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDc823209c-170a-4345-88e0-35b0f81bdfe9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L29wZW5zZWFyY2gvaHRtbHNlYXJjaA=="},{"type":"ServiceResponse","id":"EIDc86624d0-8770-4200-bcb4-40eaff828acd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDc86624d0-8770-4200-bcb4-40eaff828acd"}},{"type":"GetParameter","id":"EID494bcb30-ce1b-4fb6-9446-2f84c738a408","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2Rvd25sb2Fkcy9pbnZhc2lldmUtZXhvdGVuLmdtbC56aXA="},{"type":"GetParameter","id":"EID31a4288b-d2e6-4f22-ad68-d58215a3988e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9zcnYvZHV0L3htbC5tZXRhZGF0YS5nZXQ="},{"type":"ServiceEndpoint","id":"EID8cea9710-2f83-421c-ae64-e628ccce0e00","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDa949a581-9414-4f57-968f-0c04ccb4c264","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDa949a581-9414-4f57-968f-0c04ccb4c264"}},{"type":"GetParameter","id":"EIDef7495a1-befd-4368-bb9d-77c8e9302bcb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EIDe5e5a086-d24e-46c7-8d2d-6b69e65b230f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID13787f88-99b2-4a85-bdf6-64d265f56bfe","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID13787f88-99b2-4a85-bdf6-64d265f56bfe"}},{"type":"GetParameter","id":"EID15169a02-821d-4ef3-80f8-f2917e6f0b1f","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EIDecfb29bd-dafc-491a-a738-021531ccc993","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDecfb29bd-dafc-491a-a738-021531ccc993"}},{"type":"Message","id":"EID3d8bd7ba-5bb7-446c-a9c7-7e08ff0b33c8","label":"Message.14","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID3d8bd7ba-5bb7-446c-a9c7-7e08ff0b33c8"}},{"type":"Message","id":"EID42aafe20-94e5-4dab-b738-fc9a21f48cdb","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID42aafe20-94e5-4dab-b738-fc9a21f48cdb"}},{"type":"ServiceEndpoint","id":"EID02d7a351-43d1-4d47-bd37-16ed9266052c","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"GetParameter","id":"EID182bbb9e-0bef-4e74-8f0b-854b25f3786a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"ServiceResponse","id":"EID56b715ef-f1b0-4b69-9ef6-c72f0ae4cefb","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID56b715ef-f1b0-4b69-9ef6-c72f0ae4cefb"}},{"type":"Message","id":"EID592b9479-4a48-461a-b714-9f32b1a25694","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID592b9479-4a48-461a-b714-9f32b1a25694"}},{"type":"GetParameter","id":"EID779b6700-5c60-408b-99cc-162414351f66","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EID867e0454-bdc4-490f-82dc-c384f92c4b69","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID867e0454-bdc4-490f-82dc-c384f92c4b69"}},{"type":"GetParameter","id":"EID0d44b903-bbca-4f30-ab9c-a2a4d224a611","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="},{"type":"Message","id":"EIDe46a2e1e-1ff8-4b17-8472-6d55bce24aba","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDe46a2e1e-1ff8-4b17-8472-6d55bce24aba"}},{"type":"GetParameter","id":"EID7d809047-98c3-4644-b00c-ef6d90e6d3f9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2luZGV4LnhtbA=="},{"type":"Message","id":"EIDbf45b87b-ca34-4429-98dd-44709bf9c790","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDbf45b87b-ca34-4429-98dd-44709bf9c790"}},{"type":"ServiceResponse","id":"EID037aed1a-5580-442d-bffd-9140e912ee42","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID037aed1a-5580-442d-bffd-9140e912ee42"}},{"type":"ServiceResponse","id":"EID563db6cf-d9ab-406b-bff0-d9985ca350d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID563db6cf-d9ab-406b-bff0-d9985ca350d6"}},{"type":"ServiceEndpoint","id":"EID2e811611-8c12-4574-8278-6be70b004a42","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL3J2by9pbnNwaXJlL2ludmFzaWV2ZS1leG90ZW4vYXRvbS92MV8wL2ludmFzaWV2ZV9leG90ZW5fMjAxOC54bWw="},{"type":"GetParameter","id":"EID7238afa9-5ab0-4ce2-bc6a-56d73755feaf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID9559c726-c513-44a1-a4df-01b38b1d74f8","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EID9559c726-c513-44a1-a4df-01b38b1d74f8"}},{"type":"ServiceResponse","id":"EIDebd10ae3-609a-462c-9d64-7c2a0786230a","label":"Service Response","encoding":"UTF-8","mimeType":"application/gzip","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID347853ac-4983-4b74-9f18-6901a926a90e/Attachments/EIDebd10ae3-609a-462c-9d64-7c2a0786230a"}},{"type":"ServiceEndpoint","id":"EID27428e96-9a25-4b73-bff4-5aeb19ff2e73","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmw6NDQzL2dlb25ldHdvcmsvb3BlbnNlYXJjaC9kdXQvZDJhMDVkZDUtOThlOC00ZjljLThiYTItN2ZlMmQ1YzdjNTA3L09wZW5TZWFyY2hEZXNjcmlwdGlvbi54bWw="}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:07:16Z","duration":67497,"status":"FAILED"}}}}}
11:08:48.307 [print] EID189aa04f-635e-4577-816d-683e7419b00a
11:08:48.308 [print] FAILED
11:08:48.308 [print] FAILED
11:08:48.308 [print] Conformance Class Download Service - Pre-defined Atom
11:08:48.308 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/189aa04f-635e-4577-816d-683e7419b00a.json
11:08:48.309 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/189aa04f-635e-4577-816d-683e7419b00a.json
11:08:48.310 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID189aa04f-635e-4577-816d-683e7419b00a/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:08:48.328 [print] [ "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.incorrectFeedSelfReference" ]
11:08:48.328 [print] [ "TR.incorrectFeedSelfReference", "TR.missingElement", "TR.missingElement", "TR.missingElement" ]
11:13:14.970 [print] testing url:https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities
11:13:14.970 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:15.365 response time in milliseconds: 394.34 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:15 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:15.371 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartschipholnacht/v2/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:13:15.808 response time in milliseconds: 436.59 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:13:15 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:13:15.809 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:09:34.038 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:09:34.039 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 320
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/rws/richtlijnstedelijkafvalwater2015/wfs/v1_0?request=GetCapabilities&service=WFS"}}}
11:09:35.595 response time in milliseconds: 1449.22
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:09:35 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883375416","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:09:35.604 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:12:44.486 [print] testing url:https://geodata.nationaalgeoregister.nl/wko/wfs?request=Getcapabilities
11:12:44.487 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wko/wfs?request=Getcapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:44.977 response time in milliseconds: 489.82 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: text/html;charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:44 GMT 1 < X-Cnection: [close, close]
11:12:44.990 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/wko/wfs?request=Getcapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:45.470 response time in milliseconds: 480.15 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Type: text/html;charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:12:45 GMT 1 < X-Cnection: [close, close]
11:12:45.471 assertion failed: path: $['Content-Length'][0], actual: null, expected: '#notnull', reason: actual json-path does not exist
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:16:02.283 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:16:02.283 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:16:07.731 response time in milliseconds: 4708.87
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:16:06 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:16:04 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544.json","testRuns":{"TestRun":{"id":"EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:04.468Z","testTasks":{"TestTask":{"id":"EIDbcf93c81-20be-4378-aeb1-d3fe92c7bab5","parent":{"ref":"EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID75c95706-e449-4736-ac25-9f3dbe7a1347"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID75c95706-e449-4736-ac25-9f3dbe7a1347","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:02.728Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:04.019Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:16:07.734 [print] EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544
11:16:07.734 [print] UNDEFINED
11:16:07.734 [print] Conformance Class Download Service - Pre-defined Atom
11:16:07.734 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544.json
11:16:07.734 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/log
11:16:07.734 [print] statuspath TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544
11:16:07.734 [print] progresspath TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
11:16:07.735 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:08.303 response time in milliseconds: 567.77
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:16:08 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:16:04 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:04 UTC 2020)","28.10.2020 11:16:04 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:04 - Preparing 1 Test Task:","28.10.2020 11:16:04 - TestTask 1 (bcf93c81-20be-4378-aeb1-d3fe92c7bab5)","28.10.2020 11:16:04 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:04 - with parameters: ","28.10.2020 11:16:04 - etf.testcases = *","28.10.2020 11:16:04 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:04 - Setting state to CREATED","28.10.2020 11:16:04 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:04 - Starting TestRun.ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544 at 2020-10-28T11:16:06Z","28.10.2020 11:16:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:06 - Project Properties: ","28.10.2020 11:16:06 - etf.testcases - * ","28.10.2020 11:16:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:16:06 - username - ","28.10.2020 11:16:06 - authUser - ","28.10.2020 11:16:06 - authMethod - basic ","28.10.2020 11:16:06 - TestRunTask initialized"]}
11:16:08.304 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:16:04 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:04 UTC 2020)",
"28.10.2020 11:16:04 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:16:04 - Preparing 1 Test Task:",
"28.10.2020 11:16:04 - TestTask 1 (bcf93c81-20be-4378-aeb1-d3fe92c7bab5)",
"28.10.2020 11:16:04 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:16:04 - with parameters: ",
"28.10.2020 11:16:04 - etf.testcases = *",
"28.10.2020 11:16:04 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:16:04 - Setting state to CREATED",
"28.10.2020 11:16:04 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:16:04 - Starting TestRun.ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544 at 2020-10-28T11:16:06Z",
"28.10.2020 11:16:06 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:16:06 - Project Properties: ",
"28.10.2020 11:16:06 - etf.testcases - * ",
"28.10.2020 11:16:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:16:06 - username - ",
"28.10.2020 11:16:06 - authUser - ",
"28.10.2020 11:16:06 - authMethod - basic ",
"28.10.2020 11:16:06 - TestRunTask initialized"
]
}
11:16:08.304 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:08.824 response time in milliseconds: 519.55
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:16:08 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"25","max":"26","log":["28.10.2020 11:16:04 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:04 UTC 2020)","28.10.2020 11:16:04 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:04 - Preparing 1 Test Task:","28.10.2020 11:16:04 - TestTask 1 (bcf93c81-20be-4378-aeb1-d3fe92c7bab5)","28.10.2020 11:16:04 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:04 - with parameters: ","28.10.2020 11:16:04 - etf.testcases = *","28.10.2020 11:16:04 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:04 - Setting state to CREATED","28.10.2020 11:16:04 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:04 - Starting TestRun.ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544 at 2020-10-28T11:16:06Z","28.10.2020 11:16:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:06 - Project Properties: ","28.10.2020 11:16:06 - etf.testcases - * ","28.10.2020 11:16:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:16:06 - username - ","28.10.2020 11:16:06 - authUser - ","28.10.2020 11:16:06 - authMethod - basic ","28.10.2020 11:16:06 - TestRunTask initialized"]}
11:16:08.825 retry condition not satisfied: response.val == response.max
11:16:08.825 sleeping before retry #1
11:16:13.825 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:14.345 response time in milliseconds: 518.86
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:16:14 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"96","max":"97","log":["28.10.2020 11:16:04 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:04 UTC 2020)","28.10.2020 11:16:04 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:04 - Preparing 1 Test Task:","28.10.2020 11:16:04 - TestTask 1 (bcf93c81-20be-4378-aeb1-d3fe92c7bab5)","28.10.2020 11:16:04 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:04 - with parameters: ","28.10.2020 11:16:04 - etf.testcases = *","28.10.2020 11:16:04 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:04 - Setting state to CREATED","28.10.2020 11:16:04 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:04 - Starting TestRun.ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544 at 2020-10-28T11:16:06Z","28.10.2020 11:16:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:06 - Project Properties: ","28.10.2020 11:16:06 - etf.testcases - * ","28.10.2020 11:16:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:16:06 - username - ","28.10.2020 11:16:06 - authUser - ","28.10.2020 11:16:06 - authMethod - basic ","28.10.2020 11:16:06 - TestRunTask initialized","28.10.2020 11:16:09 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:16:09 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:16:11 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:16:13 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:16:13 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes"]}
11:16:14.345 retry condition not satisfied: response.val == response.max
11:16:14.345 sleeping before retry #2
11:16:19.346 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:19.860 response time in milliseconds: 513.11
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:16:19 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:16:04 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:16:04 UTC 2020)","28.10.2020 11:16:04 - Resolving Executable Test Suite dependencies","28.10.2020 11:16:04 - Preparing 1 Test Task:","28.10.2020 11:16:04 - TestTask 1 (bcf93c81-20be-4378-aeb1-d3fe92c7bab5)","28.10.2020 11:16:04 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:16:04 - with parameters: ","28.10.2020 11:16:04 - etf.testcases = *","28.10.2020 11:16:04 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:16:04 - Setting state to CREATED","28.10.2020 11:16:04 - Changed state from CREATED to INITIALIZING","28.10.2020 11:16:04 - Starting TestRun.ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544 at 2020-10-28T11:16:06Z","28.10.2020 11:16:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:16:06 - Project Properties: ","28.10.2020 11:16:06 - etf.testcases - * ","28.10.2020 11:16:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:16:06 - username - ","28.10.2020 11:16:06 - authUser - ","28.10.2020 11:16:06 - authMethod - basic ","28.10.2020 11:16:06 - TestRunTask initialized","28.10.2020 11:16:09 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:16:09 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:16:11 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:16:13 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:16:13 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:14 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:16:14 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:15 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:15 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:15 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:16:15 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:16:15 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:15 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:16:15 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:16 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:16 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:16:16 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:16:17 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:16:19.860 retry condition not satisfied: response.val == response.max
11:16:19.861 sleeping before retry #3
11:16:24.861 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:25.376 response time in milliseconds: 514.07
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:16:25 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"100","max":"100","log":["Already completed"]}
11:16:25.376 retry condition satisfied
11:16:25.376 [print] {
"val": "100",
"max": "100",
"log": [
"Already completed"
]
}
11:16:25.377 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:16:29.383 response time in milliseconds: 3046.57
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:16:28 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:16:21 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544.json","testRuns":{"TestRun":{"id":"EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:16:04.468Z","testTasks":{"TestTask":{"id":"EIDbcf93c81-20be-4378-aeb1-d3fe92c7bab5","parent":{"ref":"EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID75c95706-e449-4736-ac25-9f3dbe7a1347"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID75c95706-e449-4736-ac25-9f3dbe7a1347","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:16:02.728Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:16:04.019Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8","testObject":{"ref":"EID75c95706-e449-4736-ac25-9f3dbe7a1347"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eec12ea-0175-1000-fa72-a3847cd82ef9","testCaseResults":{"TestCaseResult":[{"id":"EID6eec12ea-0175-1000-88c3-b7b6a22e2615","testStepResults":{"TestStepResult":[{"id":"EID6eec12eb-0175-1000-b78b-8fe6e0874f08","parent":{"ref":"EID6eec12ea-0175-1000-88c3-b7b6a22e2615"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:16:06Z","duration":18,"status":"PASSED"},{"id":"EID6eec12fd-0175-1000-8ce9-966723933761","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1455-0175-1000-9b99-0ac8990742f4","parent":{"ref":"EID6eec12fd-0175-1000-8ce9-966723933761"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:16:06Z","duration":1,"status":"PASSED"},{"id":"EID6eec1456-0175-1000-f709-a7ef6663d0ab","parent":{"ref":"EID6eec12fd-0175-1000-8ce9-966723933761"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1456-0175-1000-3eb4-6720e04c9ec6","parent":{"ref":"EID6eec12fd-0175-1000-8ce9-966723933761"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"},{"id":"EID6eec1456-0175-1000-1e9a-328114a074d6","parent":{"ref":"EID6eec12fd-0175-1000-8ce9-966723933761"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:16:06Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID081c770d-401e-4547-b32c-5394aa3dad49"},{"ref":"EID795bb66d-e2ba-4c6d-b757-c017499fcc5d"},{"ref":"EID5cee4ef0-4ca2-4d07-900e-50acebe898aa"}]},"parent":{"ref":"EID6eec12ea-0175-1000-88c3-b7b6a22e2615"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:16:06Z","duration":217,"status":"PASSED"}]},"parent":{"ref":"EID6eec12ea-0175-1000-fa72-a3847cd82ef9"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:16:06Z","duration":364,"status":"PASSED"},{"id":"EID6eec14cc-0175-1000-1caf-e39c259d76ea","testStepResults":{"TestStepResult":{"id":"EID6eec14cc-0175-1000-b2f7-1eec3cb344cd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec159d-0175-1000-8e7f-8b7b8375f947","parent":{"ref":"EID6eec14cc-0175-1000-b2f7-1eec3cb344cd"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec159d-0175-1000-c5af-1e1d11ad90b7","parent":{"ref":"EID6eec14cc-0175-1000-b2f7-1eec3cb344cd"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec159d-0175-1000-e8d4-c1bd03f5038f","parent":{"ref":"EID6eec14cc-0175-1000-b2f7-1eec3cb344cd"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID56f67324-574c-46d8-bc08-f493a927d010"},{"ref":"EIDd17426ae-5239-45b7-acf2-239e022207e7"},{"ref":"EID2c05f1f6-950e-471e-b870-3217c8278ad1"}]},"parent":{"ref":"EID6eec14cc-0175-1000-1caf-e39c259d76ea"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:16:06Z","duration":89,"status":"PASSED"}},"parent":{"ref":"EID6eec12ea-0175-1000-fa72-a3847cd82ef9"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:16:06Z","duration":209,"status":"PASSED"}]},"parent":{"ref":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:16:06Z","duration":691,"status":"PASSED"},{"id":"EID6eec159d-0175-1000-e93f-22e6a930c869","testCaseResults":{"TestCaseResult":[{"id":"EID6eec159d-0175-1000-e344-da795a4b4ad7","testStepResults":{"TestStepResult":[{"id":"EID6eec159d-0175-1000-d765-340649117f1c","parent":{"ref":"EID6eec159d-0175-1000-e344-da795a4b4ad7"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":89,"status":"PASSED"},{"id":"EID6eec159d-0175-1000-9df5-668c0c3ce869","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec165a-0175-1000-2d3f-da615c7a765f","parent":{"ref":"EID6eec159d-0175-1000-9df5-668c0c3ce869"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec165a-0175-1000-2e4f-157b076e5fd9","parent":{"ref":"EID6eec159d-0175-1000-9df5-668c0c3ce869"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec165a-0175-1000-22ff-af8e0a40e44e","parent":{"ref":"EID6eec159d-0175-1000-9df5-668c0c3ce869"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec165a-0175-1000-27e2-519178337256","parent":{"ref":"EID6eec159d-0175-1000-9df5-668c0c3ce869"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec165a-0175-1000-7d44-d09ab37a6904","parent":{"ref":"EID6eec159d-0175-1000-9df5-668c0c3ce869"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0a309c0f-a8d4-46bc-8736-6b79b1b78fd2"},{"ref":"EID46487097-9bcb-45d6-85ae-2be7179bad64"},{"ref":"EID8f9bad36-0e05-4c44-98a4-db6e514d0cdf"}]},"parent":{"ref":"EID6eec159d-0175-1000-e344-da795a4b4ad7"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:16:07Z","duration":70,"status":"PASSED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:16:07Z","duration":189,"status":"PASSED"},{"id":"EID6eec165a-0175-1000-1bb6-fa4b2c275341","testStepResults":{"TestStepResult":[{"id":"EID6eec165a-0175-1000-179a-390b1d78674d","attachments":{"attachment":[{"ref":"EID6b2a2702-fb11-42d9-b37a-0111083fa37f"},{"ref":"EID007ba370-09b2-4928-a02e-0b5a98bb7fdb"}]},"parent":{"ref":"EID6eec165a-0175-1000-1bb6-fa4b2c275341"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":188,"status":"PASSED"},{"id":"EID6eec1740-0175-1000-27f2-e0f56f3b1203","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec17f4-0175-1000-5e1d-4a1e6c53b4a0","parent":{"ref":"EID6eec1740-0175-1000-27f2-e0f56f3b1203"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f4-0175-1000-f258-eb93cf604d1b","parent":{"ref":"EID6eec1740-0175-1000-27f2-e0f56f3b1203"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f4-0175-1000-6880-0256466ed44c","parent":{"ref":"EID6eec1740-0175-1000-27f2-e0f56f3b1203"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"},{"id":"EID6eec17f4-0175-1000-73dd-020586c38275","parent":{"ref":"EID6eec1740-0175-1000-27f2-e0f56f3b1203"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:16:07Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID69d74d5e-57ea-44bc-a536-72f58ed3834b"},{"ref":"EID0b526571-754e-4d61-ba59-940a823cfb74"},{"ref":"EID14b5fc6c-aa6a-4c63-bc13-1ff23dd5b6b3"}]},"parent":{"ref":"EID6eec165a-0175-1000-1bb6-fa4b2c275341"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:16:07Z","duration":65,"status":"PASSED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:16:07Z","duration":410,"status":"PASSED"},{"id":"EID6eec17f4-0175-1000-7e78-a934dd0431f0","testStepResults":{"TestStepResult":[{"id":"EID6eec17f4-0175-1000-e0a7-296707ea9102","attachments":{"attachment":[{"ref":"EID577d066f-f6a4-461e-a1eb-29568e89e888"},{"ref":"EID153bb2f5-517a-490e-bbc5-1661554e007b"}]},"parent":{"ref":"EID6eec17f4-0175-1000-7e78-a934dd0431f0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:16:07Z","duration":173,"status":"PASSED"},{"id":"EID6eec18cb-0175-1000-f599-f34a3d390f2f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec19bd-0175-1000-68a2-71b6af413f84","parent":{"ref":"EID6eec18cb-0175-1000-f599-f34a3d390f2f"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19be-0175-1000-2eba-e26e3f8518a4","parent":{"ref":"EID6eec18cb-0175-1000-f599-f34a3d390f2f"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19be-0175-1000-1f5a-99b96be6dca9","parent":{"ref":"EID6eec18cb-0175-1000-f599-f34a3d390f2f"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19be-0175-1000-1dc5-e64ae3c9d614","parent":{"ref":"EID6eec18cb-0175-1000-f599-f34a3d390f2f"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec19be-0175-1000-c8b5-8d1d132d4c5b","parent":{"ref":"EID6eec18cb-0175-1000-f599-f34a3d390f2f"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf77b3532-56af-4987-b6b2-840e64d20918"},{"ref":"EIDe77b31f6-a081-431c-a062-43bef4ab0e50"},{"ref":"EIDdaff20d6-3389-4ebe-b33e-80ea202e5b7d"}]},"parent":{"ref":"EID6eec17f4-0175-1000-7e78-a934dd0431f0"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:16:08Z","duration":50,"status":"PASSED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:16:07Z","duration":466,"status":"PASSED"},{"id":"EID6eec19c6-0175-1000-1e3b-011c967469e2","testStepResults":{"TestStepResult":[{"id":"EID6eec19c6-0175-1000-b144-20e1686b1656","attachments":{"attachment":[{"ref":"EID55e282b8-7713-4773-827c-83d1006a858e"},{"ref":"EIDa7c43eaa-a564-4502-9074-35ea1a52b3fc"}]},"parent":{"ref":"EID6eec19c6-0175-1000-1e3b-011c967469e2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":125,"status":"PASSED"},{"id":"EID6eec1a6c-0175-1000-c928-f4bc21b753c7","parent":{"ref":"EID6eec19c6-0175-1000-1e3b-011c967469e2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1a6c-0175-1000-deb7-b1f2e2c749fa","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1b0d-0175-1000-3b1d-bbd944912ac1","parent":{"ref":"EID6eec1a6c-0175-1000-deb7-b1f2e2c749fa"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b0d-0175-1000-6dc0-8a1a2dbf4b62","parent":{"ref":"EID6eec1a6c-0175-1000-deb7-b1f2e2c749fa"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b0d-0175-1000-69ce-d3869b30824c","parent":{"ref":"EID6eec1a6c-0175-1000-deb7-b1f2e2c749fa"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1b0d-0175-1000-a873-2f16e493ddb4","parent":{"ref":"EID6eec1a6c-0175-1000-deb7-b1f2e2c749fa"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd7b5f52c-40e5-40b2-9462-167792bcc6db"},{"ref":"EID4b15690f-5bad-4d27-8659-b00c176cc63f"},{"ref":"EID5a0b20f1-14b5-4028-abac-6a932e45a300"}]},"parent":{"ref":"EID6eec19c6-0175-1000-1e3b-011c967469e2"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:16:08Z","duration":58,"status":"PASSED"},{"id":"EID6eec1b0d-0175-1000-463e-18fcb0946ecf","attachments":{"attachment":{"ref":"EIDeee498c1-24c0-4f85-8f50-426947979f03"}},"parent":{"ref":"EID6eec19c6-0175-1000-1e3b-011c967469e2"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":2,"status":"PASSED"},{"id":"EID6eec1b1a-0175-1000-7191-00074dcbfeba","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1bbe-0175-1000-e928-3f9a6b4c5d59","parent":{"ref":"EID6eec1b1a-0175-1000-7191-00074dcbfeba"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1bbe-0175-1000-dff2-c50ae7d167b1","parent":{"ref":"EID6eec1b1a-0175-1000-7191-00074dcbfeba"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1bbe-0175-1000-a8d6-23283631328c","parent":{"ref":"EID6eec1b1a-0175-1000-7191-00074dcbfeba"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1bbe-0175-1000-081a-15298393c761","parent":{"ref":"EID6eec1b1a-0175-1000-7191-00074dcbfeba"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"},{"id":"EID6eec1bbe-0175-1000-f93a-7a64251ce4d9","parent":{"ref":"EID6eec1b1a-0175-1000-7191-00074dcbfeba"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:16:08Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfdfd7d5a-7ea8-4dd2-976b-d9c5c71b85b3"},{"ref":"EIDb2834caf-661c-46f4-a0bf-f31138842c88"},{"ref":"EID0938fc39-5b4d-49d8-bf51-aa267c178ddb"}]},"parent":{"ref":"EID6eec19c6-0175-1000-1e3b-011c967469e2"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:16:08Z","duration":33,"status":"PASSED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:16:08Z","duration":513,"status":"PASSED"},{"id":"EID6eec1bc7-0175-1000-d2d8-b674e35d096d","testStepResults":{"TestStepResult":[{"id":"EID6eec1bc7-0175-1000-5dd9-adbe344505ed","attachments":{"attachment":[{"ref":"EID0b1adea6-1ca9-4d00-bffd-f70d58fec211"},{"ref":"EID425c5177-3004-4c57-965a-d80fa761e31f"}]},"parent":{"ref":"EID6eec1bc7-0175-1000-d2d8-b674e35d096d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:16:08Z","duration":164,"status":"PASSED"},{"id":"EID6eec1c99-0175-1000-9d4b-5c6b5bd23eec","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1d79-0175-1000-8891-d65ba22fef6a","parent":{"ref":"EID6eec1c99-0175-1000-9d4b-5c6b5bd23eec"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-1a57-689ea0c1fc37","parent":{"ref":"EID6eec1c99-0175-1000-9d4b-5c6b5bd23eec"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-4d35-29643f8386da","parent":{"ref":"EID6eec1c99-0175-1000-9d4b-5c6b5bd23eec"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-4eb1-9196a01a4004","parent":{"ref":"EID6eec1c99-0175-1000-9d4b-5c6b5bd23eec"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID6c917d17-d2cb-4c59-9341-7d04f0ec2a80"},{"ref":"EID7ce44813-c998-49c3-b400-952c53512bc4"},{"ref":"EID08dba7a0-bd91-4780-af0a-0b673b200d9b"}]},"parent":{"ref":"EID6eec1bc7-0175-1000-d2d8-b674e35d096d"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:16:08Z","duration":95,"status":"PASSED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:16:08Z","duration":434,"status":"PASSED"},{"id":"EID6eec1d79-0175-1000-2849-53799067cce0","testStepResults":{"TestStepResult":[{"id":"EID6eec1d79-0175-1000-706d-93f7506d37b3","attachments":{"attachment":[{"ref":"EIDe0d44677-5361-4651-860a-6cf520061513"},{"ref":"EIDbe79c0ed-c06b-46e8-950c-0b1d3216fa18"}]},"parent":{"ref":"EID6eec1d79-0175-1000-2849-53799067cce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":81,"status":"PASSED"},{"id":"EID6eec1df1-0175-1000-4b62-88876026abaf","parent":{"ref":"EID6eec1d79-0175-1000-2849-53799067cce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1df2-0175-1000-4075-51df770d74e8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec1f1d-0175-1000-0bb9-4bbc4455b8c0","parent":{"ref":"EID6eec1df2-0175-1000-4075-51df770d74e8"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f1d-0175-1000-1148-0490493f6859","parent":{"ref":"EID6eec1df2-0175-1000-4075-51df770d74e8"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f1d-0175-1000-0c06-33d5c86dddbf","parent":{"ref":"EID6eec1df2-0175-1000-4075-51df770d74e8"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec1f1d-0175-1000-f148-6455258735e8","parent":{"ref":"EID6eec1df2-0175-1000-4075-51df770d74e8"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb442964f-8bc4-4f4b-9af3-551815de8ee1"},{"ref":"EIDce3269d7-ed09-4b01-9a5a-a64d16eab5d9"},{"ref":"EID51525e6d-e651-44aa-b57c-764d627fbc59"}]},"parent":{"ref":"EID6eec1d79-0175-1000-2849-53799067cce0"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:16:09Z","duration":126,"status":"PASSED"},{"id":"EID6eec1f1d-0175-1000-e99f-2fa310801cc5","attachments":{"attachment":{"ref":"EIDe8a0780e-1a4a-4fb6-9320-5ff280a6feb1"}},"parent":{"ref":"EID6eec1d79-0175-1000-2849-53799067cce0"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":2,"status":"PASSED"},{"id":"EID6eec1f30-0175-1000-51ea-ea9f82f735f3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec203a-0175-1000-ba86-0ec3a0f5e3cc","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec1f30-0175-1000-51ea-ea9f82f735f3"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:16:09Z","duration":20,"status":"FAILED"},{"id":"EID6eec204e-0175-1000-6683-92723dd4b7eb","parent":{"ref":"EID6eec1f30-0175-1000-51ea-ea9f82f735f3"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"PASSED"},{"id":"EID6eec204e-0175-1000-6ed0-52b3453ea35f","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6eec1f30-0175-1000-51ea-ea9f82f735f3"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:16:09Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDee791fae-168a-4920-976f-47df1c3058c6"},{"ref":"EID77440391-bed4-4f4a-80fd-a38ff016e0af"},{"ref":"EID5c8b6a88-98ba-4dfd-8a58-14f835f507c0"}]},"parent":{"ref":"EID6eec1d79-0175-1000-2849-53799067cce0"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:16:09Z","duration":209,"status":"FAILED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:16:09Z","duration":725,"status":"FAILED"},{"id":"EID6eec204e-0175-1000-5784-bb00102dda23","testStepResults":{"TestStepResult":[{"id":"EID6eec204f-0175-1000-97cc-8c075f339c91","attachments":{"attachment":[{"ref":"EID866d97e1-5302-457d-b1b8-3b886efddb32"},{"ref":"EIDaac5d5ae-9f51-4a67-8ffe-fdcfe15430dc"}]},"parent":{"ref":"EID6eec204e-0175-1000-5784-bb00102dda23"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:16:09Z","duration":196,"status":"PASSED"},{"id":"EID6eec213b-0175-1000-2ff7-1092d3548aea","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec224b-0175-1000-22c9-c7f708161a2f","parent":{"ref":"EID6eec213b-0175-1000-2ff7-1092d3548aea"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec224b-0175-1000-250c-9faef9e006db","parent":{"ref":"EID6eec213b-0175-1000-2ff7-1092d3548aea"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec224b-0175-1000-f0a9-d21b999b8938","parent":{"ref":"EID6eec213b-0175-1000-2ff7-1092d3548aea"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec224b-0175-1000-f12f-7676fa176872","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec213b-0175-1000-2ff7-1092d3548aea"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EIDc8601958-5856-4e5c-8d17-b16ccbb17389"},{"ref":"EID01b3b878-07bd-41f9-a3fe-fe846b3aa266"},{"ref":"EIDa09544ed-aabf-4d70-a646-76b73f213758"}]},"parent":{"ref":"EID6eec204e-0175-1000-5784-bb00102dda23"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:16:10Z","duration":40,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:16:09Z","duration":509,"status":"PASSED_MANUAL"},{"id":"EID6eec224b-0175-1000-96af-4e7a64be248d","testStepResults":{"TestStepResult":{"id":"EID6eec224b-0175-1000-870e-784f63bd1ce3","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec22f0-0175-1000-fc84-efc0744027e4","parent":{"ref":"EID6eec224b-0175-1000-870e-784f63bd1ce3"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec22f0-0175-1000-5431-47c3735c5226","parent":{"ref":"EID6eec224b-0175-1000-870e-784f63bd1ce3"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec22f0-0175-1000-778b-4dcf553abe02","parent":{"ref":"EID6eec224b-0175-1000-870e-784f63bd1ce3"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec22f0-0175-1000-bfc6-6aa5cdb6b256","parent":{"ref":"EID6eec224b-0175-1000-870e-784f63bd1ce3"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID32ff7191-cef3-4a4d-9ebb-4f62b56d7dd9"},{"ref":"EID3cc25015-4c6a-48b2-b0c1-1d0333029fad"},{"ref":"EIDee5fc917-149e-4fe8-9259-0df94e7bb4bd"}]},"parent":{"ref":"EID6eec224b-0175-1000-96af-4e7a64be248d"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:16:10Z","duration":53,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:16:10Z","duration":173,"status":"PASSED"},{"id":"EID6eec22f8-0175-1000-b84f-20778ff11e29","testStepResults":{"TestStepResult":{"id":"EID6eec22f8-0175-1000-07ed-0c7de902003b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2387-0175-1000-a4e1-e28901b38cce","parent":{"ref":"EID6eec22f8-0175-1000-07ed-0c7de902003b"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2387-0175-1000-37ee-031e9c8a6925","parent":{"ref":"EID6eec22f8-0175-1000-07ed-0c7de902003b"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2387-0175-1000-9deb-2109dd25338f","parent":{"ref":"EID6eec22f8-0175-1000-07ed-0c7de902003b"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"},{"id":"EID6eec2387-0175-1000-b2ed-f99483479ffb","parent":{"ref":"EID6eec22f8-0175-1000-07ed-0c7de902003b"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:16:10Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID44196e31-667c-468e-aaa3-cef8a1b72f92"},{"ref":"EIDfb658e6f-bcde-464b-8ea9-6709f45e8930"},{"ref":"EID0e64f7e8-c4eb-4bcb-9696-498ebe631f31"}]},"parent":{"ref":"EID6eec22f8-0175-1000-b84f-20778ff11e29"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:16:10Z","duration":35,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:16:10Z","duration":143,"status":"PASSED"},{"id":"EID6eec2387-0175-1000-bce8-fac423f30463","testStepResults":{"TestStepResult":{"id":"EID6eec2387-0175-1000-e2dc-e546d0401592","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID7eccc363-8c74-40b4-936a-ce2d4381860a"},{"ref":"EID705d89e0-e401-4eb2-b7f5-cde85fd38b71"},{"ref":"EID32a2cb5f-6a37-4b09-9abb-7fed744b700d"},{"ref":"EID88a8a54f-3e84-4fa7-bbb7-b5faf654f254"},{"ref":"EID0b947a01-ab19-42bb-918c-06a5060cf655"},{"ref":"EID24589f6c-c6b7-4cec-83f6-982ca02cd87c"},{"ref":"EID0a31d6f7-06b1-4687-ab31-e528efd2cacd"},{"ref":"EID3fc24162-2346-4025-bac3-bcfeae127cd7"},{"ref":"EIDf8a5ed1c-1f1d-4d20-951d-5985e3dd9da3"}]},"parent":{"ref":"EID6eec2387-0175-1000-bce8-fac423f30463"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:16:10Z","duration":628,"status":"SKIPPED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:16:10Z","duration":743,"status":"SKIPPED"},{"id":"EID6eec266e-0175-1000-2c7a-9401d3391c12","testStepResults":{"TestStepResult":{"id":"EID6eec266f-0175-1000-9105-2957f576e242","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2725-0175-1000-a7f7-829b4db757e8","parent":{"ref":"EID6eec266f-0175-1000-9105-2957f576e242"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2725-0175-1000-76df-0c4ff4d634b7","parent":{"ref":"EID6eec266f-0175-1000-9105-2957f576e242"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2725-0175-1000-9243-762e53cd12a5","parent":{"ref":"EID6eec266f-0175-1000-9105-2957f576e242"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2725-0175-1000-c8f3-63fb57515a04","parent":{"ref":"EID6eec266f-0175-1000-9105-2957f576e242"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID357b9aa4-c1f3-43f0-9e50-d1ca56471a03"},{"ref":"EIDefb3feee-d6d5-4926-806b-592965d6570d"},{"ref":"EID1041e9e7-0818-4304-b05b-22d335102a21"}]},"parent":{"ref":"EID6eec266e-0175-1000-2c7a-9401d3391c12"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:16:11Z","duration":80,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:16:11Z","duration":183,"status":"PASSED"},{"id":"EID6eec2725-0175-1000-8cfd-a0aecc3f3cb7","testStepResults":{"TestStepResult":{"id":"EID6eec2725-0175-1000-14e2-9b90e696b2fd","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2821-0175-1000-6d1f-a322f14b43aa","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-6553-7816425b2ac5","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-4118-02a706bc7cdf","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-7cdf-3f02f8ce02a5","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-82a8-69b666e1077b","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-4247-2325b35d071f","parent":{"ref":"EID6eec2725-0175-1000-14e2-9b90e696b2fd"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:16:11Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb7643c44-5002-4261-8c80-e6d3a517b007"},{"ref":"EID925c2a3b-ae2b-495a-adfe-a4e1c113de1c"},{"ref":"EID1e255e9e-a501-4190-a567-343e38f9142c"}]},"parent":{"ref":"EID6eec2725-0175-1000-8cfd-a0aecc3f3cb7"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:16:11Z","duration":55,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:16:11Z","duration":252,"status":"PASSED"},{"id":"EID6eec2821-0175-1000-b490-39a9809659a2","testStepResults":{"TestStepResult":{"id":"EID6eec282a-0175-1000-7699-1bc66ade8242","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec29b9-0175-1000-8590-3082cf74ece5","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-2fa8-8a0a21b77f40","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-17dc-26e61ba5bdf8","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-a8a1-5099dcea333d","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-79dc-2a68906393a8","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-fdc2-418617619f69","parent":{"ref":"EID6eec282a-0175-1000-7699-1bc66ade8242"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID614cff79-14d0-4da7-bb7a-4e9486ac841d"},{"ref":"EID8b293cdb-4f04-48f7-b09a-c81007aac456"},{"ref":"EID61e234c0-6b21-457d-a556-7f6c073d273b"}]},"parent":{"ref":"EID6eec2821-0175-1000-b490-39a9809659a2"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:16:11Z","duration":58,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:16:11Z","duration":408,"status":"PASSED"},{"id":"EID6eec29b9-0175-1000-736e-780cd1d5410b","testStepResults":{"TestStepResult":{"id":"EID6eec29b9-0175-1000-b1b6-0666a28cc050","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2a70-0175-1000-0df0-1b0afc0d56f8","parent":{"ref":"EID6eec29b9-0175-1000-b1b6-0666a28cc050"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2a70-0175-1000-28cf-e6c355acde70","parent":{"ref":"EID6eec29b9-0175-1000-b1b6-0666a28cc050"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2a70-0175-1000-356a-33d2e0cef8b9","parent":{"ref":"EID6eec29b9-0175-1000-b1b6-0666a28cc050"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"},{"id":"EID6eec2a70-0175-1000-fae4-10b5675fd40c","parent":{"ref":"EID6eec29b9-0175-1000-b1b6-0666a28cc050"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:16:12Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID3fd843e9-3f8d-4615-9200-2fb9e88d0612"},{"ref":"EIDcebe8069-ef3f-453a-8c5f-094aa73542d5"},{"ref":"EIDf5dc5238-9404-4bc3-a1d9-9076521eb370"}]},"parent":{"ref":"EID6eec29b9-0175-1000-736e-780cd1d5410b"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:16:12Z","duration":87,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:16:12Z","duration":183,"status":"PASSED"},{"id":"EID6eec2a70-0175-1000-4a9e-2b51677ec7ff","testStepResults":{"TestStepResult":[{"id":"EID6eec2a70-0175-1000-5dc9-47cd3c285c3f","attachments":{"attachment":[{"ref":"EID4c650a5f-239e-43fb-90bc-8e53dc1f00fa"},{"ref":"EID0878de10-46df-4c4e-b284-b6adde054838"},{"ref":"EIDb4c05287-d80a-4c1b-a609-56e3b6a867c5"},{"ref":"EIDbc3516ba-0561-4e52-bdcf-e49000776bc6"}]},"parent":{"ref":"EID6eec2a70-0175-1000-4a9e-2b51677ec7ff"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:16:12Z","duration":328,"status":"PASSED"},{"id":"EID6eec2be7-0175-1000-c88b-56714da21c15","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2d2b-0175-1000-630c-1e339643bf53","parent":{"ref":"EID6eec2be7-0175-1000-c88b-56714da21c15"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d2b-0175-1000-50ac-cde4cdbdf858","parent":{"ref":"EID6eec2be7-0175-1000-c88b-56714da21c15"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d2b-0175-1000-213a-1c13b83d7053","parent":{"ref":"EID6eec2be7-0175-1000-c88b-56714da21c15"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2d2b-0175-1000-9fd6-7e24b98a75e7","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6eec2be7-0175-1000-c88b-56714da21c15"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID5f85fced-3619-4d81-9a6d-8c0d0ba9a53a"},{"ref":"EIDc6a318c6-fdcc-4f68-9f02-305cedf62d40"},{"ref":"EID0882cb8c-5ac3-4035-995b-58c38f9886b6"}]},"parent":{"ref":"EID6eec2a70-0175-1000-4a9e-2b51677ec7ff"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:16:12Z","duration":63,"status":"FAILED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:16:12Z","duration":699,"status":"FAILED"},{"id":"EID6eec2d2b-0175-1000-96ad-793659a66fde","testStepResults":{"TestStepResult":{"id":"EID6eec2d2b-0175-1000-7684-b3b722869496","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2dd1-0175-1000-7728-4ceb7d5f883d","parent":{"ref":"EID6eec2d2b-0175-1000-7684-b3b722869496"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dd1-0175-1000-42e1-a7afbc43a727","parent":{"ref":"EID6eec2d2b-0175-1000-7684-b3b722869496"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dd1-0175-1000-a118-582fd842b6b8","parent":{"ref":"EID6eec2d2b-0175-1000-7684-b3b722869496"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dd1-0175-1000-fcf8-d079257ecebb","parent":{"ref":"EID6eec2d2b-0175-1000-7684-b3b722869496"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID59c8cf79-6258-4c2b-9077-0938782c8792"},{"ref":"EID98afccf5-8d86-4499-adc6-4c38852461f4"},{"ref":"EID0b129977-a638-4ae6-a307-a1f313a86264"}]},"parent":{"ref":"EID6eec2d2b-0175-1000-96ad-793659a66fde"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:16:13Z","duration":43,"status":"PASSED"}},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:16:13Z","duration":166,"status":"PASSED"},{"id":"EID6eec2dd2-0175-1000-894a-ce0ba6e95624","testStepResults":{"TestStepResult":[{"id":"EID6eec2dd2-0175-1000-cec7-fad65b923985","parent":{"ref":"EID6eec2dd2-0175-1000-894a-ce0ba6e95624"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2dd2-0175-1000-0669-be3c8711dec0","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2eed-0175-1000-be5a-6f23de2f18c1","parent":{"ref":"EID6eec2dd2-0175-1000-0669-be3c8711dec0"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2eed-0175-1000-ef13-06132e014f42","parent":{"ref":"EID6eec2dd2-0175-1000-0669-be3c8711dec0"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2eed-0175-1000-101a-a6e1c2ec81e4","parent":{"ref":"EID6eec2dd2-0175-1000-0669-be3c8711dec0"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2eed-0175-1000-7ff2-eb9a0669932c","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eec2dd2-0175-1000-0669-be3c8711dec0"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID9296b7d1-3da9-4e30-9071-bb391f0a5f29"},{"ref":"EID54fdc1cf-d5eb-4ddb-9203-c8578ac44cfc"},{"ref":"EIDd2df19bb-d7c3-4f86-b760-99094ad18855"}]},"parent":{"ref":"EID6eec2dd2-0175-1000-894a-ce0ba6e95624"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:16:13Z","duration":71,"status":"FAILED"}]},"parent":{"ref":"EID6eec159d-0175-1000-e93f-22e6a930c869"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:16:13Z","duration":294,"status":"FAILED"}]},"parent":{"ref":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:16:07Z","duration":6492,"status":"FAILED"},{"id":"EID6eec2ef9-0175-1000-af4b-5671e846af15","testCaseResults":{"TestCaseResult":[{"id":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63","testStepResults":{"TestStepResult":[{"id":"EID6eec2ef9-0175-1000-d260-cf1f116d52db","parent":{"ref":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2ef9-0175-1000-46ee-5e2b05801601","parent":{"ref":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":43,"status":"PASSED"},{"id":"EID6eec2ef9-0175-1000-c4ff-fd615ef6f316","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec2fb1-0175-1000-9948-d6b4140e8e69","parent":{"ref":"EID6eec2ef9-0175-1000-c4ff-fd615ef6f316"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2fb1-0175-1000-41f8-875fef7a7f33","parent":{"ref":"EID6eec2ef9-0175-1000-c4ff-fd615ef6f316"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:16:13Z","duration":1,"status":"PASSED"},{"id":"EID6eec2fb2-0175-1000-b3a4-61f514d0c69c","parent":{"ref":"EID6eec2ef9-0175-1000-c4ff-fd615ef6f316"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaf45b1ec-7f0a-4a9d-980b-26eeb8ccc44b"},{"ref":"EIDc82e0a17-ce0c-494e-94a9-daffdf7d42ae"},{"ref":"EIDf3fb3c92-45c8-4b04-b65c-5e9a15c8df6a"}]},"parent":{"ref":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:16:13Z","duration":63,"status":"PASSED"},{"id":"EID6eec2fb2-0175-1000-d8e3-cfb5856f959b","attachments":{"attachment":{"ref":"EID3fd277ef-66ed-4001-af01-392cce5424f4"}},"parent":{"ref":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":0,"status":"PASSED"},{"id":"EID6eec2fc1-0175-1000-79fe-077a388260ca","parent":{"ref":"EID6eec2ef9-0175-1000-694a-c6fdcf1f7a63"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:16:13Z","duration":31,"status":"PASSED"}]},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:16:13Z","duration":231,"status":"PASSED"},{"id":"EID6eec2feb-0175-1000-456a-e078a0c92c6c","testStepResults":{"TestStepResult":[{"id":"EID6eec2feb-0175-1000-d961-31a2251af82c","parent":{"ref":"EID6eec2feb-0175-1000-456a-e078a0c92c6c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:16:13Z","duration":89,"status":"PASSED"},{"id":"EID6eec2fec-0175-1000-6dd1-827741c5916a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3059-0175-1000-275c-e07e889da410","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec2fec-0175-1000-6dd1-827741c5916a"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:16:14Z","duration":33,"status":"FAILED"},{"id":"EID6eec307b-0175-1000-8385-04c372a9f537","parent":{"ref":"EID6eec2fec-0175-1000-6dd1-827741c5916a"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec307b-0175-1000-b1de-a6ffadf51835","parent":{"ref":"EID6eec2fec-0175-1000-6dd1-827741c5916a"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec307b-0175-1000-cf51-78701ecef5c2","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6eec2fec-0175-1000-6dd1-827741c5916a"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"},{"id":"EID6eec307b-0175-1000-cedd-d651aa00f658","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6eec2fec-0175-1000-6dd1-827741c5916a"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDc1a607a9-0aa0-4477-9528-ee8e3ef5e650"},{"ref":"EID137f40d8-7b1b-4f58-a950-2dc57ae0f85a"},{"ref":"EID00b34c92-0e44-419f-808c-51db094aa436"}]},"parent":{"ref":"EID6eec2feb-0175-1000-456a-e078a0c92c6c"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:16:13Z","duration":32,"status":"FAILED"}]},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:16:13Z","duration":144,"status":"FAILED"},{"id":"EID6eec307b-0175-1000-63c8-649bb9c6dbfd","testStepResults":{"TestStepResult":{"id":"EID6eec307b-0175-1000-5d03-7b821c2e250e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3111-0175-1000-df90-36afd0bd80d2","parent":{"ref":"EID6eec307b-0175-1000-5d03-7b821c2e250e"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec3111-0175-1000-7a22-1365f93d3fd4","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec307b-0175-1000-5d03-7b821c2e250e"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:16:14Z","duration":12,"status":"FAILED"},{"id":"EID6eec311d-0175-1000-b703-f2e50dbd0d57","parent":{"ref":"EID6eec307b-0175-1000-5d03-7b821c2e250e"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDae3faf19-77e6-4d24-9312-7db3dc7848a2"},{"ref":"EID291fb86d-3e81-4104-a1c8-16354a036232"},{"ref":"EIDba208a59-3d6d-4db9-b859-292a35580658"}]},"parent":{"ref":"EID6eec307b-0175-1000-63c8-649bb9c6dbfd"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:16:14Z","duration":93,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:16:14Z","duration":162,"status":"FAILED"},{"id":"EID6eec311d-0175-1000-f41a-18bd35777464","testStepResults":{"TestStepResult":{"id":"EID6eec311d-0175-1000-0cfe-e90927820a3f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3183-0175-1000-c2f6-d094c6c36149","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eec311d-0175-1000-0cfe-e90927820a3f"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"},{"id":"EID6eec3183-0175-1000-de28-7182143c7293","parent":{"ref":"EID6eec311d-0175-1000-0cfe-e90927820a3f"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec3183-0175-1000-71e0-f8eb9410c9b5","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec311d-0175-1000-0cfe-e90927820a3f"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:16:14Z","duration":11,"status":"FAILED"},{"id":"EID6eec318e-0175-1000-54cf-f692f142bda2","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6eec311d-0175-1000-0cfe-e90927820a3f"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDfcd381ed-90ad-4e78-b0de-071962c2585e"},{"ref":"EIDdeae4c44-14a4-4fe3-8be3-0433f4b7b8cc"},{"ref":"EID533f922d-9af6-4d2b-92b5-353ecc058b59"}]},"parent":{"ref":"EID6eec311d-0175-1000-f41a-18bd35777464"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:16:14Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:16:14Z","duration":113,"status":"FAILED"},{"id":"EID6eec318e-0175-1000-663b-3d99c7ab3292","testStepResults":{"TestStepResult":{"id":"EID6eec318e-0175-1000-35a9-cddcf8971436","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec31e1-0175-1000-3b16-976d3a70bcd6","parent":{"ref":"EID6eec318e-0175-1000-35a9-cddcf8971436"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec31e1-0175-1000-ebc1-a6288e6e2508","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec318e-0175-1000-35a9-cddcf8971436"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:16:14Z","duration":13,"status":"FAILED"},{"id":"EID6eec31ee-0175-1000-196a-f9957febd11b","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6eec318e-0175-1000-35a9-cddcf8971436"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID83f78bc3-73e9-4100-915c-4c1ea3ed307e"},{"ref":"EIDb5ca39e1-d30a-4ef0-89f4-c2de6c2f6dd4"},{"ref":"EID4c18f5e5-c2e6-4679-b341-8bf3e6393131"}]},"parent":{"ref":"EID6eec318e-0175-1000-663b-3d99c7ab3292"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:16:14Z","duration":25,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:16:14Z","duration":96,"status":"FAILED"},{"id":"EID6eec31ee-0175-1000-43ff-8d639fea4c75","testStepResults":{"TestStepResult":{"id":"EID6eec31ee-0175-1000-e562-f1418423706e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec324f-0175-1000-22e8-d2e9e0350370","parent":{"ref":"EID6eec31ee-0175-1000-e562-f1418423706e"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec324f-0175-1000-fccf-1b8ac4df3e66","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec31ee-0175-1000-e562-f1418423706e"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:16:14Z","duration":34,"status":"FAILED"},{"id":"EID6eec3272-0175-1000-aa16-4a06c54bc9ba","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eec31ee-0175-1000-e562-f1418423706e"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDa26cb939-04a0-46b8-9551-fa594231d7d6"},{"ref":"EIDb28a0d64-dfff-4c53-ad8b-11adfd03a140"},{"ref":"EID6fda55c1-7355-4aef-bc42-aafd5362dec9"}]},"parent":{"ref":"EID6eec31ee-0175-1000-43ff-8d639fea4c75"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:16:14Z","duration":35,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:16:14Z","duration":139,"status":"FAILED"},{"id":"EID6eec3279-0175-1000-f4c0-959166599878","testStepResults":{"TestStepResult":{"id":"EID6eec3279-0175-1000-626d-b0b8c974ff51","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec32f2-0175-1000-8297-cae3b82b4e89","parent":{"ref":"EID6eec3279-0175-1000-626d-b0b8c974ff51"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec32f2-0175-1000-1cc4-3eba6ca46125","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec3279-0175-1000-626d-b0b8c974ff51"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:16:14Z","duration":12,"status":"FAILED"},{"id":"EID6eec32fe-0175-1000-69c7-462507e1d0c5","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6eec3279-0175-1000-626d-b0b8c974ff51"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"FAILED"},{"id":"EID6eec32fe-0175-1000-a06c-a0bdb15e1d11","parent":{"ref":"EID6eec3279-0175-1000-626d-b0b8c974ff51"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec32fe-0175-1000-a960-67eac469e6ae","parent":{"ref":"EID6eec3279-0175-1000-626d-b0b8c974ff51"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID79fd82c9-8244-432a-a040-8f334f95cc7d"},{"ref":"EIDb82d82e8-d897-47a1-b440-54c676e99dfb"},{"ref":"EID299a43e7-f44b-41d8-b5de-3ffd92850671"}]},"parent":{"ref":"EID6eec3279-0175-1000-f4c0-959166599878"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:16:14Z","duration":27,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:16:14Z","duration":134,"status":"FAILED"},{"id":"EID6eec32ff-0175-1000-be92-e3f88622b108","testStepResults":{"TestStepResult":{"id":"EID6eec32ff-0175-1000-257a-27ea35864377","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec33a2-0175-1000-8e6d-15e3565d098e","parent":{"ref":"EID6eec32ff-0175-1000-257a-27ea35864377"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"},{"id":"EID6eec33a2-0175-1000-f6e0-4452362a8b93","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec32ff-0175-1000-257a-27ea35864377"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:16:14Z","duration":14,"status":"FAILED"},{"id":"EID6eec33b0-0175-1000-096f-9c3f2f6f936a","parent":{"ref":"EID6eec32ff-0175-1000-257a-27ea35864377"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:16:14Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5be327a9-3993-4af5-ac12-b3fcd40cd668"},{"ref":"EID64eeef15-8dce-43d8-875e-18ba39d9b292"},{"ref":"EID42009dd5-ca19-48e9-80cf-d63012b9bcf9"}]},"parent":{"ref":"EID6eec32ff-0175-1000-be92-e3f88622b108"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:16:14Z","duration":26,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:16:14Z","duration":177,"status":"FAILED"},{"id":"EID6eec33b1-0175-1000-597b-83741d089f88","testStepResults":{"TestStepResult":{"id":"EID6eec33b1-0175-1000-d420-8957c7143499","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3470-0175-1000-b5c9-ebab05274008","parent":{"ref":"EID6eec33b1-0175-1000-d420-8957c7143499"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec3470-0175-1000-1815-708dbb0e6085","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec33b1-0175-1000-d420-8957c7143499"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:16:15Z","duration":11,"status":"FAILED"},{"id":"EID6eec347b-0175-1000-75c8-157906365f41","parent":{"ref":"EID6eec33b1-0175-1000-d420-8957c7143499"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa6d59100-3dec-44b0-b238-b3889fd1a0ae"},{"ref":"EID98f991ad-8846-46f0-8189-1596c9880861"},{"ref":"EIDdf86bd43-dbae-4da2-81e3-a271245a695e"}]},"parent":{"ref":"EID6eec33b1-0175-1000-597b-83741d089f88"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:16:14Z","duration":29,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:16:14Z","duration":202,"status":"FAILED"},{"id":"EID6eec347b-0175-1000-125b-7f0f866dbb77","testStepResults":{"TestStepResult":{"id":"EID6eec347b-0175-1000-981a-fbf042c6b373","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec359e-0175-1000-8741-dce989930149","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec347b-0175-1000-981a-fbf042c6b373"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:16:15Z","duration":10,"status":"FAILED"},{"id":"EID6eec35a8-0175-1000-475b-ef5276cf5ec3","parent":{"ref":"EID6eec347b-0175-1000-981a-fbf042c6b373"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec35a8-0175-1000-157a-9a41b710235f","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec347b-0175-1000-981a-fbf042c6b373"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"FAILED"},{"id":"EID6eec35a8-0175-1000-055e-8dfb6c45c04f","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eec347b-0175-1000-981a-fbf042c6b373"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDbba4fb06-e672-4f31-ab1a-5940c39c5859"},{"ref":"EIDf893c368-67d1-43fe-8ee2-257c146a8d29"},{"ref":"EID6dbf018d-a7ee-4b0d-b49d-799f27554190"}]},"parent":{"ref":"EID6eec347b-0175-1000-125b-7f0f866dbb77"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:16:15Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:16:15Z","duration":320,"status":"FAILED"},{"id":"EID6eec35bb-0175-1000-5706-acdccb97d1d7","testStepResults":{"TestStepResult":{"id":"EID6eec35bb-0175-1000-4562-e77f4b38c281","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec362a-0175-1000-92a5-c1e7a9bfe3fe","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec35bb-0175-1000-4562-e77f4b38c281"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:16:15Z","duration":13,"status":"FAILED"},{"id":"EID6eec3637-0175-1000-0aa4-2e0e90223aa8","parent":{"ref":"EID6eec35bb-0175-1000-4562-e77f4b38c281"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec3637-0175-1000-2cca-e7f5769d5406","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec35bb-0175-1000-4562-e77f4b38c281"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"FAILED"},{"id":"EID6eec3637-0175-1000-5cd6-9a1fd3362dc4","parent":{"ref":"EID6eec35bb-0175-1000-4562-e77f4b38c281"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDaa296dee-84c0-4784-9e2b-189a363a6d7b"},{"ref":"EIDb76e9728-cd99-4385-9b0e-34f66123d21a"},{"ref":"EID6af5233f-d32a-49e7-a79b-1b04294c77e8"}]},"parent":{"ref":"EID6eec35bb-0175-1000-5706-acdccb97d1d7"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:16:15Z","duration":28,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:16:15Z","duration":124,"status":"FAILED"},{"id":"EID6eec3637-0175-1000-07a3-55435177c1f5","testStepResults":{"TestStepResult":[{"id":"EID6eec3637-0175-1000-182d-644ccfa10ea0","parent":{"ref":"EID6eec3637-0175-1000-07a3-55435177c1f5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:16:15Z","duration":9,"status":"PASSED"},{"id":"EID6eec3641-0175-1000-16cc-ce42123db1e1","parent":{"ref":"EID6eec3637-0175-1000-07a3-55435177c1f5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:16:15Z","duration":158,"status":"PASSED"},{"id":"EID6eec3641-0175-1000-e4ab-f97bef234926","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec36f6-0175-1000-d92d-7054ef41f95a","parent":{"ref":"EID6eec3641-0175-1000-e4ab-f97bef234926"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec36f6-0175-1000-7713-cd404689aeee","parent":{"ref":"EID6eec3641-0175-1000-e4ab-f97bef234926"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec36f6-0175-1000-7a36-e4d8865e1026","parent":{"ref":"EID6eec3641-0175-1000-e4ab-f97bef234926"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec36f6-0175-1000-c6f2-6e7e7f679917","parent":{"ref":"EID6eec3641-0175-1000-e4ab-f97bef234926"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf8dd1fe4-5df2-4750-9624-1b179365d0db"},{"ref":"EID4ea28ab7-d7f2-49cf-af3a-3797c0b48f02"},{"ref":"EID9f021c47-174a-4b1c-b0b2-06b7b44b8b09"}]},"parent":{"ref":"EID6eec3637-0175-1000-07a3-55435177c1f5"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:16:15Z","duration":62,"status":"PASSED"},{"id":"EID6eec36f6-0175-1000-97fb-4064bf1c3833","attachments":{"attachment":{"ref":"EID1b453e7f-e210-4534-bdd1-2f7eabc0781d"}},"parent":{"ref":"EID6eec3637-0175-1000-07a3-55435177c1f5"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:16:15Z","duration":2,"status":"PASSED"},{"id":"EID6eec3702-0175-1000-a769-c251cc70d35a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3771-0175-1000-251a-1252be47b0c9","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec3771-0175-1000-5586-8933351ea45c","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:16:15Z","duration":10,"status":"FAILED"},{"id":"EID6eec377b-0175-1000-68f0-687e8e7068fe","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec377b-0175-1000-a597-9254542c8742","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec377b-0175-1000-95de-cb4dc7d2e56f","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec377b-0175-1000-b33a-414cf82e6a8a","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec377b-0175-1000-e924-75f1ebec4d2c","parent":{"ref":"EID6eec3702-0175-1000-a769-c251cc70d35a"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55b64037-fe30-45b3-b61d-c489121abcb5"},{"ref":"EIDc38cae8d-e94c-4e70-be1b-74de239ae4ef"},{"ref":"EID0757b66e-9463-419a-8260-276acdec138a"}]},"parent":{"ref":"EID6eec3637-0175-1000-07a3-55435177c1f5"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:16:15Z","duration":26,"status":"FAILED"}]},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:16:15Z","duration":324,"status":"FAILED"},{"id":"EID6eec377c-0175-1000-6bf7-49f9e74b8819","testStepResults":{"TestStepResult":[{"id":"EID6eec377c-0175-1000-69ff-4eeb110dd1f4","parent":{"ref":"EID6eec377c-0175-1000-6bf7-49f9e74b8819"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:16:15Z","duration":0,"status":"PASSED"},{"id":"EID6eec377c-0175-1000-3494-c6a2a4462a8f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec38a1-0175-1000-8ab4-64d00fc1e7a1","parent":{"ref":"EID6eec377c-0175-1000-3494-c6a2a4462a8f"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec38a2-0175-1000-e3f1-0c5d5ca9f3e2","parent":{"ref":"EID6eec377c-0175-1000-3494-c6a2a4462a8f"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec38a2-0175-1000-8e1c-f34d8a08fee5","parent":{"ref":"EID6eec377c-0175-1000-3494-c6a2a4462a8f"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec38a2-0175-1000-9d8b-e1aed37f792a","parent":{"ref":"EID6eec377c-0175-1000-3494-c6a2a4462a8f"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb284d9ea-26ab-410a-8ce0-7668cdd91a71"},{"ref":"EIDf1c169ac-10c9-4384-b2aa-5bc1d9ab13d5"},{"ref":"EID3d195f8e-a423-4aba-b27b-909fcb705699"}]},"parent":{"ref":"EID6eec377c-0175-1000-6bf7-49f9e74b8819"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:16:15Z","duration":144,"status":"PASSED"},{"id":"EID6eec38aa-0175-1000-5390-3470b29ab736","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eec38be-0175-1000-3402-14239fe7cd9a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec39a8-0175-1000-1907-12aebde977b2","parent":{"ref":"EID6eec38be-0175-1000-3402-14239fe7cd9a"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec39a8-0175-1000-78ff-e94d8eaf6960","parent":{"ref":"EID6eec38be-0175-1000-3402-14239fe7cd9a"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec39a8-0175-1000-d977-64be719f97bc","parent":{"ref":"EID6eec38be-0175-1000-3402-14239fe7cd9a"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID98976744-400b-4aa6-99e1-3ee05a1ff65b"},{"ref":"EID64273053-525d-40fd-a9e7-a5d0c94b9c3d"},{"ref":"EIDfb2d6e63-e333-4393-9cd5-9314908db83b"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:16Z","duration":149,"status":"PASSED"},{"id":"EID6eec39aa-0175-1000-ae62-8ea41a73d580","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3acb-0175-1000-5e0f-79cf1b11a42f","parent":{"ref":"EID6eec39aa-0175-1000-ae62-8ea41a73d580"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3acb-0175-1000-35f4-db8c7e080d62","parent":{"ref":"EID6eec39aa-0175-1000-ae62-8ea41a73d580"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3acb-0175-1000-57cf-26b62844d8fe","parent":{"ref":"EID6eec39aa-0175-1000-ae62-8ea41a73d580"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe7def34a-0a11-427d-925d-aeab8da40ed3"},{"ref":"EIDdaad4a79-76ae-42b9-813a-da178d8e7793"},{"ref":"EID9501ff0b-636b-4ab3-9b7d-4035d86b3aba"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:16Z","duration":149,"status":"PASSED"},{"id":"EID6eec3acc-0175-1000-df5a-7536164a1710","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3b21-0175-1000-cfc6-d2d9995dea8f","parent":{"ref":"EID6eec3acc-0175-1000-df5a-7536164a1710"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b21-0175-1000-fcc0-371119792819","parent":{"ref":"EID6eec3acc-0175-1000-df5a-7536164a1710"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b21-0175-1000-55ef-c1848f80d817","parent":{"ref":"EID6eec3acc-0175-1000-df5a-7536164a1710"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa18afff2-cf51-4867-9937-7585bd0ddb17"},{"ref":"EID424bbad4-224d-4f2d-9931-47247c2e021c"},{"ref":"EID286e9dcd-a55e-4830-96a0-a92ce2c5c248"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:16:16Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6eec377c-0175-1000-6bf7-49f9e74b8819"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:16:16Z","duration":631,"status":"PASSED"},{"id":"EID6eec3b22-0175-1000-e019-fb76f27d47b9","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3b79-0175-1000-39c2-8221bbb3bc06","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec3b22-0175-1000-e019-fb76f27d47b9"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:16:16Z","duration":11,"status":"FAILED"},{"id":"EID6eec3b84-0175-1000-abd8-e40dca9ba76e","parent":{"ref":"EID6eec3b22-0175-1000-e019-fb76f27d47b9"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"},{"id":"EID6eec3b84-0175-1000-1bb6-8befc8c7c138","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec3b22-0175-1000-e019-fb76f27d47b9"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"FAILED"},{"id":"EID6eec3b84-0175-1000-a717-b0a9e571ae4a","parent":{"ref":"EID6eec3b22-0175-1000-e019-fb76f27d47b9"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:16:16Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDef6f659f-b205-4e8e-ad88-4996e86a9255"},{"ref":"EID504c9aaa-3514-411b-a73d-48e9a9f02c46"},{"ref":"EIDa1a31771-2828-4fb0-b5d8-4c25d8e6fed4"}]},"parent":{"ref":"EID6eec377c-0175-1000-6bf7-49f9e74b8819"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:16:16Z","duration":24,"status":"FAILED"}]},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:16:15Z","duration":1032,"status":"FAILED"},{"id":"EID6eec3b84-0175-1000-f965-a51257f252ce","testStepResults":{"TestStepResult":{"id":"EID6eec3b84-0175-1000-efcb-290460177943","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eec3be5-0175-1000-e490-6eac7e786be6","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eec3b84-0175-1000-efcb-290460177943"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:16:16Z","duration":10,"status":"FAILED"},{"id":"EID6eec3bef-0175-1000-0d4a-4539f7b29e58","parent":{"ref":"EID6eec3b84-0175-1000-efcb-290460177943"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"},{"id":"EID6eec3bef-0175-1000-0979-6251625808e6","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eec3b84-0175-1000-efcb-290460177943"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"FAILED"},{"id":"EID6eec3bef-0175-1000-8fba-25f4e48f2be5","parent":{"ref":"EID6eec3b84-0175-1000-efcb-290460177943"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8dd863ca-b0df-401b-8f59-b1845b786f23"},{"ref":"EIDe2852393-df68-4fae-a6f3-50a0721f383c"},{"ref":"EID3b2bffca-9229-4379-aa5b-a355b4271ff4"}]},"parent":{"ref":"EID6eec3b84-0175-1000-f965-a51257f252ce"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:16:16Z","duration":35,"status":"FAILED"}},"parent":{"ref":"EID6eec2ef9-0175-1000-af4b-5671e846af15"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:16:16Z","duration":107,"status":"FAILED"}]},"parent":{"ref":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:16:13Z","duration":3318,"status":"FAILED"},{"id":"EID6eec3bef-0175-1000-a75f-00c8e10228f6","testCaseResults":{"TestCaseResult":[{"id":"EID6eec3bef-0175-1000-197e-eacd9bf8c938","testStepResults":{"TestStepResult":{"id":"EID6eec3bef-0175-1000-0da3-a912d42ef2ae","parent":{"ref":"EID6eec3bef-0175-1000-197e-eacd9bf8c938"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:16:17Z","duration":1,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-3479-0aeca82ccc63","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-04ed-5bad5882f010","parent":{"ref":"EID6eec3bf0-0175-1000-3479-0aeca82ccc63"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-b72d-13f321f75953","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-bf67-ee1189b795b8","parent":{"ref":"EID6eec3bf0-0175-1000-b72d-13f321f75953"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-076d-f318b61ade21","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-94f8-728374688951","parent":{"ref":"EID6eec3bf0-0175-1000-076d-f318b61ade21"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-0700-2c98d2c280a8","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-87d8-d80a59ca5b4b","parent":{"ref":"EID6eec3bf0-0175-1000-0700-2c98d2c280a8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-5d2e-a54bc4355157","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-2fff-06ba94a6a7ca","parent":{"ref":"EID6eec3bf0-0175-1000-5d2e-a54bc4355157"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"},{"id":"EID6eec3bf0-0175-1000-74af-e29465095747","testStepResults":{"TestStepResult":{"id":"EID6eec3bf0-0175-1000-1822-fc3c7444d2e1","parent":{"ref":"EID6eec3bf0-0175-1000-74af-e29465095747"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:16:17Z","duration":409,"status":"SKIPPED"}},"parent":{"ref":"EID6eec3bef-0175-1000-a75f-00c8e10228f6"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:16:17Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:16:17Z","duration":1,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"Message","id":"EID3fd277ef-66ed-4001-af01-392cce5424f4","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID3fd277ef-66ed-4001-af01-392cce5424f4"}},{"type":"ServiceResponse","id":"EIDb2834caf-661c-46f4-a0bf-f31138842c88","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb2834caf-661c-46f4-a0bf-f31138842c88"}},{"type":"GetParameter","id":"EID42009dd5-ca19-48e9-80cf-d63012b9bcf9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID8b293cdb-4f04-48f7-b09a-c81007aac456","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID8b293cdb-4f04-48f7-b09a-c81007aac456"}},{"type":"ServiceEndpoint","id":"EIDa26cb939-04a0-46b8-9551-fa594231d7d6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID79fd82c9-8244-432a-a040-8f334f95cc7d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID533f922d-9af6-4d2b-92b5-353ecc058b59","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDef6f659f-b205-4e8e-ad88-4996e86a9255","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID56f67324-574c-46d8-bc08-f493a927d010","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID55e282b8-7713-4773-827c-83d1006a858e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID55e282b8-7713-4773-827c-83d1006a858e"}},{"type":"ServiceResponse","id":"EIDfb658e6f-bcde-464b-8ea9-6709f45e8930","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDfb658e6f-bcde-464b-8ea9-6709f45e8930"}},{"type":"ServiceEndpoint","id":"EID32ff7191-cef3-4a4d-9ebb-4f62b56d7dd9","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDb4c05287-d80a-4c1b-a609-56e3b6a867c5","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb4c05287-d80a-4c1b-a609-56e3b6a867c5"}},{"type":"ServiceEndpoint","id":"EIDaf45b1ec-7f0a-4a9d-980b-26eeb8ccc44b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDa09544ed-aabf-4d70-a646-76b73f213758","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID0b129977-a638-4ae6-a307-a1f313a86264","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID32a2cb5f-6a37-4b09-9abb-7fed744b700d","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID32a2cb5f-6a37-4b09-9abb-7fed744b700d"}},{"type":"Message","id":"EID0b947a01-ab19-42bb-918c-06a5060cf655","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID0b947a01-ab19-42bb-918c-06a5060cf655"}},{"type":"LogFile","id":"EID062936dd-41e8-4966-b51b-93784559492e","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID062936dd-41e8-4966-b51b-93784559492e"}},{"type":"Message","id":"EID24589f6c-c6b7-4cec-83f6-982ca02cd87c","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID24589f6c-c6b7-4cec-83f6-982ca02cd87c"}},{"type":"ServiceEndpoint","id":"EIDee791fae-168a-4920-976f-47df1c3058c6","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"GetParameter","id":"EID299a43e7-f44b-41d8-b5de-3ffd92850671","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDa7c43eaa-a564-4502-9074-35ea1a52b3fc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDa7c43eaa-a564-4502-9074-35ea1a52b3fc"}},{"type":"ServiceEndpoint","id":"EID081c770d-401e-4547-b32c-5394aa3dad49","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID64eeef15-8dce-43d8-875e-18ba39d9b292","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID64eeef15-8dce-43d8-875e-18ba39d9b292"}},{"type":"Message","id":"EID425c5177-3004-4c57-965a-d80fa761e31f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID425c5177-3004-4c57-965a-d80fa761e31f"}},{"type":"Message","id":"EID6b2a2702-fb11-42d9-b37a-0111083fa37f","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID6b2a2702-fb11-42d9-b37a-0111083fa37f"}},{"type":"ServiceEndpoint","id":"EIDfdfd7d5a-7ea8-4dd2-976b-d9c5c71b85b3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"Message","id":"EIDf8a5ed1c-1f1d-4d20-951d-5985e3dd9da3","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDf8a5ed1c-1f1d-4d20-951d-5985e3dd9da3"}},{"type":"ServiceEndpoint","id":"EIDb7643c44-5002-4261-8c80-e6d3a517b007","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf1c169ac-10c9-4384-b2aa-5bc1d9ab13d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDf1c169ac-10c9-4384-b2aa-5bc1d9ab13d5"}},{"type":"ServiceResponse","id":"EID0b526571-754e-4d61-ba59-940a823cfb74","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID0b526571-754e-4d61-ba59-940a823cfb74"}},{"type":"ServiceResponse","id":"EID77440391-bed4-4f4a-80fd-a38ff016e0af","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID77440391-bed4-4f4a-80fd-a38ff016e0af"}},{"type":"ServiceEndpoint","id":"EID5f85fced-3619-4d81-9a6d-8c0d0ba9a53a","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID5c8b6a88-98ba-4dfd-8a58-14f835f507c0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceEndpoint","id":"EIDb284d9ea-26ab-410a-8ce0-7668cdd91a71","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EIDc6a318c6-fdcc-4f68-9f02-305cedf62d40","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDc6a318c6-fdcc-4f68-9f02-305cedf62d40"}},{"type":"Error","id":"EID7040df3f-6175-4b4f-afb8-47c1200fb99d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID7040df3f-6175-4b4f-afb8-47c1200fb99d"}},{"type":"GetParameter","id":"EID1e255e9e-a501-4190-a567-343e38f9142c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID9f021c47-174a-4b1c-b0b2-06b7b44b8b09","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID4c650a5f-239e-43fb-90bc-8e53dc1f00fa","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID4c650a5f-239e-43fb-90bc-8e53dc1f00fa"}},{"type":"GetParameter","id":"EID0882cb8c-5ac3-4035-995b-58c38f9886b6","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID98afccf5-8d86-4499-adc6-4c38852461f4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID98afccf5-8d86-4499-adc6-4c38852461f4"}},{"type":"GetParameter","id":"EIDee5fc917-149e-4fe8-9259-0df94e7bb4bd","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDae3faf19-77e6-4d24-9312-7db3dc7848a2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID51525e6d-e651-44aa-b57c-764d627fbc59","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID614cff79-14d0-4da7-bb7a-4e9486ac841d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0a309c0f-a8d4-46bc-8736-6b79b1b78fd2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID14b5fc6c-aa6a-4c63-bc13-1ff23dd5b6b3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDeee498c1-24c0-4f85-8f50-426947979f03","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDeee498c1-24c0-4f85-8f50-426947979f03"}},{"type":"ServiceResponse","id":"EID7ce44813-c998-49c3-b400-952c53512bc4","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID7ce44813-c998-49c3-b400-952c53512bc4"}},{"type":"ServiceResponse","id":"EID46487097-9bcb-45d6-85ae-2be7179bad64","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID46487097-9bcb-45d6-85ae-2be7179bad64"}},{"type":"ServiceEndpoint","id":"EID69d74d5e-57ea-44bc-a536-72f58ed3834b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb442964f-8bc4-4f4b-9af3-551815de8ee1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID866d97e1-5302-457d-b1b8-3b886efddb32","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID866d97e1-5302-457d-b1b8-3b886efddb32"}},{"type":"ServiceResponse","id":"EID4b15690f-5bad-4d27-8659-b00c176cc63f","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID4b15690f-5bad-4d27-8659-b00c176cc63f"}},{"type":"Error","id":"EID78b9617f-77ca-4d54-8209-7c86662fc435","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID78b9617f-77ca-4d54-8209-7c86662fc435"}},{"type":"ServiceResponse","id":"EID504c9aaa-3514-411b-a73d-48e9a9f02c46","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID504c9aaa-3514-411b-a73d-48e9a9f02c46"}},{"type":"GetParameter","id":"EID5cee4ef0-4ca2-4d07-900e-50acebe898aa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf893c368-67d1-43fe-8ee2-257c146a8d29","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDf893c368-67d1-43fe-8ee2-257c146a8d29"}},{"type":"GetParameter","id":"EID8f9bad36-0e05-4c44-98a4-db6e514d0cdf","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID153bb2f5-517a-490e-bbc5-1661554e007b","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID153bb2f5-517a-490e-bbc5-1661554e007b"}},{"type":"GetParameter","id":"EIDa1a31771-2828-4fb0-b5d8-4c25d8e6fed4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDcebe8069-ef3f-453a-8c5f-094aa73542d5","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDcebe8069-ef3f-453a-8c5f-094aa73542d5"}},{"type":"ServiceResponse","id":"EID64273053-525d-40fd-a9e7-a5d0c94b9c3d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID64273053-525d-40fd-a9e7-a5d0c94b9c3d"}},{"type":"ServiceEndpoint","id":"EID44196e31-667c-468e-aaa3-cef8a1b72f92","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDaa296dee-84c0-4784-9e2b-189a363a6d7b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID357b9aa4-c1f3-43f0-9e50-d1ca56471a03","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID795bb66d-e2ba-4c6d-b757-c017499fcc5d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID795bb66d-e2ba-4c6d-b757-c017499fcc5d"}},{"type":"ServiceResponse","id":"EID01b3b878-07bd-41f9-a3fe-fe846b3aa266","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID01b3b878-07bd-41f9-a3fe-fe846b3aa266"}},{"type":"ServiceEndpoint","id":"EID9296b7d1-3da9-4e30-9071-bb391f0a5f29","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDe7def34a-0a11-427d-925d-aeab8da40ed3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"ServiceEndpoint","id":"EIDbba4fb06-e672-4f31-ab1a-5940c39c5859","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID0a31d6f7-06b1-4687-ab31-e528efd2cacd","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID0a31d6f7-06b1-4687-ab31-e528efd2cacd"}},{"type":"ServiceEndpoint","id":"EID83f78bc3-73e9-4100-915c-4c1ea3ed307e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDd2df19bb-d7c3-4f86-b760-99094ad18855","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID291fb86d-3e81-4104-a1c8-16354a036232","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID291fb86d-3e81-4104-a1c8-16354a036232"}},{"type":"Message","id":"EID88a8a54f-3e84-4fa7-bbb7-b5faf654f254","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID88a8a54f-3e84-4fa7-bbb7-b5faf654f254"}},{"type":"Error","id":"EIDe5968f51-9268-448f-812a-0a8735fd88e9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDe5968f51-9268-448f-812a-0a8735fd88e9"}},{"type":"GetParameter","id":"EID9501ff0b-636b-4ab3-9b7d-4035d86b3aba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EID0757b66e-9463-419a-8260-276acdec138a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID55330873-b96d-4016-b8ef-98b9561a8978","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID55330873-b96d-4016-b8ef-98b9561a8978"}},{"type":"Message","id":"EID007ba370-09b2-4928-a02e-0b5a98bb7fdb","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID007ba370-09b2-4928-a02e-0b5a98bb7fdb"}},{"type":"ServiceResponse","id":"EIDdeae4c44-14a4-4fe3-8be3-0433f4b7b8cc","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDdeae4c44-14a4-4fe3-8be3-0433f4b7b8cc"}},{"type":"ServiceResponse","id":"EIDb5ca39e1-d30a-4ef0-89f4-c2de6c2f6dd4","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb5ca39e1-d30a-4ef0-89f4-c2de6c2f6dd4"}},{"type":"Error","id":"EIDbfb99ad5-a51c-4b11-9c79-59597801a3a1","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDbfb99ad5-a51c-4b11-9c79-59597801a3a1"}},{"type":"Message","id":"EID0b1adea6-1ca9-4d00-bffd-f70d58fec211","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID0b1adea6-1ca9-4d00-bffd-f70d58fec211"}},{"type":"GetParameter","id":"EID08dba7a0-bd91-4780-af0a-0b673b200d9b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDdf86bd43-dbae-4da2-81e3-a271245a695e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDfcd381ed-90ad-4e78-b0de-071962c2585e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID5be327a9-3993-4af5-ac12-b3fcd40cd668","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID1041e9e7-0818-4304-b05b-22d335102a21","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID59c8cf79-6258-4c2b-9077-0938782c8792","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID9ff70943-ad45-4d3a-b416-80c54896d476","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID9ff70943-ad45-4d3a-b416-80c54896d476"}},{"type":"GetParameter","id":"EID0938fc39-5b4d-49d8-bf51-aa267c178ddb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDb82d82e8-d897-47a1-b440-54c676e99dfb","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb82d82e8-d897-47a1-b440-54c676e99dfb"}},{"type":"Message","id":"EID0878de10-46df-4c4e-b284-b6adde054838","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID0878de10-46df-4c4e-b284-b6adde054838"}},{"type":"Message","id":"EIDaac5d5ae-9f51-4a67-8ffe-fdcfe15430dc","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDaac5d5ae-9f51-4a67-8ffe-fdcfe15430dc"}},{"type":"Message","id":"EID577d066f-f6a4-461e-a1eb-29568e89e888","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID577d066f-f6a4-461e-a1eb-29568e89e888"}},{"type":"Message","id":"EIDbe79c0ed-c06b-46e8-950c-0b1d3216fa18","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDbe79c0ed-c06b-46e8-950c-0b1d3216fa18"}},{"type":"GetParameter","id":"EID4c18f5e5-c2e6-4679-b341-8bf3e6393131","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6dbf018d-a7ee-4b0d-b49d-799f27554190","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDa18afff2-cf51-4867-9937-7585bd0ddb17","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID286e9dcd-a55e-4830-96a0-a92ce2c5c248","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"GetParameter","id":"EID61e234c0-6b21-457d-a556-7f6c073d273b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID3d195f8e-a423-4aba-b27b-909fcb705699","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EID3cc25015-4c6a-48b2-b0c1-1d0333029fad","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID3cc25015-4c6a-48b2-b0c1-1d0333029fad"}},{"type":"ServiceEndpoint","id":"EIDc8601958-5856-4e5c-8d17-b16ccbb17389","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf77b3532-56af-4987-b6b2-840e64d20918","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDc82e0a17-ce0c-494e-94a9-daffdf7d42ae","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDc82e0a17-ce0c-494e-94a9-daffdf7d42ae"}},{"type":"Error","id":"EIDc21909a9-b2b5-436d-813a-86d9e4dcd9eb","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDc21909a9-b2b5-436d-813a-86d9e4dcd9eb"}},{"type":"ServiceResponse","id":"EIDce3269d7-ed09-4b01-9a5a-a64d16eab5d9","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDce3269d7-ed09-4b01-9a5a-a64d16eab5d9"}},{"type":"GetParameter","id":"EID00b34c92-0e44-419f-808c-51db094aa436","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID8dd863ca-b0df-401b-8f59-b1845b786f23","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID8ac55249-adb2-416f-8322-2446e3518ec2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID8ac55249-adb2-416f-8322-2446e3518ec2"}},{"type":"ServiceResponse","id":"EIDc38cae8d-e94c-4e70-be1b-74de239ae4ef","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDc38cae8d-e94c-4e70-be1b-74de239ae4ef"}},{"type":"ServiceResponse","id":"EIDb28a0d64-dfff-4c53-ad8b-11adfd03a140","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb28a0d64-dfff-4c53-ad8b-11adfd03a140"}},{"type":"Message","id":"EIDbc3516ba-0561-4e52-bdcf-e49000776bc6","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDbc3516ba-0561-4e52-bdcf-e49000776bc6"}},{"type":"ServiceResponse","id":"EIDdaad4a79-76ae-42b9-813a-da178d8e7793","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDdaad4a79-76ae-42b9-813a-da178d8e7793"}},{"type":"Message","id":"EIDe8a0780e-1a4a-4fb6-9320-5ff280a6feb1","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDe8a0780e-1a4a-4fb6-9320-5ff280a6feb1"}},{"type":"GetParameter","id":"EID5a0b20f1-14b5-4028-abac-6a932e45a300","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID98f991ad-8846-46f0-8189-1596c9880861","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID98f991ad-8846-46f0-8189-1596c9880861"}},{"type":"GetParameter","id":"EIDba208a59-3d6d-4db9-b859-292a35580658","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID925c2a3b-ae2b-495a-adfe-a4e1c113de1c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID925c2a3b-ae2b-495a-adfe-a4e1c113de1c"}},{"type":"GetParameter","id":"EID0e64f7e8-c4eb-4bcb-9696-498ebe631f31","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDe77b31f6-a081-431c-a062-43bef4ab0e50","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDe77b31f6-a081-431c-a062-43bef4ab0e50"}},{"type":"GetParameter","id":"EIDdaff20d6-3389-4ebe-b33e-80ea202e5b7d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID6c917d17-d2cb-4c59-9341-7d04f0ec2a80","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDdbb16404-6231-4dc1-9b9b-1b16f1b76287","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDdbb16404-6231-4dc1-9b9b-1b16f1b76287"}},{"type":"Error","id":"EID9102016b-03ed-48d5-ae06-f9224cdcfc96","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID9102016b-03ed-48d5-ae06-f9224cdcfc96"}},{"type":"GetParameter","id":"EID6af5233f-d32a-49e7-a79b-1b04294c77e8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID3fd843e9-3f8d-4615-9200-2fb9e88d0612","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf8dd1fe4-5df2-4750-9624-1b179365d0db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID137f40d8-7b1b-4f58-a950-2dc57ae0f85a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID137f40d8-7b1b-4f58-a950-2dc57ae0f85a"}},{"type":"Error","id":"EID70867584-2407-4639-a196-fef369fafff1","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID70867584-2407-4639-a196-fef369fafff1"}},{"type":"ServiceEndpoint","id":"EIDa6d59100-3dec-44b0-b238-b3889fd1a0ae","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDb76e9728-cd99-4385-9b0e-34f66123d21a","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDb76e9728-cd99-4385-9b0e-34f66123d21a"}},{"type":"ServiceResponse","id":"EIDe2852393-df68-4fae-a6f3-50a0721f383c","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDe2852393-df68-4fae-a6f3-50a0721f383c"}},{"type":"GetParameter","id":"EID3b2bffca-9229-4379-aa5b-a355b4271ff4","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDefb3feee-d6d5-4926-806b-592965d6570d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDefb3feee-d6d5-4926-806b-592965d6570d"}},{"type":"Message","id":"EID1b453e7f-e210-4534-bdd1-2f7eabc0781d","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID1b453e7f-e210-4534-bdd1-2f7eabc0781d"}},{"type":"ServiceResponse","id":"EIDd17426ae-5239-45b7-acf2-239e022207e7","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDd17426ae-5239-45b7-acf2-239e022207e7"}},{"type":"GetParameter","id":"EIDfb2d6e63-e333-4393-9cd5-9314908db83b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID3fc24162-2346-4025-bac3-bcfeae127cd7","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID3fc24162-2346-4025-bac3-bcfeae127cd7"}},{"type":"GetParameter","id":"EID6fda55c1-7355-4aef-bc42-aafd5362dec9","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EIDc98eb81f-5cc7-42b6-ace0-9ab984b6a12a","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDc98eb81f-5cc7-42b6-ace0-9ab984b6a12a"}},{"type":"Message","id":"EID7eccc363-8c74-40b4-936a-ce2d4381860a","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID7eccc363-8c74-40b4-936a-ce2d4381860a"}},{"type":"Error","id":"EID758721a1-8bb8-4428-b7f9-b2857212b369","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID758721a1-8bb8-4428-b7f9-b2857212b369"}},{"type":"ServiceEndpoint","id":"EID98976744-400b-4aa6-99e1-3ee05a1ff65b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID4ea28ab7-d7f2-49cf-af3a-3797c0b48f02","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID4ea28ab7-d7f2-49cf-af3a-3797c0b48f02"}},{"type":"ServiceResponse","id":"EID424bbad4-224d-4f2d-9931-47247c2e021c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID424bbad4-224d-4f2d-9931-47247c2e021c"}},{"type":"Message","id":"EIDe0d44677-5361-4651-860a-6cf520061513","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EIDe0d44677-5361-4651-860a-6cf520061513"}},{"type":"ServiceEndpoint","id":"EIDd7b5f52c-40e5-40b2-9462-167792bcc6db","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID92caf2c3-64ab-4a3f-b185-f70abb33a9ea","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID92caf2c3-64ab-4a3f-b185-f70abb33a9ea"}},{"type":"GetParameter","id":"EID2c05f1f6-950e-471e-b870-3217c8278ad1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID55b64037-fe30-45b3-b61d-c489121abcb5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID705d89e0-e401-4eb2-b7f5-cde85fd38b71","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID705d89e0-e401-4eb2-b7f5-cde85fd38b71"}},{"type":"ServiceResponse","id":"EID54fdc1cf-d5eb-4ddb-9203-c8578ac44cfc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID27b21af0-e7cd-4122-9ae6-d769dd28a1d8/Attachments/EID54fdc1cf-d5eb-4ddb-9203-c8578ac44cfc"}},{"type":"ServiceEndpoint","id":"EIDc1a607a9-0aa0-4477-9528-ee8e3ef5e650","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf5dc5238-9404-4bc3-a1d9-9076521eb370","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDf3fb3c92-45c8-4b04-b65c-5e9a15c8df6a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:16:06Z","duration":10544,"status":"FAILED"}}}}}
11:16:29.395 [print] EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544
11:16:29.396 [print] FAILED
11:16:29.396 [print] FAILED
11:16:29.396 [print] Conformance Class Download Service - Pre-defined Atom
11:16:29.404 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544.json
11:16:29.404 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/ce5bdaba-3f42-4c3b-bc85-da2ef9f4c544.json
11:16:29.404 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDce5bdaba-3f42-4c3b-bc85-da2ef9f4c544/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:29.425 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:16:29.425 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:01.011 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:14:01.012 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 270
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}}}
11:14:07.739 response time in milliseconds: 5982.03
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:06 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:05 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/758fffc6-1a63-4512-a1d2-2927fd0bc47d.json","testRuns":{"TestRun":{"id":"EID758fffc6-1a63-4512-a1d2-2927fd0bc47d","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:03.846Z","testTasks":{"TestTask":{"id":"EIDa4730d5b-83ba-4456-b1e7-a95c228aaeeb","parent":{"ref":"EID758fffc6-1a63-4512-a1d2-2927fd0bc47d"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID9de7fd2a-2391-4223-bc11-09b6cddda863"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID9de7fd2a-2391-4223-bc11-09b6cddda863","remoteResource":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:01.462Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:02.968Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:07.742 [print] EID758fffc6-1a63-4512-a1d2-2927fd0bc47d
11:14:07.742 [print] UNDEFINED
11:14:07.743 [print] Conformance Class Download Service - Pre-defined Atom
11:14:07.743 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/758fffc6-1a63-4512-a1d2-2927fd0bc47d.json
11:14:07.743 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/log
11:14:07.743 [print] statuspath TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d
11:14:07.743 [print] progresspath TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
11:14:07.743 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:08.255 response time in milliseconds: 511.11
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:08 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"16","max":"17","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized"]}
11:14:08.259 [print] {
"val": "16",
"max": "17",
"log": [
"28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)",
"28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:03 - Preparing 1 Test Task:",
"28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)",
"28.10.2020 11:14:03 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:03 - with parameters: ",
"28.10.2020 11:14:03 - etf.testcases = *",
"28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:03 - Setting state to CREATED",
"28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z",
"28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:06 - Project Properties: ",
"28.10.2020 11:14:06 - etf.testcases - * ",
"28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ",
"28.10.2020 11:14:06 - username - ",
"28.10.2020 11:14:06 - authUser - ",
"28.10.2020 11:14:06 - authMethod - basic ",
"28.10.2020 11:14:06 - TestRunTask initialized"
]
}
11:14:08.260 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:08.775 response time in milliseconds: 514.30
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:08 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized"]}
11:14:08.780 retry condition not satisfied: response.val == response.max
11:14:08.780 sleeping before retry #1
11:14:13.782 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:14.297 response time in milliseconds: 514.87
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:14 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"74","max":"75","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027"]}
11:14:14.297 retry condition not satisfied: response.val == response.max
11:14:14.297 sleeping before retry #2
11:14:19.298 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:19.817 response time in milliseconds: 518.60
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:14:19 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:19.818 retry condition not satisfied: response.val == response.max
11:14:19.818 sleeping before retry #3
11:14:24.818 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:25.322 response time in milliseconds: 503.24
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:14:25 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:25.322 retry condition not satisfied: response.val == response.max
11:14:25.322 sleeping before retry #4
11:14:30.323 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:30.850 response time in milliseconds: 523.77
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:14:30 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:30.850 retry condition not satisfied: response.val == response.max
11:14:30.851 sleeping before retry #5
11:14:35.852 request:
8 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
8 > Accept-Encoding: gzip,deflate
8 > Connection: Keep-Alive
8 > Host: inspire.ec.europa.eu
8 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:36.359 response time in milliseconds: 506.84
8 < 200
8 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
8 < Connection: Keep-Alive
8 < Content-Type: application/json;charset=UTF-8
8 < Date: Wed, 28 Oct 2020 11:14:36 GMT
8 < Keep-Alive: timeout=3, max=100
8 < Server: nginx/1.16.1
8 < Vary: Origin
8 < X-Frame-Options: SAMEORIGIN
8 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:36.368 retry condition not satisfied: response.val == response.max
11:14:36.368 sleeping before retry #6
11:14:41.369 request:
9 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
9 > Accept-Encoding: gzip,deflate
9 > Connection: Keep-Alive
9 > Host: inspire.ec.europa.eu
9 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:41.899 response time in milliseconds: 529.96
9 < 200
9 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
9 < Connection: Keep-Alive
9 < Content-Type: application/json;charset=UTF-8
9 < Date: Wed, 28 Oct 2020 11:14:41 GMT
9 < Keep-Alive: timeout=3, max=100
9 < Server: nginx/1.16.1
9 < Vary: Origin
9 < X-Frame-Options: SAMEORIGIN
9 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:41.900 retry condition not satisfied: response.val == response.max
11:14:41.900 sleeping before retry #7
11:14:46.900 request:
10 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
10 > Accept-Encoding: gzip,deflate
10 > Connection: Keep-Alive
10 > Host: inspire.ec.europa.eu
10 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:47.411 response time in milliseconds: 510.48
10 < 200
10 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
10 < Connection: Keep-Alive
10 < Content-Type: application/json;charset=UTF-8
10 < Date: Wed, 28 Oct 2020 11:14:47 GMT
10 < Keep-Alive: timeout=3, max=100
10 < Server: nginx/1.16.1
10 < Vary: Origin
10 < X-Frame-Options: SAMEORIGIN
10 < X-XSS-Protection: 1; mode=block
{"val":"178","max":"179","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027"]}
11:14:47.411 retry condition not satisfied: response.val == response.max
11:14:47.411 sleeping before retry #8
11:14:52.412 request:
11 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
11 > Accept-Encoding: gzip,deflate
11 > Connection: Keep-Alive
11 > Host: inspire.ec.europa.eu
11 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:52.986 response time in milliseconds: 572.73
11 < 200
11 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
11 < Connection: Keep-Alive
11 < Content-Type: application/json;charset=UTF-8
11 < Date: Wed, 28 Oct 2020 11:14:52 GMT
11 < Keep-Alive: timeout=3, max=100
11 < Server: nginx/1.16.1
11 < Vary: Origin
11 < X-Frame-Options: SAMEORIGIN
11 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:14:52.986 retry condition not satisfied: response.val == response.max
11:14:52.987 sleeping before retry #9
11:14:57.987 request:
12 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
12 > Accept-Encoding: gzip,deflate
12 > Connection: Keep-Alive
12 > Host: inspire.ec.europa.eu
12 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:58.518 response time in milliseconds: 521.65
12 < 200
12 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
12 < Connection: Keep-Alive
12 < Content-Type: application/json;charset=UTF-8
12 < Date: Wed, 28 Oct 2020 11:14:58 GMT
12 < Keep-Alive: timeout=3, max=100
12 < Server: nginx/1.16.1
12 < Vary: Origin
12 < X-Frame-Options: SAMEORIGIN
12 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:14:58.518 retry condition not satisfied: response.val == response.max
11:14:58.518 sleeping before retry #10
11:15:03.519 request:
13 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
13 > Accept-Encoding: gzip,deflate
13 > Connection: Keep-Alive
13 > Host: inspire.ec.europa.eu
13 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:04.035 response time in milliseconds: 516.19
13 < 200
13 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
13 < Connection: Keep-Alive
13 < Content-Type: application/json;charset=UTF-8
13 < Date: Wed, 28 Oct 2020 11:15:03 GMT
13 < Keep-Alive: timeout=3, max=100
13 < Server: nginx/1.16.1
13 < Vary: Origin
13 < X-Frame-Options: SAMEORIGIN
13 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:04.035 retry condition not satisfied: response.val == response.max
11:15:04.035 sleeping before retry #11
11:15:09.036 request:
14 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
14 > Accept-Encoding: gzip,deflate
14 > Connection: Keep-Alive
14 > Host: inspire.ec.europa.eu
14 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:09.550 response time in milliseconds: 513.75
14 < 200
14 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
14 < Connection: Keep-Alive
14 < Content-Type: application/json;charset=UTF-8
14 < Date: Wed, 28 Oct 2020 11:15:09 GMT
14 < Keep-Alive: timeout=3, max=100
14 < Server: nginx/1.16.1
14 < Vary: Origin
14 < X-Frame-Options: SAMEORIGIN
14 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:09.551 retry condition not satisfied: response.val == response.max
11:15:09.551 sleeping before retry #12
11:15:14.551 request:
15 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
15 > Accept-Encoding: gzip,deflate
15 > Connection: Keep-Alive
15 > Host: inspire.ec.europa.eu
15 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:15.068 response time in milliseconds: 516.06
15 < 200
15 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
15 < Connection: Keep-Alive
15 < Content-Type: application/json;charset=UTF-8
15 < Date: Wed, 28 Oct 2020 11:15:15 GMT
15 < Keep-Alive: timeout=3, max=100
15 < Server: nginx/1.16.1
15 < Vary: Origin
15 < X-Frame-Options: SAMEORIGIN
15 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:15.069 retry condition not satisfied: response.val == response.max
11:15:15.069 sleeping before retry #13
11:15:20.069 request:
16 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
16 > Accept-Encoding: gzip,deflate
16 > Connection: Keep-Alive
16 > Host: inspire.ec.europa.eu
16 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:20.583 response time in milliseconds: 512.89
16 < 200
16 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
16 < Connection: Keep-Alive
16 < Content-Type: application/json;charset=UTF-8
16 < Date: Wed, 28 Oct 2020 11:15:20 GMT
16 < Keep-Alive: timeout=3, max=100
16 < Server: nginx/1.16.1
16 < Vary: Origin
16 < X-Frame-Options: SAMEORIGIN
16 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:20.583 retry condition not satisfied: response.val == response.max
11:15:20.583 sleeping before retry #14
11:15:25.584 request:
17 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
17 > Accept-Encoding: gzip,deflate
17 > Connection: Keep-Alive
17 > Host: inspire.ec.europa.eu
17 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:26.100 response time in milliseconds: 514.88
17 < 200
17 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
17 < Connection: Keep-Alive
17 < Content-Type: application/json;charset=UTF-8
17 < Date: Wed, 28 Oct 2020 11:15:26 GMT
17 < Keep-Alive: timeout=3, max=100
17 < Server: nginx/1.16.1
17 < Vary: Origin
17 < X-Frame-Options: SAMEORIGIN
17 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:26.100 retry condition not satisfied: response.val == response.max
11:15:26.100 sleeping before retry #15
11:15:31.101 request:
18 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
18 > Accept-Encoding: gzip,deflate
18 > Connection: Keep-Alive
18 > Host: inspire.ec.europa.eu
18 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:31.614 response time in milliseconds: 512.61
18 < 200
18 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
18 < Connection: Keep-Alive
18 < Content-Type: application/json;charset=UTF-8
18 < Date: Wed, 28 Oct 2020 11:15:31 GMT
18 < Keep-Alive: timeout=3, max=100
18 < Server: nginx/1.16.1
18 < Vary: Origin
18 < X-Frame-Options: SAMEORIGIN
18 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:31.614 retry condition not satisfied: response.val == response.max
11:15:31.614 sleeping before retry #16
11:15:36.615 request:
19 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
19 > Accept-Encoding: gzip,deflate
19 > Connection: Keep-Alive
19 > Host: inspire.ec.europa.eu
19 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:37.142 response time in milliseconds: 526.28
19 < 200
19 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
19 < Connection: Keep-Alive
19 < Content-Type: application/json;charset=UTF-8
19 < Date: Wed, 28 Oct 2020 11:15:37 GMT
19 < Keep-Alive: timeout=3, max=100
19 < Server: nginx/1.16.1
19 < Vary: Origin
19 < X-Frame-Options: SAMEORIGIN
19 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:37.146 retry condition not satisfied: response.val == response.max
11:15:37.146 sleeping before retry #17
11:15:42.147 request:
20 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
20 > Accept-Encoding: gzip,deflate
20 > Connection: Keep-Alive
20 > Host: inspire.ec.europa.eu
20 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:42.901 response time in milliseconds: 753.46
20 < 200
20 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
20 < Connection: Keep-Alive
20 < Content-Type: application/json;charset=UTF-8
20 < Date: Wed, 28 Oct 2020 11:15:42 GMT
20 < Keep-Alive: timeout=3, max=100
20 < Server: nginx/1.16.1
20 < Vary: Origin
20 < X-Frame-Options: SAMEORIGIN
20 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:42.902 retry condition not satisfied: response.val == response.max
11:15:42.902 sleeping before retry #18
11:15:47.903 request:
21 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
21 > Accept-Encoding: gzip,deflate
21 > Connection: Keep-Alive
21 > Host: inspire.ec.europa.eu
21 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:48.990 response time in milliseconds: 1086.69
21 < 200
21 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
21 < Connection: Keep-Alive
21 < Content-Type: application/json;charset=UTF-8
21 < Date: Wed, 28 Oct 2020 11:15:48 GMT
21 < Keep-Alive: timeout=3, max=100
21 < Server: nginx/1.16.1
21 < Vary: Origin
21 < X-Frame-Options: SAMEORIGIN
21 < X-XSS-Protection: 1; mode=block
{"val":"184","max":"185","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException"]}
11:15:48.990 retry condition not satisfied: response.val == response.max
11:15:48.990 sleeping before retry #19
11:15:53.990 request:
22 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EID758fffc6-1a63-4512-a1d2-2927fd0bc47d/progress
22 > Accept-Encoding: gzip,deflate
22 > Connection: Keep-Alive
22 > Host: inspire.ec.europa.eu
22 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:54.506 response time in milliseconds: 514.79
22 < 200
22 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
22 < Connection: Keep-Alive
22 < Content-Type: application/json;charset=UTF-8
22 < Date: Wed, 28 Oct 2020 11:15:54 GMT
22 < Keep-Alive: timeout=3, max=100
22 < Server: nginx/1.16.1
22 < Vary: Origin
22 < X-Frame-Options: SAMEORIGIN
22 < X-XSS-Protection: 1; mode=block
{"val":"195","max":"196","log":["28.10.2020 11:14:03 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:03 UTC 2020)","28.10.2020 11:14:03 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:03 - Preparing 1 Test Task:","28.10.2020 11:14:03 - TestTask 1 (a4730d5b-83ba-4456-b1e7-a95c228aaeeb)","28.10.2020 11:14:03 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:03 - with parameters: ","28.10.2020 11:14:03 - etf.testcases = *","28.10.2020 11:14:03 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:03 - Setting state to CREATED","28.10.2020 11:14:03 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:05 - Starting TestRun.758fffc6-1a63-4512-a1d2-2927fd0bc47d at 2020-10-28T11:14:06Z","28.10.2020 11:14:06 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:06 - Project Properties: ","28.10.2020 11:14:06 - etf.testcases - * ","28.10.2020 11:14:06 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/provincies/ps/atom/v1/index.xml ","28.10.2020 11:14:06 - username - ","28.10.2020 11:14:06 - authUser - ","28.10.2020 11:14:06 - authMethod - basic ","28.10.2020 11:14:06 - TestRunTask initialized","28.10.2020 11:14:13 ERROR Assertion failed with error \u0027TR.incorrectFeedSelfReference\u0027","28.10.2020 11:14:15 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:49 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027","28.10.2020 11:14:52 ERROR Exception occurred in Test Step: java.lang.NullPointerException","28.10.2020 11:15:51 ERROR Assertion failed with error \u0027TR.unexpectedContentType\u0027"]}
11:15:54.506 retry condition not satisfied: response.val == response.max
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:14:05.180 [print] testing url:https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegenetmaal/v1/wfs?request=GetCapabilities&service=WFS
11:14:05.181 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegenetmaal/v1/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:05.973 response time in milliseconds: 792.22 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:05 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:14:05.977 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/ienw/geluidskaartspoorwegenetmaal/v1/wfs?request=GetCapabilities&service=WFS 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:14:06.368 response time in milliseconds: 390.42 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:14:06 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:14:06.369 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
11:05:23.925 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:05:23.926 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:24.338 response time in milliseconds: 411.26 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:05:23 GMT 1 < X-Cnection: [close, close]
11:05:24.353 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:05:24.771 response time in milliseconds: 417.05 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:05:24 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:43.883 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/schelpdierenpercelen/wfs?request=GetCapabilities"}}}
11:14:43.884 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 287
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/schelpdierenpercelen/wfs?request=GetCapabilities"}}}
11:14:45.557 response time in milliseconds: 1568.67
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:45 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Map Service 1.3\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883685391","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Map Service 1.3\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:14:45.558 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:13:04.201 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities"}}}
11:13:04.202 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 307
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities"}}}
11:13:07.688 response time in milliseconds: 3380.68
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:13:07 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"Check the availability of the server. The URL could not be processed due to a server error: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","timestamp":"1603883587511","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.url.server.error","stacktrace":["java.io.IOException: Server returned HTTP response code: 500 for URL: https://geodata.nationaalgeoregister.nl/vogelrichtlijnverspreidingsgebiedsoorten/wfs?request=GetCapabilities","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)","\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)","\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:972)"," [wrapped] de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:978)","\tat de.interactive_instruments.UriUtils$HttpInputStream.\u003cinit\u003e(UriUtils.java:964)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:1010)","\tat de.interactive_instruments.UriUtils.openStream(UriUtils.java:997)","\tat de.interactive_instruments.UriUtils.hashFromContent(UriUtils.java:1082)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:298)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.createWithUrlResources(TestObjectController.java:307)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:428)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.UriUtils$ConnectionException: Returned HTTP status code was \u0027500\u0027 (Internal Server Error )","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:13:07.689 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:06:39.416 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-natura2000/wfs?request=GetCapabilities"}}}
11:06:39.420 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 288
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/ps-natura2000/wfs?request=GetCapabilities"}}}
11:06:41.787 response time in milliseconds: 2261.17
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:06:41 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883201613","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:06:41.790 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:12:57.268 [print] testing url:https://geodata.nationaalgeoregister.nl/atom/index.xml
11:12:57.269 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:57.670 response time in milliseconds: 399.96 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:56 GMT 1 < X-Cnection: [close, close]
11:12:57.675 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/atom/index.xml 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:12:58.078 response time in milliseconds: 402.20 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 59006 1 < Content-Type: text/xml 1 < Date: Wed, 28 Oct 2020 11:12:57 GMT 1 < X-Cnection: [close, close]
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:15:31.993 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-w/wfs?request=GetCapabilities"}}}
11:15:31.993 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 278
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/nl/rws/tn-w/wfs?request=GetCapabilities"}}}
11:15:33.552 response time in milliseconds: 1451.20
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:15:33 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883733382","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:15:33.559 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:16:49.988 [print] testing url:https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities
11:16:49.988 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:50.399 response time in milliseconds: 410.85 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:50 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:49.988 request: 1 > HEAD https://geodata.nationaalgeoregister.nl/habitatrichtlijnverspreidingtypen/wfs?request=GetCapabilities 1 > Accept-Encoding: gzip,deflate 1 > Connection: Keep-Alive 1 > Host: geodata.nationaalgeoregister.nl 1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5) 11:16:50.394 response time in milliseconds: 405.39 1 < 200 1 < Access-Control-Allow-Headers: SOAPAction,X-Requested-With,Content-Type,Origin,Authorization,Accept 1 < Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD 1 < Access-Control-Allow-Origin: * 1 < Access-Control-Max-Age: 1000 1 < Content-Length: 73 1 < Content-Type: text/html; charset=UTF-8 1 < Date: Wed, 28 Oct 2020 11:16:50 GMT 1 < Server: lighttpd/1.4.53 1 < X-Cnection: [close, close]
11:16:50.394 assertion failed: path: $['Content-Type'][0], actual: 'text/html; charset=UTF-8', expected: 'text/xml', reason: not equal
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:10:54.437 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/sr/wfs?request=GetCapabilities"}}}
11:10:54.437 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 277
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/inspire/sr/wfs?request=GetCapabilities"}}}
11:10:56.712 response time in milliseconds: 2169.95
1 < 400
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Connection: close
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:10:56 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"error":"The Test Objekt Type \u0027OGC Web Feature Service 2.0\u0027 is not one of the expected types that can be tested in this test run.","timestamp":"1603883456545","url":"http://inspire.ec.europa.eu/validator/v2/TestRuns","id":"l.testObject.type.incomaptible","stacktrace":["de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.detector.TestObjectTypeDetectorManager.detect(TestObjectTypeDetectorManager.java:325)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:104)"," [wrapped] de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat de.interactive_instruments.etf.webapp.controller.TestObjectTypeController.checkAndResolveTypes(TestObjectTypeController.java:108)","\tat de.interactive_instruments.etf.webapp.controller.TestObjectController.initResourcesAndAdd(TestObjectController.java:437)","\tat de.interactive_instruments.etf.webapp.controller.TestRunController.start(TestRunController.java:497)","\tat sun.reflect.GeneratedMethodAccessor301.invoke(Unknown Source)","\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)","\tat java.lang.reflect.Method.invoke(Method.java:497)","\tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)","\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)","\tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)","\tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)","\tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)"," [wrapped] org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is de.interactive_instruments.etf.webapp.controller.LocalizableApiError: de.interactive_instruments.etf.detector.IncompatibleTestObjectTypeException: Expected a Test Object of type \u0027Atom feed\u0027 but detected another type \u0027\u0027OGC Web Feature Service 2.0\u0027\u0027 which is also not a subtype of it","\tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)","\tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)","\tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)","\tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)","\tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)","\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)","\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1685)","\tat de.interactive_instruments.etf.webapp.filter.ApiFilter.doFilterInternal(ApiFilter.java:89)","\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)","\tat org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)","\tat org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)","\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)","\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)","\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)","\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)","\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158)","\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)","\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)","\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090)","\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)","\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)","\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109)","\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)","\tat org.eclipse.jetty.server.Server.handle(Server.java:517)","\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)","\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)","\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)","\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)","\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)","\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)","\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)","\tat java.lang.Thread.run(Thread.java:745)"]}
11:10:56.713 assertion failed: assert evaluated to false: responseStatus == 200 || responseStatus == 201
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
{
"label": "Conformance Class Download Service - Pre-defined Atom",
"executableTestSuiteIds": [
"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"
],
"arguments": {},
"testObject": {
"resources": {
"serviceEndpoint": "<serviceEndpoint>"
}
}
}
11:14:47.297 [print] {"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:47.297 request:
1 > POST https://inspire.ec.europa.eu/validator/v2/TestRuns
1 > Accept-Encoding: gzip,deflate
1 > Connection: Keep-Alive
1 > Content-Length: 253
1 > Content-Type: application/json; charset=UTF-8
1 > Host: inspire.ec.europa.eu
1 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
{"label":"Conformance Class Download Service - Pre-defined Atom","executableTestSuiteIds":["EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"],"arguments":{},"testObject":{"resources":{"serviceEndpoint":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}}}
11:14:53.035 response time in milliseconds: 5007.26
1 < 201
1 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
1 < Cache-Control: public, max-age=120
1 < Connection: Keep-Alive
1 < Content-Type: application/json;charset=UTF-8
1 < Date: Wed, 28 Oct 2020 11:14:52 GMT
1 < Keep-Alive: timeout=3, max=100
1 < Last-Modified: Wed, 28 Oct 2020 11:14:50 GMT
1 < Server: nginx/1.16.1
1 < Vary: Origin
1 < X-Frame-Options: SAMEORIGIN
1 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a893ba4d-0f6e-42ac-813b-1b19df10d586.json","testRuns":{"TestRun":{"id":"EIDa893ba4d-0f6e-42ac-813b-1b19df10d586","status":"UNDEFINED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:49.467Z","testTasks":{"TestTask":{"id":"EID4b46536b-c0c0-40b7-8cdb-d21c1ffc3071","parent":{"ref":"EIDa893ba4d-0f6e-42ac-813b-1b19df10d586"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID53755927-a0d1-4467-9399-f58fdd6d1844"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID53755927-a0d1-4467-9399-f58fdd6d1844","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:47.734Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:48.626Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":null}}}
11:14:53.038 [print] EIDa893ba4d-0f6e-42ac-813b-1b19df10d586
11:14:53.038 [print] UNDEFINED
11:14:53.038 [print] Conformance Class Download Service - Pre-defined Atom
11:14:53.038 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a893ba4d-0f6e-42ac-813b-1b19df10d586.json
11:14:53.038 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/log
11:14:53.038 [print] statuspath TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586
11:14:53.038 [print] progresspath TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
11:14:53.039 request:
2 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
2 > Accept-Encoding: gzip,deflate
2 > Connection: Keep-Alive
2 > Host: inspire.ec.europa.eu
2 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:53.606 response time in milliseconds: 563.96
2 < 200
2 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
2 < Connection: Keep-Alive
2 < Content-Type: application/json;charset=UTF-8
2 < Date: Wed, 28 Oct 2020 11:14:53 GMT
2 < Keep-Alive: timeout=3, max=100
2 < Server: nginx/1.16.1
2 < Vary: Origin
2 < X-Frame-Options: SAMEORIGIN
2 < X-XSS-Protection: 1; mode=block
{"val":"21","max":"22","log":["28.10.2020 11:14:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:49 UTC 2020)","28.10.2020 11:14:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:49 - Preparing 1 Test Task:","28.10.2020 11:14:49 - TestTask 1 (4b46536b-c0c0-40b7-8cdb-d21c1ffc3071)","28.10.2020 11:14:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:49 - with parameters: ","28.10.2020 11:14:49 - etf.testcases = *","28.10.2020 11:14:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:49 - Setting state to CREATED","28.10.2020 11:14:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:50 - Starting TestRun.a893ba4d-0f6e-42ac-813b-1b19df10d586 at 2020-10-28T11:14:51Z","28.10.2020 11:14:51 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:51 - Project Properties: ","28.10.2020 11:14:51 - etf.testcases - * ","28.10.2020 11:14:51 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:51 - username - ","28.10.2020 11:14:51 - authUser - ","28.10.2020 11:14:51 - authMethod - basic ","28.10.2020 11:14:51 - TestRunTask initialized"]}
11:14:53.606 [print] {
"val": "21",
"max": "22",
"log": [
"28.10.2020 11:14:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:49 UTC 2020)",
"28.10.2020 11:14:49 - Resolving Executable Test Suite dependencies",
"28.10.2020 11:14:49 - Preparing 1 Test Task:",
"28.10.2020 11:14:49 - TestTask 1 (4b46536b-c0c0-40b7-8cdb-d21c1ffc3071)",
"28.10.2020 11:14:49 - will perform tests on Test Object 'index.xml' by using Executable Test Suite 'Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )'",
"28.10.2020 11:14:49 - with parameters: ",
"28.10.2020 11:14:49 - etf.testcases = *",
"28.10.2020 11:14:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.",
"28.10.2020 11:14:49 - Setting state to CREATED",
"28.10.2020 11:14:49 - Changed state from CREATED to INITIALIZING",
"28.10.2020 11:14:50 - Starting TestRun.a893ba4d-0f6e-42ac-813b-1b19df10d586 at 2020-10-28T11:14:51Z",
"28.10.2020 11:14:51 - Changed state from INITIALIZING to INITIALIZED",
"28.10.2020 11:14:51 - Project Properties: ",
"28.10.2020 11:14:51 - etf.testcases - * ",
"28.10.2020 11:14:51 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ",
"28.10.2020 11:14:51 - username - ",
"28.10.2020 11:14:51 - authUser - ",
"28.10.2020 11:14:51 - authMethod - basic ",
"28.10.2020 11:14:51 - TestRunTask initialized"
]
}
11:14:53.607 request:
3 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
3 > Accept-Encoding: gzip,deflate
3 > Connection: Keep-Alive
3 > Host: inspire.ec.europa.eu
3 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:54.134 response time in milliseconds: 522.55
3 < 200
3 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
3 < Connection: Keep-Alive
3 < Content-Type: application/json;charset=UTF-8
3 < Date: Wed, 28 Oct 2020 11:14:54 GMT
3 < Keep-Alive: timeout=3, max=100
3 < Server: nginx/1.16.1
3 < Vary: Origin
3 < X-Frame-Options: SAMEORIGIN
3 < X-XSS-Protection: 1; mode=block
{"val":"30","max":"31","log":["28.10.2020 11:14:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:49 UTC 2020)","28.10.2020 11:14:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:49 - Preparing 1 Test Task:","28.10.2020 11:14:49 - TestTask 1 (4b46536b-c0c0-40b7-8cdb-d21c1ffc3071)","28.10.2020 11:14:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:49 - with parameters: ","28.10.2020 11:14:49 - etf.testcases = *","28.10.2020 11:14:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:49 - Setting state to CREATED","28.10.2020 11:14:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:50 - Starting TestRun.a893ba4d-0f6e-42ac-813b-1b19df10d586 at 2020-10-28T11:14:51Z","28.10.2020 11:14:51 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:51 - Project Properties: ","28.10.2020 11:14:51 - etf.testcases - * ","28.10.2020 11:14:51 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:51 - username - ","28.10.2020 11:14:51 - authUser - ","28.10.2020 11:14:51 - authMethod - basic ","28.10.2020 11:14:51 - TestRunTask initialized"]}
11:14:54.135 retry condition not satisfied: response.val == response.max
11:14:54.135 sleeping before retry #1
11:14:59.135 request:
4 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
4 > Accept-Encoding: gzip,deflate
4 > Connection: Keep-Alive
4 > Host: inspire.ec.europa.eu
4 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:14:59.662 response time in milliseconds: 525.97
4 < 200
4 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
4 < Connection: Keep-Alive
4 < Content-Type: application/json;charset=UTF-8
4 < Date: Wed, 28 Oct 2020 11:14:59 GMT
4 < Keep-Alive: timeout=3, max=100
4 < Server: nginx/1.16.1
4 < Vary: Origin
4 < X-Frame-Options: SAMEORIGIN
4 < X-XSS-Protection: 1; mode=block
{"val":"93","max":"94","log":["28.10.2020 11:14:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:49 UTC 2020)","28.10.2020 11:14:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:49 - Preparing 1 Test Task:","28.10.2020 11:14:49 - TestTask 1 (4b46536b-c0c0-40b7-8cdb-d21c1ffc3071)","28.10.2020 11:14:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:49 - with parameters: ","28.10.2020 11:14:49 - etf.testcases = *","28.10.2020 11:14:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:49 - Setting state to CREATED","28.10.2020 11:14:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:50 - Starting TestRun.a893ba4d-0f6e-42ac-813b-1b19df10d586 at 2020-10-28T11:14:51Z","28.10.2020 11:14:51 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:51 - Project Properties: ","28.10.2020 11:14:51 - etf.testcases - * ","28.10.2020 11:14:51 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:51 - username - ","28.10.2020 11:14:51 - authUser - ","28.10.2020 11:14:51 - authMethod - basic ","28.10.2020 11:14:51 - TestRunTask initialized","28.10.2020 11:14:55 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:55 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:57 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:58 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:59 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027"]}
11:14:59.663 retry condition not satisfied: response.val == response.max
11:14:59.663 sleeping before retry #2
11:15:04.664 request:
5 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
5 > Accept-Encoding: gzip,deflate
5 > Connection: Keep-Alive
5 > Host: inspire.ec.europa.eu
5 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:05.174 response time in milliseconds: 510.03
5 < 200
5 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
5 < Connection: Keep-Alive
5 < Content-Type: application/json;charset=UTF-8
5 < Date: Wed, 28 Oct 2020 11:15:05 GMT
5 < Keep-Alive: timeout=3, max=100
5 < Server: nginx/1.16.1
5 < Vary: Origin
5 < X-Frame-Options: SAMEORIGIN
5 < X-XSS-Protection: 1; mode=block
{"val":"148","max":"149","log":["28.10.2020 11:14:49 - Preparing Test Run Conformance Class Download Service - Pre-defined Atom (initiated Wed Oct 28 11:14:49 UTC 2020)","28.10.2020 11:14:49 - Resolving Executable Test Suite dependencies","28.10.2020 11:14:49 - Preparing 1 Test Task:","28.10.2020 11:14:49 - TestTask 1 (4b46536b-c0c0-40b7-8cdb-d21c1ffc3071)","28.10.2020 11:14:49 - will perform tests on Test Object \u0027index.xml\u0027 by using Executable Test Suite \u0027Conformance Class: Download Service - Pre-defined Atom (EID: 11571c92-3940-4f42-a6cd-5e2b1c6f4d93, V: 1.0.5 )\u0027","28.10.2020 11:14:49 - with parameters: ","28.10.2020 11:14:49 - etf.testcases = *","28.10.2020 11:14:49 - Test Tasks prepared and ready to be executed. Waiting for the scheduler to start.","28.10.2020 11:14:49 - Setting state to CREATED","28.10.2020 11:14:49 - Changed state from CREATED to INITIALIZING","28.10.2020 11:14:50 - Starting TestRun.a893ba4d-0f6e-42ac-813b-1b19df10d586 at 2020-10-28T11:14:51Z","28.10.2020 11:14:51 - Changed state from INITIALIZING to INITIALIZED","28.10.2020 11:14:51 - Project Properties: ","28.10.2020 11:14:51 - etf.testcases - * ","28.10.2020 11:14:51 - serviceEndpoint - https://geodata.nationaalgeoregister.nl/atom/index.xml ","28.10.2020 11:14:51 - username - ","28.10.2020 11:14:51 - authUser - ","28.10.2020 11:14:51 - authMethod - basic ","28.10.2020 11:14:51 - TestRunTask initialized","28.10.2020 11:14:55 ERROR Response status code:500 is not in acceptable list of status codes","28.10.2020 11:14:55 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:57 ERROR Assertion failed with error \u0027TR.unexpectedHtml\u0027","28.10.2020 11:14:58 ERROR Assertion failed with error \u0027TR.uniqueDatasetIdentifiers\u0027","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingLinkToMetadataRecordForDownloadService\u0027","28.10.2020 11:14:59 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:59 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:14:59 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingOneFeedEntryWithDlFile\u0027","28.10.2020 11:14:59 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:14:59 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Assertion failed with error \u0027TR.missingElement\u0027","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Assertion failed with error \u0027TR.missingFeedUpdatedInformation\u0027","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:00 ERROR Assertion failed with error \u0027TR.missingLinkToRegistry\u0027","28.10.2020 11:15:00 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:00 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:01 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:04 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:04 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027","28.10.2020 11:15:04 ERROR Response status code:404 is not in acceptable list of status codes","28.10.2020 11:15:04 ERROR Assertion failed with error \u0027TR.missingFeedRootElement\u0027"]}
11:15:05.174 retry condition not satisfied: response.val == response.max
11:15:05.175 sleeping before retry #3
11:15:10.175 request:
6 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/progress
6 > Accept-Encoding: gzip,deflate
6 > Connection: Keep-Alive
6 > Host: inspire.ec.europa.eu
6 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:12.191 response time in milliseconds: 2015.04
6 < 200
6 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
6 < Connection: Keep-Alive
6 < Content-Type: application/json;charset=UTF-8
6 < Date: Wed, 28 Oct 2020 11:15:12 GMT
6 < Keep-Alive: timeout=3, max=100
6 < Server: nginx/1.16.1
6 < Vary: Origin
6 < X-Frame-Options: SAMEORIGIN
6 < X-XSS-Protection: 1; mode=block
{"val":"241","max":"241","log":[]}
11:15:12.191 retry condition satisfied
11:15:12.191 [print] {
"val": "241",
"max": "241",
"log": [
]
}
11:15:12.192 request:
7 > GET https://inspire.ec.europa.eu/validator/v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586
7 > Accept-Encoding: gzip,deflate
7 > Connection: Keep-Alive
7 > Host: inspire.ec.europa.eu
7 > User-Agent: Apache-HttpClient/4.5.11 (Java/13.0.5)
11:15:16.024 response time in milliseconds: 2854.37
7 < 200
7 < Access-Control-Allow-Origin: [*, https://inspire.ec.europa.eu/validator/]
7 < Cache-Control: public, max-age=120
7 < Connection: Keep-Alive
7 < Content-Type: application/json;charset=UTF-8
7 < Date: Wed, 28 Oct 2020 11:15:14 GMT
7 < Keep-Alive: timeout=3, max=100
7 < Last-Modified: Wed, 28 Oct 2020 11:15:08 GMT
7 < Server: nginx/1.16.1
7 < Vary: Origin
7 < X-Frame-Options: SAMEORIGIN
7 < X-XSS-Protection: 1; mode=block
{"EtfItemCollection":{"version":2.0,"returnedItems":1,"ref":"https://inspire.ec.europa.eu/validator//v2/TestRuns/a893ba4d-0f6e-42ac-813b-1b19df10d586.json","testRuns":{"TestRun":{"id":"EIDa893ba4d-0f6e-42ac-813b-1b19df10d586","status":"FAILED","label":"Conformance Class Download Service - Pre-defined Atom","defaultLang":"en","startTimestamp":"2020-10-28T11:14:49.467Z","testTasks":{"TestTask":{"id":"EID4b46536b-c0c0-40b7-8cdb-d21c1ffc3071","parent":{"ref":"EIDa893ba4d-0f6e-42ac-813b-1b19df10d586"},"executableTestSuite":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"testObject":{"ref":"EID53755927-a0d1-4467-9399-f58fdd6d1844"},"ArgumentList":{"arguments":{"argument":{"name":"etf.testcases","$":"*"}}},"testTaskResult":{"ref":"EID36b70879-9ccd-4c0b-b605-0294efe99035"}}},"logPath":"https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/log"}},"referencedItems":{"testItemTypes":null,"executableTestSuites":{"ExecutableTestSuite":{"id":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93","remoteResource":"http://none","label":"Conformance Class: Download Service - Pre-defined Atom","description":"This test suite examines a Atom feed with Open Search description against the requirements related to the INSPIRE Pre-Defined Atom Download Service feed with sub-feeds for data sets. This test suite only examines requirements that are specific to a Pre-Defined Atom Download Service feed.\n<br/> <br/>\nThe test suite is divided into four test modules. In the first module 'Initialization and basic checks', basic queries are send to the Atom feed to ensure the endpoints are available. The 'Download Service Feed', 'Dataset Feed' and 'OpenSearch Description' test modules contain the actual test cases, derived from the Abstract Test Cases. If a test case in the first module fails, the three other modules are skipped!\n<br/> <br/>\nThere are a few test cases and test steps that are marked as 'technical test step' or 'technical test case' in the description. They are used to control the test execution flow of the steps. The description text of a technical test step indicates the test steps that are executed. If a technical test step fails, the other test steps, which have been called by the technical test step, should be checked first. To examine a reported issue, the assertion messages should be compared with the service responses which are included in the report. If the response contains an exception report, the request should be checked for 'incorrect' parameters (i.e. non-existing IDs). The test step description should refer to a point, from where the information has been gathered (i.e. from a previous request where the ID was listed).\n<br/> <br/> \n\nPlease report any issues or problems <a href=\"https://github.com/inspire-eu-validation/community/wiki/Your-feedback\" target=\"_blank\">in GitHub</a>.\n<br/> <br/>\nKnown limitations are documented in the description of the applicable test case or test assertion.\n<br/> <br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined\" target=\"_blank\">Conformance Class 'Pre-defined Atom'</a>","version":"1.0.5","author":"Geonovum and interactive instruments","creationDate":"2017-02-17T00:00:00Z","lastEditor":"interactive instruments GmbH","lastUpdateDate":"2019-09-24T14:42:00Z","disabled":false,"tags":{"tag":{"href":"https://inspire.ec.europa.eu/validator//v2/Tags/e51620af-bcf5-4719-ab0e-ef6226a572fa.json"}},"testDriver":{"href":"https://inspire.ec.europa.eu/validator//v2/Components/4838e01b-4186-4d2d-a93a-414b9e9a49a7.json"},"translationTemplateBundle":{"ref":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb"},"ParameterList":null,"supportedTestObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"testModules":{"TestModule":[{"id":"EID6266de5b-169b-4933-896b-803260ff568e","label":"Initialization and basic checks","description":"Perform basic check to ensure the top-level Download Service Feed is available and initialize the Executable Test Suite with gathered information.\n\nIf this test case fails, all other test cases will be skipped!\nEnsure that the schema locations and all endpoints can be queried!\n\nPlease note that for technical reasons this Executable Test Suite requires that schema locations must be accessible without any authentication mechanism.","testCases":{"TestCase":[{"id":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f","label":"Setup credentials and check if endpoint is available","description":"Technical test case. Initialize loggers and set credentials for the test run.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":[{"id":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28","label":"Update Credentials","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"import de.interactive_instruments.xtf.Util;\n\n/** Set the credentials only if a username is provided */\ndef basicAuthUser = context.expand('${#Project#authUser}');\nif (basicAuthUser.length()>0) {\n\tlog.info(\"Setting credentials for user: \" + basicAuthUser);\n}\nUtil.updateCredentials(testRunner);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID602d9d35-1c42-4497-a386-7befaa3320eb","label":"HTTP status code 200 is returned","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c","label":"30 seconds timeout","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID60ac748d-9fae-47f9-bc88-f7073077cc62","label":"No invalid characters before XML prolog","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.*\n\nif(!messageExchange.hasResponse()) {\n throw new TranslatableAssertionError(\"TR.noDataReturned\")\n}\n\nif(messageExchange.responseContent.size()>7) {\n\tfinal String xmlProlog = messageExchange.responseContent.substring(0,7);\n\tif(!xmlProlog.trim().startsWith(\"<\")) {\n\t\tthrow new TranslatableAssertionError(\"TR.invalidXmlProlog\", \"prolog\", xmlProlog.replaceAll(\"\\\\p{C}\", \"?\") )\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b","label":"Root element 'feed' exists","parent":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849","label":"Basic checks passed and Feed still accessible","description":"Check if the feed is available and the Test initialisation phase has been completed successfully.","parent":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"testSteps":{"TestStep":{"id":"EID7c915733-5218-4594-9e9a-066192707f1e","label":"Check URL is accessible","description":null,"parent":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e","label":"HTTP status code 200 is returned","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4","label":"30 seconds timeout","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359","label":"root element 'feed' exists","parent":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}}]}},{"id":"EID59c49d09-616a-4a70-a918-2f31d345e38f","label":"Download Service Feed","description":"Test module for checking the top-level Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344","label":"Contact information","description":"The test case requests the Download Service feed and checks if the response contains the author name and email address.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 12: The 'author' element of a feed shall contain current contact information for an\nindividual or organisation responsible for the feed. At the minimum, a name\nand email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Download Service feed contact information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94","label":"HTTP status code 200 is returned","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0","label":"30 seconds timeout","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a","label":"Root element 'feed' exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9809e089-828d-4e58-a091-0b8a0d28956d","label":"Author name exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd","label":"Email address exists","parent":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID035c2686-8af8-4972-a015-cd32b2ab17ac","label":"CRS information","description":"The test case requests the Download Service feed and checks if each feed entry contain an Atom 'category' element for each CRS.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 20: Each feed entry shall contain an Atom 'category' element for each CRS in\nwhich the pre-defined dataset is available. This category element shall refer to\na well-known definition of a coordinate reference system.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-crs-information\" target=\"_blank\">Abstract Test Case 'Download Service feed CRS information'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID3f96da73-0f0b-4b82-8fee-582f70950c69","label":"HTTP status code 200 is returned","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6c31a150-52db-4ba1-bad6-c374dc60359b","label":"30 seconds timeout","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629","label":"Root element 'feed' exists","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID84104201-71c4-4f32-8291-5f5ac49e6b20","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9","label":"Dataset identifiers","description":"The test case requests the Download Service feed and checks if each dataset has an INSPIRE Spatial Dataset Unique Resource Identifier 'dataset identifier code' and a 'dataset identifier namespace'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 13: Each feed 'entry' in a 'Download Service Feed' shall contain\nspatial_dataset_identifier_code and spatial_dataset_identifier_namespace\nelements which together contain the Spatial Dataset Unique Resource\nIdentifier for the dataset described by the feed. These elements are defined in\nthe inspire_dls schema which shall be included in the namespace declarations\nof the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-dataset-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed dataset identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785","label":"Get Service Feed","description":"Requests the Service Feed and checks the dataset identifiers.","parent":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID342e431e-e031-4057-bb93-4a7d9d858b7d","label":"HTTP status code 200 is returned","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81","label":"30 seconds timeout","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcbcffce3-745e-490a-bd2f-2d64069409af","label":"Root element 'feed' exists","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a","label":"Each entry has an element INSPIRE identifier code","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_code)=0]\",\n \"TR.missingSpatialDatasetIdentifierCode\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID5c449c08-4578-41ee-a7ea-a168c61005b7","label":"Each entry has an element INSPIRE identifier element namespace","parent":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(inspire_dls:spatial_dataset_identifier_namespace)=0]\",\n \"TR.missingSpatialDatasetIdentifierNamespace\"\n \n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID82825850-f358-40d8-913c-5e61cac61fef","label":"HTTP URI","description":"The test case requests the Download Service feed and checks if provides the HTTP URI of the feed as ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 9: The 'id' element of a feed shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-id\" target=\"_blank\">Abstract Test Case 'Download Service feed: id'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID8c63752f-405c-422c-b91e-9b42a76eb720","label":"Get Service Feed","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID52a40318-a6fb-4b29-9064-8903ddf448df","label":"HTTP status code 200 is returned","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648","label":"30 seconds timeout","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID43518c24-2fc2-448a-817a-c8e4944baa64","label":"Root element 'feed' exists","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf0d32900-8648-42a9-8e47-0681f34af745","label":"Feed id is an URI","parent":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDc106f883-041b-402d-8ada-33acc7b1d463","label":"Get Service Feed by ID","description":"Requests the Service Feed and checks the feed URL.","parent":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465","label":"30 seconds timeout","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2","label":"Root element 'feed' exists","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID05e473b5-9caa-407d-90e8-49820284df45","label":"Feed ID equals request URL","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f","label":"Response equals response from test step 'Get Service Feed'","parent":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Service Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Service Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f","label":"Identifiers","description":"The test case requests the Download Service feed and checks if each feed entry provides the HTTP URI of the feed as ATOM ID.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 17: The 'id' element of a feed entry in a Download Service Feed shall contain an\nidentifier for that feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-identifiers\" target=\"_blank\">Abstract Test Case 'Download Service feed identifiers'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180","label":"Get Service Feed","description":"Requests the Service Feed and checks each feed entry ID.","parent":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864","label":"30 seconds timeout","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a","label":"Root element 'feed' exists","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID794b3dfa-4d1b-42ca-878d-93431f397473","label":"Each entry has an id","parent":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:id)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6359d6da-1e37-423f-b543-018979b665e2","label":"Link to OpenSearch Description document","description":"The test case requests the Download Service feed and checks if it provides a link to an 'OpenSearch Description document' and if the it can be retrieved.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 8: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains a link to an OpenSearch description document for the Download\nService. The value of the 'rel' attribute of this element shall be 'search', the\n'hreflang' attribute shall use the appropriate language code and the value of\nthe 'type' attribute shall be 'application/opensearchdescription+xml'.</li>\n<li>TG Requirement 39: A simple service to perform the Describe Spatial Dataset and Get Spatial Data\nSet operations shall be provided and described by an OpenSearch description\ndocument.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-opensearch-description-document\" target=\"_blank\">Abstract Test Case 'Download Service feed: link OpenSearch Description document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":[{"id":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef","label":"Get Service Feed","description":"Requests the Service Feed and checks OpenSearch description.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61","label":"HTTP status code 200 is returned","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID341a8eae-c6c1-4880-a893-80bd7448fecf","label":"30 seconds timeout","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15","label":"Root element 'feed' exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68a277ac-f823-4fd1-96cd-6429651777bd","label":"Feed link to OpenSearch Description Document exists","parent":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href\",\n\t\"TR.missingOpenSearchDescriptionDocumentLink\"\n);\n\na.isTrue(\n\t\"starts-with(/atom:feed/atom:link[@rel='search' and @type='application/opensearchdescription+xml']/@href, 'http')\",\n\t\"TR.openSearchDescriptionDocumentLinkNotAbsolute\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID342e7d50-b15d-446f-8f83-25807babfb2e","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c","label":"HTTP status code 200 is returned","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3","label":"30 seconds timeout","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5213157c-3e2a-40fd-9ee9-9557678f0260","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EIDe12f3530-1b91-4278-9c5b-5470890835f7","label":"Link to WFS Capabilities document","description":"In case of a 'hybrid implementation' using WFS for implementing direct access: check manually that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\".\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 16: In case of a 'hybrid implementation' based on Atom for Part A of [INS NS,\nAnnex IV] and WFS for Parts B and C of [INS NS, Annex IV], a link shall be\nprovided to the WFS Capabilities document. Where this is done the 'rel'\nattribute shall have the value 'related' and the 'type' attribute shall have the\nvalue 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-wfs-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: link to WFS Capabilities document'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"}},"testSteps":{"TestStep":{"id":"EIDf9e282c5-9970-476c-8414-b840effb574a","label":"Get Service Feed","description":"Requests the Service Feed to let the Tester check a link to the WFS Capabilities, if the same data set is available as a WFS 2.0.0 Direct Access Download Service.","parent":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135","label":"30 seconds timeout","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104","label":"Root element 'feed' exists","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1","label":"Check link to WFS Capabilities document","parent":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"/atom:feed\",\n\t\"TR.manual.checkLinkToDirectAccessDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92","label":"Links dataset metadata records","description":"The test case requests the Download Service feed and checks if each feed entry has a link to a Dataset metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 14: Each feed 'entry' in a 'Download Service Feed' shall contain a link to a\nDataset metadata record. This link shall have a 'rel' attribute with a value of\n'describedby' and a 'type' attribute with a value 'application/xml'</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-metadata-records\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset metadata records'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID1b3fcafb-e884-4894-994c-60e9ca525c83","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset metadata links are set.","parent":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID735c1133-f7b2-450d-a76d-2233016fe4b2","label":"HTTP status code 200 is returned","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78","label":"30 seconds timeout","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf","label":"Root element 'feed' exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID725bc702-044a-4404-b09e-d001ca93d527","label":"Link to Dataset Metadata record exists","parent":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:link[@rel='describedby' and @type='application/xml']/@href)=0]\",\n \"TR.missingLinkToDatasetMetadataRecord\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID11de8ff5-6025-4a1c-939a-f65cda991b16","label":"Rights element","description":"The test case requests the Download Service feed and checks if it has a rights element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 10: The 'rights' element of a feed shall contain information about rights or\nrestrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Download Service feed rights element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d","label":"Get Service Feed","description":"Requests the Service Feed and checks if the it provides rights information.","parent":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDfc854807-b285-4a38-8aa5-d97cd2044247","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e","label":"30 seconds timeout","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c","label":"Root element 'feed' exists","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd","label":"Feed contains rights information","parent":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID1756fabf-84f1-47e0-87da-bafd72512291","label":"Self-reference link","description":"The test case requests the Download Service feed and checks if it provides a self-reference link.\n<br/>\n<br/>\n<b>TODO:</b> The ATS states that hreflang should be compared to /atom:feed/atom:title/@xml:lang . This seems inappropriate -at least an additional comparison against /atom:feed/@xml:lang is required.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 7: The 'Download Service Feed' shall contain an Atom 'link' element that\ncontains an HTTP URI for the 'Download Service Feed' document. The value\nof the 'rel' attribute of this element shall be 'self', the 'hreflang' attribute shall\nuse the appropriate language code and the value of the 'type' attribute shall\nbe 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-self-reference-link\" target=\"_blank\">Abstract Test Case 'Download Service feed: self-reference link'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02","label":"Get Service Feed","description":"Requests the Service Feed and checks if the self-refernce link is correct.","parent":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0b0380eb-e5be-47d2-844a-8c4c766e8cee","label":"HTTP status code 200 is returned","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd0f601f2-18e6-4480-a57e-2c0756bd4b79","label":"30 seconds timeout","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfec3dd1f-b041-4127-a910-21fcb7bde22a","label":"Root element 'feed' exists","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ce5a9ab-ca95-470e-8927-d52b82092e69","label":"Self reference equals the Download Service feed URI","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml']/@href\",\n \"/atom:feed/atom:link with @rel='self'\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID544cf934-0fe3-4865-88b5-5e12285a393f","label":"Self link has proper language references","parent":{"ref":"EIDcfb4cf5f-e35c-490c-bcd4-b740bd221c02"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nString languages = context.expand( '${OpenSearch Description link exists#openSearchLanguages}' )\nlog.info(\"Language: \"+languages)\n\na.exists(\n \"/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and (@hreflang=/atom:feed/@xml:lang or @hreflang=/atom:feed/atom:title/@xml:lang or contains('\"+languages+\"', @hreflang))]\",\n \"TR.incorrectFeedSelfReferenceLang\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0","label":"Title","description":"The test case requests the Download Service feed and checks if it each entry has a title.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 18: The 'title' element of a feed entry in a Download Service Feed shall be\npopulated with a human readable title for the feed entry.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-titles\" target=\"_blank\">Abstract Test Case 'Download Service feed: entry titles'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID247f8881-c8e2-462d-a999-96144faee1f3","label":"Get Service Feed","description":"Requests the Service Feed and checks if the title is set for each feed entry.","parent":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e","label":"HTTP status code 200 is returned","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51","label":"30 seconds timeout","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7","label":"Root element 'feed' exists","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e","label":"Each entry has a title","parent":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[string-length(atom:title)=0]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9f5a4899-7076-4aae-b859-6881f870bc41","label":"Updated feed element date","description":"The test case requests the Download Service feed and checks if each feed entry provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 19: The 'updated' element of a feed entry in a Download Service Feed shall\ncontain the date, time and timezone at which the feed entry was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element-date\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element date'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5","label":"Get Service Feed","description":"Requests the Service Feed and checks if provides update information.","parent":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f","label":"30 seconds timeout","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID44374564-e394-4c06-b685-46c9369e29d1","label":"Each entry has an element updated","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[year-from-dateTime(xs:dateTime(atom:updated)) <=0]\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884","label":"Date is not before the year 2012","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb","label":"Date is not in the future","parent":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b","label":"Updated element","description":"The test case requests the Download Service feed and checks if it provides a 'updated' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 11: The 'updated' element of a feed shall contain the date, time and timezone at\nwhich the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Download Service feed updated element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a","label":"Get Service Feed","description":"Requests the Service Feed and checks if each title has an element 'updated'.","parent":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID1a696ecb-91f0-4291-992d-d50309f756c9","label":"HTTP status code 200 is returned","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273","label":"30 seconds timeout","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID97f57414-5b41-465a-95b0-596c884bc25a","label":"Root element 'feed' exists","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2","label":"Feed contains updated information","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID94ae8e41-ca18-4c83-87d8-81de55891d86","label":"Date is not before the year 2012","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID68cf959b-8629-4c39-89f2-1988e0fa5487","label":"Date is not in the future","parent":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c","label":"Provide a title element","description":"The test case requests the Download Service feed and checks if it provides a 'title' element.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 5: The 'title' element of an Atom feed shall be populated with a human readable\ntitle for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-title\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide a title element'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f","label":"Get Service Feed","description":"Requests the Service Feed and checks if it provides a title.","parent":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID816b487c-0309-416b-a9b0-2cf5ed326e08","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f","label":"30 seconds timeout","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d","label":"Root element 'feed' exists","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9e5db714-8cae-4709-8efd-c793aca80c4c","label":"Feed has a title","parent":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:title\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4","label":"Separate entries per dataset","description":"The test case requests the Download Service feed and checks that each each dataset has a separate entry in the service feed.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 1: Pre-defined Dataset Download Service implementations shall publish separate\ndatasets as individual entries within an Atom feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-entry-per-dataset\" target=\"_blank\">Abstract Test Case 'Download service feed: separate entries per dataset'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"dependencies":{"testCase":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"}},"testSteps":{"TestStep":{"id":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872","label":"Get Service Feed","description":"Requests the Service Feed and checks that each each dataset has a separate entry in the service feed.","parent":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73","label":"HTTP status code 200 is returned","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10","label":"30 seconds timeout","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0","label":"Root element 'feed' exists","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405","label":"Dataset identifiers (spatial_dataset_identifier_namespace + spatial_dataset_identifier_code combination) are unique","parent":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValues(\n\t\"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and \"+\n\t\"*:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])\",\n\t\"0\",\n\t\"TR.uniqueDatasetIdentifiers\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID4546bada-0307-42ec-883b-25494233e9a5","label":"Links dataset feed","description":"The test case requests the Download Service feed and checks if each feed entry contains exactly one dataset feed link with a 'rel' attribute with the value 'alternate' and a 'type' attribute with the 'value' 'application/atom+xml'.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 15: Each feed 'entry' in a 'Download Service Feed' shall contain a single link to a\n'Dataset Feed'. This link shall have a 'rel' attribute with a value of 'alternate'\nand a 'type' attribute with a value 'application/atom+xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-links-dataset-feed\" target=\"_blank\">Abstract Test Case 'Download Service feed links dataset feed'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":{"id":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17","label":"Get Service Feed","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID33789d28-70d9-49eb-be72-66ea2805a04e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc","label":"30 seconds timeout","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200","label":"Root element 'feed' exists","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42","label":"Each entry has exactly one Dataset Feed link","parent":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed/atom:entry[count(atom:link[@rel='alternate' and @type='application/atom+xml'])!=1]\",\n \"TR.invalidDatasetFeedLinks\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb0be137f-b987-4050-9991-9939c14558fc","label":"Provide link to metadata record for download service","description":"The test case requests the Download Service feed and checks if it provides a link to a metadata record.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 6: The 'Download Service Feed' shall contain an Atom 'link' element that links to\nthe metadata record for this Download Service. The value of the 'rel' attribute\nof this element shall be 'describedby' and the value of the 'type' attribute shall\nbe either 'application/xml'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/download-service-feed-link-to-metadata-record\" target=\"_blank\">Abstract Test Case 'Download service feed: Provide link to metadata record for the download service'</a>","parent":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"testSteps":{"TestStep":[{"id":"EID62c56e18-3a6f-4c85-befc-56f47c597583","label":"Get Service Feed","description":"Requests the Service Feed and checks that the metadata record for the download service exists.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID51637bcb-84c0-43de-a410-39cfe7214d42","label":"HTTP status code 200 is returned","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95","label":"30 seconds timeout","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f","label":"Root element 'feed' exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e","label":"Link to metadata record for the download service exists","parent":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']\",\n \"TR.missingLinkToMetadataRecordForDownloadService\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09","label":"Get Metadata Record","description":"Requests the metadata record from the Service Feed.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc94062c4-1c8b-485d-8ddc-ccf5c342bc6a","label":"HTTP status code 200 is returned","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3b6a24fe-a470-4fb1-829c-52baad1dba5d","label":"30 seconds timeout","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID234062a4-45c2-4013-9038-71b8cc9a7d36","label":"Root element 'MD_Metadata' exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"exists(/gmd:MD_Metadata) or ( count(/*) = 1 and exists(/*/gmd:MD_Metadata) )\", \n\t\"TR.missingMDMetadataRootElement\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7e59dfea-4fb9-404d-a382-0fb3a0038862","label":"Resource Locator exists","parent":{"ref":"EID6a7c69f4-362d-4ea1-8992-19f8f0392b09"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//gmd:distributionInfo/*/gmd:transferOptions/*/gmd:onLine/*/gmd:linkage/gmd:URL\",\n \"TR.missingLinkageResourceLocator\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID72da1012-15a7-43d6-98d7-d734ec85b613","label":"Get Service Feed from Resource Locator","description":"Requests the document from the Resource Locator and compares the describedby link from the 'Get Service Feed' step with the describedby link from this response.","parent":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID0a21f0ad-a0b9-4d69-a258-51b0555add42","label":"HTTP status code 200 is returned","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID0600ff93-ca28-4e15-aeda-2e5ff799aadf","label":"30 seconds timeout","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID56c9a2f1-63ec-4664-8791-fa8b1c231df9","label":"Root element 'feed' exists","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd38c5dbf-c4ef-4c7e-93e3-4592b895e41c","label":"The describedby link from the first response equals the describedby from this response","parent":{"ref":"EID72da1012-15a7-43d6-98d7-d734ec85b613"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equalPathValuesInStep(\n \"/*:feed/*:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']/@href\",\n \"Get Service Feed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}},{"id":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337","label":"Dataset Feed","description":"Test module for checking the Dataset Feeds that are referenced by the Download Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964","label":"Check all Feed entries","description":"Technical Test Case which iterates over all Dataset feed entries in the Download Service Feed. This test case requires the Test Case 'Links dataset feed' in the 'Download Service Feed' Test Suite to pass.","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"}},"testSteps":{"TestStep":[{"id":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e","label":"Get Service Feed","description":"Requests the Service Feed and checks the contact information.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e59dda7-5894-467a-8898-aab1452b2ca8","label":"HTTP status code 200 is returned","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c","label":"30 seconds timeout","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6","label":"Root element 'feed' exists","parent":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90","label":"Check all feed entries","description":"Iterate over all Feed entries.","parent":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\n\nProjectHelper ph = new ProjectHelper();\ndef serviceFeedXmlHolder = ph.getTransferPropertyAsXml(\"serviceFeedXml\")\n\ndef feedEntryURLs = serviceFeedXmlHolder.getNodeValues(\"/*:feed/*:entry/*:link[@rel='alternate' and @type='application/atom+xml']/@*:href\");\nlog.info(\"feedEntryURLs: \" + feedEntryURLs);\n\n// clear url to test\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",\"\")\n\n// Check all except the last one\nfor(int i=0; i<feedEntryURLs.size()-1; i++) {\n\tfinal String feedEntryURL = feedEntryURLs[i]\n\tlog.info(\"Checking URL: \" + feedEntryURL)\n\ttestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURL)\n}\n\nlog.info(\"Checking URL: \" + feedEntryURLs.last())\ntestRunner.testCase.testSuite.setPropertyValue(\"feedEntryURL\",feedEntryURLs.last())","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}}]}},{"id":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b","label":"Contact information","description":"Checks that the feed provides contact information about the individual or organisation responsible for the feed. The author name and email address must be provided.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 25: The 'author' element of a 'Dataset Feed' shall contain current contact information for an individual or organisation responsible for the feed. At the minimum, a name and email address shall be provided as contact information.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-contact-information\" target=\"_blank\">Abstract Test Case 'Dataset feed contact information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"}},"testSteps":{"TestStep":{"id":"EIDed487595-c12b-42bb-9251-842d352f151b","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48","label":"HTTP status code 200 is returned","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID42507c13-e6d6-4919-93b4-407ad56671b9","label":"30 seconds timeout","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad","label":"Root element 'feed' exists","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b","label":"Feed contains author","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:name\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa","label":"Feed contains author email","parent":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:author/atom:email\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc","label":"HTTP URI","description":"Checks that dataset feed provides the HTTP URI of the feed as feed id.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 22: The 'id' element of a 'Dataset Feed' shall contain an HTTP URI which dereferences to the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-id\" target=\"_blank\">Abstract Test Case 'Dataset feed HTTP URI'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDed94db52-6a1d-4103-8645-2128cd464847","label":"30 seconds timeout","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd","label":"HTTP status code is 200","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4","label":"Feed id is an URI","parent":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"/atom:feed[substring(atom:id,1,4)!='http']\",\n \"TR.idNotAnURI\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDa6112087-5531-41d1-bfb0-8515d76785cc","label":"Get Dataset Feed by ID","description":null,"parent":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID96b34215-995a-4f6c-b5b3-5d0c38e02647","label":"HTTP status code is 200","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1344e9c6-84c8-4e25-a9fb-9bb384a6f9a0","label":"30 seconds timeout","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8da901fc-2e5f-4b3a-ad5c-dfa6ce85da6a","label":"Root element 'feed' exists","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID9ea79d5a-86ed-4dde-85e6-ab0acf6bbb8a","label":"Feed ID equals request URL","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/atom:feed/atom:id\",\n \"/atom:feed/atom:id\",\n messageExchange.getEndpoint(),\n \"TR.feedIdDoesNotReferToEndpoint\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID568e315d-81c7-426d-8e06-d90ada499d9c","label":"Response equals response from test step 'Get Dataset Feed'","parent":{"ref":"EIDa6112087-5531-41d1-bfb0-8515d76785cc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\ndef response = context.expand( '${Get Dataset Feed#Response}' )\n\nif( response.toString() != messageExchange.getResponseContent().toString() ) {\n\tthrow new TranslatableAssertionError(\"TR.responseNotEqual\", \"testStep\", \"Get Dataset Feed\");\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID5c0ebf08-068d-4973-87b5-0290707fedbf","label":"Download dataset link","description":"Test if at least one feed entry is available with at least one link to download a file.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 26: Each 'Dataset Feed' shall contain at least one feed entry containing links to download the pre-defined dataset (e.g. as a GML file).</li>\n<li>TG Requirement 29: Each feed entry shall contain an Atom 'link' element that links to the pre- defined dataset file described by the entry. The value of the 'rel' attribute of this element shall be 'alternate' and a 'length' attribute (providing the length of the linked resource in octets) shall be provided if possible. Where a dataset is provided in multiple physical files, additional 'link' elements shall be provided in the feed entry, one link for each physical file.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-download-dataset\" target=\"_blank\">Abstract Test Case 'Link download dataset'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68","label":"Feed title exists","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9","label":"30 seconds timeout","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed","label":"HTTP status code is 200","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084","label":"At least one feed entry is available with at least one link to download a file","parent":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href\",\n \"TR.missingOneFeedEntryWithDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d","label":"Get file","description":null,"parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf99befdc-93e5-4089-8926-af36a5a35494","label":"30 seconds timeout","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3345203-a8f6-4db5-bf12-814533a4625d","label":"HTTP status code is 200, 204, 301, 302 or 303","parent":{"ref":"EID004bc31a-bb94-4a8b-a741-1d9a9000e54d"},"expectedResult":"exist","expression":"200, 204, 301, 302, 303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}]}},{"id":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f","label":"Get Dataset Feed and check optional length attributes","description":"A link \"length\" attribute (providing the length of the linked resource in octets *) must be provided if possible.","parent":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID6d506ce6-087f-451b-94ce-7d58a8edae2f","label":"Feed title exists","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID505e624d-ec6b-48a5-a0f6-925c25cf1452","label":"30 seconds timeout","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1a1bd393-4cdd-4204-aa58-445458503c79","label":"HTTP status code is 200","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf6549364-26ac-4a4a-8f6e-78588a6d68eb","label":"Download link has length attribute","parent":{"ref":"EIDf518a901-93c1-4613-a6c1-b41d6faf0a5f"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')]/@href\",\n \"TR.manual.checkLengthOfDlFile\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea","label":"Rights element","description":"Check that the feed's rights element exists.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 23: The 'rights' element of a 'Dataset Feed' shall contain information about rights or restrictions for that feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-rights-element\" target=\"_blank\">Abstract Test Case 'Rights element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243","label":"30 seconds timeout","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296","label":"HTTP status code is 200","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4","label":"Feed contains rights information","parent":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/atom:feed/atom:rights\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6","label":"Title","description":"Check that the feed's title is non-empty text.\n<br/>\n<br/>\n<b>Known limitations: </b> The ATS states that the test case needs to check wheter the value is 'alphanumeric'. This is inappropriate, since the value can contain characters that are not in the range of A-Z,a-z and 0-9, for instance text strings in greek.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 21: The 'title' element of a 'Dataset Feed' shall be populated with a human readable title for the feed.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-title\" target=\"_blank\">Abstract Test Case 'Title'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDbab92e23-e681-41e9-980f-59794067365d","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1","label":"30 seconds timeout","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d","label":"HTTP status code is 200","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf","label":"Feed title exists","parent":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.existsNonEmptyText(\"/atom:feed/atom:title\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID0218d717-6b00-460d-94cc-48039accb6ea","label":"Updated element","description":"Check if the updated element provides a valid date. The date must not be in the future or before the year 2012.\n\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 24: The 'updated' element of a 'Dataset Feed' shall contain the date, time and timezone at which the feed was last updated.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-updated-element\" target=\"_blank\">Abstract Test Case 'Updated element'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74","label":"30 seconds timeout","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1690699e-6bcd-4c07-bd29-aced03506d36","label":"HTTP status code is 200","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe785106d-a4fe-448f-8167-9eeb514661e7","label":"Updated element exists","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n \"year-from-dateTime(xs:dateTime(/atom:feed/atom:updated)) > 0\",\n \"TR.missingFeedUpdatedInformation\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f","label":"Date is not before the year 2012","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isFalse(\n \"//atom:entry/atom:updated/year-from-dateTime( xs:dateTime( . ) ) < 2012\",\n \"TR.dateIsBefore2012\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca40e458-362b-440c-a992-6efabf463339","label":"Date is not in the future","parent":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.TimeUtils;\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String now = TimeUtils.dateToIsoString( new Date() )\n\na.isFalse(\n \"//atom:entry/atom:updated/xs:dateTime(.) > xs:dateTime('\"+now+\"')\",\n \"TR.dateIsInTheFuture\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5","label":"Each entry has CRS information","description":"Check that each entry in the Dataset feed one valid category element is provided for the CRS.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 35: Each CRS representation shall have a 'category' element which refers to the CRS definition and code.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-crs\" target=\"_blank\">Abstract Test Case 'Each entry has CRS information'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EIDb84cb78c-b67f-451a-a4b3-510178c03621","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9","label":"30 seconds timeout","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef","label":"HTTP status code is 200","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDc5baa617-99df-453c-89d5-889050c29330","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23","label":"Language for download link","description":"Check that each entry which has more than one download link provides the hreflang attribute to indicate the language of the target dataset.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 31: Where alternative language representations of datasets are linked to, the 'hreflang' attribute of the link element shall be used to indicate the language of the target dataset as described in the Atom specification.</li>\n<li>TG Requirement 38: Where a feed is made available in alternative languages, links shall be provided to these alternative representations. These links shall each use the 'hreflang' attribute to indicate the language of the alternative representation. The value of the 'rel' attribute for these link elements this element shall be 'alternate'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-dataset-language\" target=\"_blank\">Abstract Test Case 'Language for download link'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID207c5c35-db32-41ba-879e-1e808b7489c6","label":"Get Dataset Feed","description":null,"parent":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11","label":"30 seconds timeout","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID49422432-0c1b-4af3-bfa2-251d5ae79228","label":"HTTP status code is 200","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce","label":"If an entry has more than 1 download link, test that each of these download links provides the hreflang attribute","parent":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.isTrue(\n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])=1 or \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')]/@hreflang) = \"+ \n \"count(//*:entry/*:link[(@rel='alternate' and @type!='application/atom+xml') or (@rel='section')])\",\n \"TR.missingLanguageForDownloadLink\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID55c069c6-94a5-4651-9af9-8246cc146022","label":"Links for Spatial Object Types","description":"Test if the dataset feed contains at least one link to a registry\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 28: Each feed shall contain an Atom 'link' element for each INSPIRE Spatial Object Type in the dataset. The link shall refer to the INSPIRE Registry unless the data does not conform to any Data Specification in which case a link to a local definition of the Spatial Object Type shall be used instead. The value of the 'rel' attribute of this element shall be 'describedby'. For definitions in the\nINSPIRE registry the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-links-spatial-object-types\" target=\"_blank\">Abstract Test Case 'Links for Spatial Object Types'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID7b0a0bbe-f703-489c-8693-efcaf6161199","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID76133e1d-5614-401d-852e-4ef8815a1cef","label":"HTTP status code is 200","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDabd27331-1785-46d9-86f2-d2139848a4c7","label":"30 seconds timeout","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17","label":"Root element 'feed' exists","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97","label":"Test if the dataset feed contains at least one link to a registry","parent":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']\", \n\t\"TR.missingLinkToRegistry\"\n);\n\na.existsNonEmptyText(\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\",\n\t\"/atom:feed/atom:link[@rel='describedby' and @type='text/html']/@href\", \n\t\"TR.missingLinkToRegistry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID59246a83-610b-4a03-9864-c882200e24ab","label":"Multiple links for multiple physical files","description":"Test for dataset which are provided in multiple physical files, that each file is linked via a separate link element. Each of these link elements shall have a \"rel\" value equal to \"section\".\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 32: Where a dataset is provided in multiple physical files: each file shall be linked to via a separate 'link' element. Each of these 'link' elements shall have a 'rel' value equal to 'section'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files\" target=\"_blank\">Abstract Test Case 'Multiple links for multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b","label":"HTTP status code is 200","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422","label":"30 seconds timeout","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID63eeee36-af99-4c6b-8afb-470859d16828","label":"Root element 'feed' exists","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3c96db82-a589-4a37-bcfd-73164aa74438","label":"Number of section links must not be exactly 1","parent":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.notExists(\n\t\"//*:entry[count(./*:link[@rel='section']) eq 1]\",\n\t\"TR.multipleLinksForMultipleFilesExpected\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0","label":"Separate entries for each format/CRS combination","description":"Test that the Dataset Feed contains separate entries for each format/CRS combination in which the pre-defined dataset is made available for download.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 27: Each 'Dataset Feed' shall contain separate entries for each format/CRS combination in which the pre-defined dataset is available to download.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-entries\" target=\"_blank\">Abstract Test Case 'Separate entries for each format/CRS combination'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"dependencies":{"testCase":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"}},"testSteps":{"TestStep":[{"id":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a","label":"Get Service Feed","description":"Requests the Service Feed and checks the CRS information.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f","label":"30 seconds timeout","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78","label":"Root element 'feed' exists","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335","label":"Each entry has an element category, including a term and label, to refer to CRSs.","parent":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15","label":"Get Dataset Feed","description":"Requests the Dataset Feed and checks the CRS and alternate link combinations.","parent":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0","label":"30 seconds timeout","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID03b95227-e284-4279-87f2-9928c6a4eccc","label":"HTTP status code is 200","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID450d4218-9461-496d-aa2f-33a2b3b8389b","label":"Root element 'feed' exists","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":null,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc15a6218-8819-40b8-a364-eb9720a3838b","label":"Exactly one category per entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(atom:category[@term])>1])\",\n\t\"//atom:entry[count(atom:category[@term])>1]\",\n\t\"0\",\n\t\"TR.exactlyOneCategoryPerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5","label":"Exactly one alternate link type per Dataset feed entry","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.equals(\n\t\"count(//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1])\",\n\t\"//atom:entry[count(distinct-values(atom:link[@rel='alternate']/@type))>1]\",\n\t\"0\",\n\t\"TR.exactlyOneAlternateLinkTypePerEntry\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID81bdd847-687d-4597-ba58-99963ff3635a","label":"Alternate link types and CRS combinations are unique","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"<etfTranslate what='TR.uniqueAlternateLinkTypes'/>","expression":"<etfTranslate what='TR.uniqueAlternateLinkTypes'>\n{\n\n let $sortedValues := for $entry in //*:entry\n order by $entry/*:category[1]/@term, $entry/*:link[@rel = 'alternate'][1]/@type\n return concat('CRS ', $entry/*:category[1]/@term, ' with type ', $entry/*:link[@rel = 'alternate'][1]/@type, ' ')\n \n let $duplicates := $sortedValues[let $pos := position() return . = $sortedValues[$pos+1]]\n let $duplicateCount := count( $duplicates )\n let $distinctDuplicates := distinct-values( $duplicates )\n \n return if ($duplicateCount > 0) then \n (<count> { $duplicateCount } </count>,<duplicates> { $distinctDuplicates } </duplicates>) \n else ()\n\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e","label":"Category terms in this Dataset feed exist in the Download Service Feed","parent":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\nfinal String terms = context.expand( '${Transfer_Properties#categories}' );\nlog.info(\"Download Service Feed terms: \"+terms);\n\na.notExists(\n\t\"//atom:entry/atom:category[string-length(@term)>0 and string-length(@label)>0 and not(contains('\"+terms+\"', @term))]\",\n\t\"TR.atLeastOneCategoryNotInServiceFeed\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f","label":"Use INSPIRE media-types only","description":"Test that only media types listed in the INSPIRE media-types register are used.\n<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 30: The 'type' attribute of the link element shall be used to indicate the media type of resource that will be returned if the link is resolved. A valid media type must be used for the value of this attribute; if the media type is not registered with IANA it should still follow the conventions for unregistered media types.</li>\n<li>TG Requirement 34: Only media types listed in the INSPIRE media-types register shall be used.</li>\n\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-link-media-type\" target=\"_blank\">Abstract Test Case 'Use INSPIRE media-types only'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2","label":"Get INSPIRE Media Types","description":"Get the list of INSPIRE media types from https://inspire.ec.europa.eu/media-types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10","label":"30 seconds timeout","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3c9511c-4101-4915-81b9-aba6e2072815","label":"HTTP status code is 200","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a","label":"Root element 'feed' exists","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID3df8c60f-a520-4f3a-afa0-1446c757112c","label":"ID is INSPIRE media types","parent":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\n\t\"/atom:feed/atom:id[contains(., '://inspire.ec.europa.eu/media-types')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f","label":"Iterate over Media Type entries","description":null,"parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Types\")\n\ndef mediaTypeUrls = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:link[@rel='self']/@href\" );\ndef mediaBaseTypes = xmlHolder.getNodeValues( \"/*:feed/*:entry/*:title\" );\nlog.info(\"mediaTypeUrls: \" + mediaTypeUrls);\n\n// clear url to test\nph.setTransferProperty(\"mediaTypeUrl\", \"\")\nph.setTransferProperty(\"mediaTypes\", \"\")\n\nfor(int i=0; i < mediaTypeUrls.size(); i++) {\n\tfinal String url = mediaTypeUrls[i];\n\tfinal String baseType = mediaBaseTypes[i];\n\n\tlog.info(\"Using URL: \"+url)\n\tph.setTransferProperty(\"mediaTypeUrl\", url)\n\tph.runTestStep(\"Get INSPIRE Media Subtype\");\n\tdef respXmlHolder = ph.getTestStepResult(\"Get INSPIRE Media Subtype\")\n\tdef extractedMediaTypes = respXmlHolder.getNodeValue( \"string-join(/*:feed/*:entry/*:title, '')\" );\n\tfinal String mediaTypes = ph.getTransferProperty(\"mediaTypes\")\n\tif(mediaTypes!=\"\") {\n\t\tph.setTransferProperty(\"mediaTypes\", mediaTypes+\" \"+extractedMediaTypes)\n\t}else{\n\t\tph.setTransferProperty(\"mediaTypes\", extractedMediaTypes)\n\t}\n}\n\nph.disableTestSteps([\"Get INSPIRE Media Subtype\"]);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID0531fe14-2169-4a9e-a1da-30040ea73277","label":"Get INSPIRE Media Subtype","description":"Get the list of INSPIRE media sub types with 'Accept'-Header 'application/atom+xml'","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d","label":"30 seconds timeout","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID7389eee5-84b7-4333-8848-9f5b394c9d67","label":"HTTP status code is 200","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819","label":"Root element 'feed' exists","parent":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c","label":"Get Dataset Feed","description":"Get the Dataset Feed and check if it contains valid INSPIRE media types","parent":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4","label":"HTTP status code is 200","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113","label":"30 seconds timeout","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84","label":"Root element 'feed' exists","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6","label":"Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used","parent":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"expectedResult":"<etfTranslate what=\"TR.notAnInspireMediaType\"/>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<etfTranslate what=\"TR.notAnInspireMediaType\">\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\n(<links>$entry/atom:link[@rel='alternate']/@href</links>,\n<ids>$entry/atom:id</ids>,\n<types>$entry/atom:link[@rel='alternate']/@type</types>)\n}\n</etfTranslate>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}}]}},{"id":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993","label":"Provide guidance for downloading multiple physical files","description":"Test that a description of the dataset structure is provided either in an atom \"content\" element as free text, or in an external document which is the target of another \"link\" element where a dataset is provided in multiple physical files.<br/>\n<br/>\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 33: Where a dataset is provided in multiple physical files: a description of the dataset structure shall be provided EITHER in an atom 'content' element as free text, OR in an external document which is the target of another 'link' element. Where a 'link' element is used this element shall have a 'rel' value equal to 'alternate' and a suitable media type shall be used for the 'type' value.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-atom/3.1/atom-pre-defined/dataset-feed-multiple-files-description\" target=\"_blank\">Abstract Test Case 'Provide guidance for downloading multiple physical files'</a>","parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":{"id":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856","label":"Get Dataset Feed","description":null,"parent":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID10178b9c-8e01-498c-8975-2d49fff98a21","label":"HTTP status code is 200","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96","label":"30 seconds timeout","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7","label":"Root element 'feed' exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDf22143da-6d29-44de-8723-b11e85e7b441","label":"Guidance exists","parent":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.isTrue(\n\t\"empty(//atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0])\",\n\t\"TR.missingGuidanceForDownloadingMultipleFiles\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID01859f31-5d26-452b-a2cc-6d99b91117a1","label":"TODO Feed Elements Mandatory","description":null,"parent":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"testSteps":{"TestStep":[{"id":"EID6a056425-bb10-4c60-825f-918a41486935","label":"GetServiceFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EID72b3ddf5-299c-4614-98a5-6d6bff20f601","label":"Service Feed available","parent":{"ref":"EID6a056425-bb10-4c60-825f-918a41486935"},"expectedResult":"exist","expression":"200,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}},{"id":"EID1d725a88-4a09-4d3c-86f2-a5a530c5788e","label":"RunTestsForAllDatasetFeeds","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\n// Start parsing of Service Feed\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(props.getPropertyValue(\"feedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the URLs of the Dataset Feeds\ndef dataFeedUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[@rel='alternate' and @type='application/atom+xml']/@href\");\n\n// clear url to run the Dataset Feed tests, set the url to the serviceEndpoint to be sure.\nprops.setPropertyValue(\"dataFeedURL\",testRunner.testCase.testSuite.project.getPropertyValue(\"serviceEndpoint\"))\n\n// now run Feed test for each dataFeedUrl, to validate Dataset feeds\nfor( i in dataFeedUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to Dataset Feeds. Now checking Dataset Feed with URL: \" + i)\n props.setPropertyValue(\"dataFeedURL\",i)\n props.setPropertyValue(\"dataFeedURLEncoded\",i.replaceAll(\"&\",\"&\"))\n testRunner.runTestStepByName(\"ValidateDatasetFeed\")\n // testRunner.runTestStepByName(\"Tracer\")\n testRunner.runTestStepByName(\"PropertyTransferDatasetFeedXml\")\n testRunner.runTestStepByName(\"RunTestsForAllDatasetUrls\")\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Run TestCase M-04: Dataset Metadata Mandatory\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c","label":"ValidateDatasetFeed","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDa0acb1e7-be24-468d-8647-fc0603312ea6","label":"M-04##AtomLinkSelf: Feed link to self exists and has proper language references","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $linkself:=/atom:feed/atom:link[@rel='self' and @type='application/atom+xml' and @hreflang=//atom:feed/atom:title/@xml:lang]/@href\nreturn\nif ($linkself='${#dataFeedURLEncoded}')\nthen \"\"\nelse \"The Atom feed does NOT contain a link to itself including a language reference. Check the element /atom:feed/atom:link with @rel='self'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID8523ae5b-baf3-42e3-9f97-4b75c2d41df2","label":"M-04##req20: Feed title exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $title:=/atom:feed/atom:title\nreturn\nif (string-length($title)=0)\nthen \"The Atom feed does NOT contain a Feed Title.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfed3a553-ca1f-4d25-9d19-bf83d617f84d","label":"M-04##req21: Feed id refers to self URL","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $atomid:=/atom:feed/atom:id\nreturn\nif ($atomid!='${#dataFeedURLEncoded}')\nthen concat(\"The Atom feed id \", $atomid,\" does NOT refer to the self URL (\",'${#dataFeedURLEncoded}',\").\")\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDe8aaf0c5-a1eb-4795-abdf-50eed952c424","label":"M-04##req22: Feed rights element exists","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $rights:=/atom:feed/atom:rights\nreturn\nif (string-length($rights)=0)\nthen \"The Atom feed does NOT contain rights information.\"\nelse \"\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID484655d1-a8b6-45ba-b895-a323cb52f05b","label":"M-04##req23: Feed updated element exists and contains a date and time","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $updated:=year-from-dateTime(xs:dateTime(/atom:feed/atom:updated))\nreturn\nif ($updated > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain updated information.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID6ed3a5ef-f791-4252-93b1-1237a811e900","label":"M-04##req24: Feed contains an author name and email address","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $author:=/atom:feed/atom:author[string-length(./atom:name)>0 and string-length(./atom:email)>0]\nreturn\nif (exists($author))\nthen \"\"\nelse \"The Atom feed does NOT contain an author name and/or email address.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDf506f6b8-3b2c-472f-aa14-cdb03782748f","label":"M-04##req25-28-31: Feed contains at least one entry for data, with a link to the dataset and length set or a section link in case of multiple files.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $nrdatalinks:=count(//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' and number(@length) > 0) or (@rel='section')])\nreturn\nif ($nrdatalinks > 0)\nthen \"\"\nelse \"The Atom feed does NOT contain any entries with a correct link for data. Check if the entries contain alternate links (not referring to another Atom feed) or section links for multiple files.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3c9cdf67-38ba-4a51-85b0-a470a4ca411e","label":"M-04##req26a: Dataset feeds contain seperate entries for each format/CRS combination. Each entry link for download has one / the same (media)type","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='alternate' and @type!=../atom:link[1][@rel='alternate']/@type]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's link for download has different (media) types.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID3edea1b7-a51a-477a-a819-7a1b163feab6","label":"M-04##req26b: Dataset feeds contain seperate entries for each format/CRS combination. Each entry has the same CRS category elements","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:category[@term!=../atom:category[1]/@term]]\nreturn\nconcat (\"The entry with id: \",$entry/atom:id,\" does not contain separate entries for each media type/CRS combination. This entry's category terms are not the same, indicating that multiple CRSes are offered in the same entry.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID299103d0-5167-4cf4-b64c-a251f7b0f894","label":"M-04##req27: Feed contains at least one link to Spatial Object descriptions (in text/html)","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nlet $sodesc:=/atom:feed/atom:link[@rel='describedby' and @type='text/html']\nreturn\nif (exists($sodesc))\nthen \"\"\nelse \" there is no link to a Spatial Object description. That is: a link with type='text/html' and rel='describedby'.\"\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EIDfa8fff6a-c9e8-4b7e-8997-6d29163359a3","label":"M-04##req31: If a section link is provided (for multiple files) then there should be more than 1 section link","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:link[@rel='section'])=1]\nreturn\nconcat (\"If a section link is provided (for multiple files) then there should be more than 1 section link. The entry with id \", $entry/atom:id , \" has only 1 section link.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID36243a7d-204a-4d0b-b1ce-da634f14d302","label":"M-04##req32: If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[./atom:link[@rel='section'] and count(./atom:link[@rel='alternate'])=0 and count(./atom:content) = 0]\nreturn\nconcat (\"If multiple files are provided, then the links shall be of rel='section' and there shall be a content element or alternate link as a description. The entry with id \", $entry/atom:id , \" does not have this.\")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID4b9ecdf9-3b55-45f6-9343-d08cb5d04b56","label":"M-04##req34: Only media types listed in the INSPIRE media-types register at https://inspire.ec.europa.eu/media-types/ shall be used.","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\ndeclare namespace inspire_dls='http://inspire.ec.europa.eu/schemas/inspire_dls/1.0';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry\nwhere contains('${#mediaTypes}', $entry/atom:link[@rel='alternate']/@type)!=true\nreturn\nconcat(\"The alternate link \",$entry/atom:link[@rel='alternate']/@href,\" for entry with id \",$entry/atom:id,\" offers a media type '\",$entry/atom:link[@rel='alternate']/@type,\"' that is not in the INSPIRE list at https://inspire.ec.europa.eu/media-types/. \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}},{"id":"EID86273ea9-66e7-41d8-a171-3a8db6cbbcfc","label":"M-04##req35: Each entry shall have an element category for the CRS","parent":{"ref":"EIDd4c09a50-2618-4207-ae0d-0d5f772b840c"},"expectedResult":"<result>AssertionFailures:</result>","expression":"declare namespace atom='http://www.w3.org/2005/Atom';\ndeclare namespace georss='http://www.georss.org/georss';\ndeclare namespace xlink='http://www.w3.org/1999/xlink';\n\n<result>AssertionFailures:\n{\nfor $entry in //atom:entry[count(./atom:category[string-length(@term)>0 and string-length(@label)>0])!=1]\nreturn\nconcat (\"Each entry shall have one element category for the CRS. The entry with id \", $entry/atom:id , \" does not have 1 element, but :\" , count(./atom:category[string-length(@term)>0 and string-length(@label)>0]), \". \")\n}\n</result>","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/5c28b666-4dda-43af-aa6e-1eed6212d8d8.json"}}]}},{"id":"EID5ea3f9f5-ea00-4ce2-b94f-60274c759d85","label":"RunTestsForAllDatasetUrls","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"props = testRunner.testCase.testSteps['Properties']\n\ndef groovyUtils = new com.eviware.soapui.support.GroovyUtils(context);\ndef feedXmlHolder = groovyUtils.getXmlHolder(testRunner.testCase.testSuite.project.getPropertyValue(\"dataFeedXml\"))\nfeedXmlHolder.namespaces[\"atom\"] = \"http://www.w3.org/2005/Atom\";\nfeedXmlHolder.namespaces[\"xlink\"] = \"http://www.w3.org/1999/xlink\";\n\n// Pull out the dataSetUrlNodes\ndef dataSetUrlNodes = feedXmlHolder.getNodeValues(\"//atom:entry/atom:link[(@rel='alternate' or @rel='section') and @type!='application/atom+xml']/@href\");\n\n// Then run Feed test for each dataSetUrl\nfor( i in dataSetUrlNodes )\n{\n i=i.replaceAll(\"%7B\",\"{\")\n i=i.replaceAll(\"%7D\",\"}\")\n log.info(\"The Atom feed refers to a dataset to download at the URL: \" + i)\n props.setPropertyValue(\"dataSetURL\",i)\n testRunner.runTestStepByName(\"ResolveDatasetLink\")\n // testRunner.runTestStepByName(\"Tracer\")\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8","label":"ResolveDatasetLink","description":null,"parent":{"ref":"EID01859f31-5d26-452b-a2cc-6d99b91117a1"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":{"id":"EIDfced5ec0-ac9b-4792-bba9-0d1682a5c048","label":"Response starts within 30 seconds (using HTTP HEAD)","parent":{"ref":"EID59a32c2c-e930-4fa5-ac61-f2f94d55bdb8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}}}}]}}]}},{"id":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2","label":"OpenSearch Description","description":"Test module for checking the OpenSearch Description which is referenced by a Service Feed.\n<br/><br/>\n<b>Known limitations: </b> Response schema validation is not implemented yet.","testCases":{"TestCase":[{"id":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351","label":"Get OpenSearch Description link","description":"Technical Test Case to retrieve and set theURL to the OpenSearch Description. This Test Case depends on the Test Case 'Link to OpenSearch Description document' in the 'Download Service Feed' test module.","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684","label":"Get Service Feed","description":"Requests the Service Feed and set the URL to the OpenSearch description.","parent":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb98e8d08-b750-4911-a3ed-a1b55ea4f400","label":"HTTP status code 200 is returned","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8c018d06-fce0-4029-9c58-62e544d85b07","label":"30 seconds timeout","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID3cee0dcc-2196-40ab-bd5f-a2ef0ed0d0d8","label":"Root element 'feed' exists","parent":{"ref":"EIDf150efa8-92d2-4fab-bfdf-e1ffbe8ff684"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID2627cf68-632b-45bc-b53e-74edae092d3a","label":"Provide languages","description":"The test case requests the OpenSearch Description document and checks if it provides at least one 'Language' element.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 45: For each language supported by the download service, the OpenSearch\ndescription shall contain a 'Language' element that contains the language\ncode. The first 'Language' element shall contain the Default Language.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-provides-languages\" target=\"_blank\">Abstract Test Case 'OpenSearch Description provides languages'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID1f602fae-4534-4d14-9b57-46dcb2702372","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID27a86dd2-6078-4fc4-bd6a-b0e62395b2e4","label":"HTTP status code 200 is returned","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDb5528c1c-abba-48af-84e7-c1a42b16ff4f","label":"30 seconds timeout","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDdbfd8d9a-6b29-4929-b5e7-f8899be624c7","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID0ca5302c-48aa-4097-912f-266ed6f51e05","label":"Description provides at least one Language","parent":{"ref":"EID1f602fae-4534-4d14-9b57-46dcb2702372"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Language\",\n \"TR.missingAtLeastOneOpenSearchDescriptionLanguage\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd","label":"Get Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if all \"Get Spatial Dataset\" operation responses have the same content-type as the media-type in the OpenSearch Description.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 43:The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Get Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'crs', 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value\ncorresponding to the media type of the result and an attribute 'rel' with the\nvalue 'results'. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-one-url-get-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description one URL Get Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDc839657a-0d7c-49d9-8665-ee32690350db","label":"HTTP status code 200 is returned","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2a9be6d6-6a7f-450c-b06b-04f9947d5ede","label":"30 seconds timeout","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID89094358-9df9-46f9-b3ee-11735bd3eaf8","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID56bcbfd7-4d1e-40c9-a718-12f1b5f7e77f","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID74afa0d4-5f0e-4a47-b08f-7ca403dd85e3","label":"At least one Language provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID793e1bf6-1c47-4819-b552-1be93e488ee8","label":"At least one CRS provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDae479e65-ab3b-4e21-92ec-4acfdfcc8424","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EIDc6f32dae-43d2-4dd7-9c6e-6d252e83886d"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EIDb0803022-623e-456c-aa2e-bc968ee33150","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EIDea92f351-8560-4190-b129-202d1de67410","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID90ac1268-2c6a-46d4-94da-cb1a595847b2","label":"HTTP status code 200 is returned","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID4c8b189c-31ec-4098-8f45-6952a58780c6","label":"30 seconds timeout","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID75f52c4d-7efd-412d-b177-9c7b581e95d3","label":"Response content-type equals media-type from Get Spatial Dataset URL","parent":{"ref":"EIDea92f351-8560-4190-b129-202d1de67410"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\nString mimeType = context.expand('${Transfer_Properties#mimeType}');\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(mimeType)) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", mimeType, \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478","label":"Describe Spatial Dataset operation","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for the Describe Spatial Data Set operation.\n<br />\n<br />\nRelevant Requirements:\n<ul>\n<li>TG Requirement 42: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for the Describe Spatial Data Set operation. This template shall\naccept the INSPIRE parameters 'spatial_dataset_identifier_code',\n'spatial_dataset_identifier_namespace' and the OpenSearch 'language'\nparameter. The 'Url' element shall have an attribute 'type' with a value of\n'application/atom+xml' and an attribute 'rel' with the value 'describedby'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-describe-spatial-dataset-operation\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL Describe Spatial Dataset operation'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96","label":"Get OpenSearch Description","description":"Requests the OpenSearch Description.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd1e8ab33-11a0-45da-b116-4a4c8ffa139c","label":"HTTP status code 200 is returned","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDab501b29-1391-4093-87bf-5a67b23a451b","label":"30 seconds timeout","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDf244d763-7392-49c7-aedc-74703bd8dcca","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID7263d98c-e24b-4f93-96f1-cb420ef57a95","label":"Description provides at least one \"Url\" element that describes a template URL for the Describe Spatial Data Set operation","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='describedby' and @type='application/atom+xml' and starts-with(@template,'http') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDa3d96fc4-8656-44a2-a219-261052291d3f","label":"At least one Language provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @language] or /os:OpenSearchDescription/os:Language\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDd6ecb614-9004-4d11-8e4c-26f2ce1a614f","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID95ff121f-4671-4cdd-b851-ddb3119b7c96"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\",\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9ac761b8-d714-444f-9b15-d3ac4a3dda9b","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='describedby' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Describe Spatial Dataset response equals 'application/atom+xml'.","parent":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDd77ce483-2a5c-42af-b442-0043e535de70","label":"HTTP status code 200 is returned","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDa1a33924-7e37-4ae9-9d59-24c5bf976d8e","label":"30 seconds timeout","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDfbb9511f-dd9a-4be4-b8ba-d35eb2039432","label":"Response content-type is 'application/atom+xml'","parent":{"ref":"EID1693ebfb-e21b-457b-9fe3-ebee745d2204"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].contains(\"application/atom+xml\")) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"application/atom+xml\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287","label":"Query examples for each dataset","description":"The test case requests the OpenSearch Description document and checks if it provides a Describe Spatial Dataset and Get Spatial Dataset url.\nFor each category CRS from the Describe Spatial Dataset response a Get Spatial Dataset request with the CRS, the provided inspire_dls:spatial_dataset_identifier_code and inspire_dls:spatial_dataset_identifier_namespace is invoked.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 44: For each dataset available the OpenSearch description shall contain a 'Query'\nelement that has a 'role' attribute with the value 'example' and\n'spatial_dataset_identifier_code' and 'spatial_dataset_identifier_namespace'\nattributes together containing unique spatial dataset identifier. The value of the\n'crs' and 'language' attributes shall be set to the values considered as the\ndefault ones by the service provider. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-query-examples-for-each-dataset\" target=\"_blank\">Abstract Test Case 'OpenSearch Description Query examples for each dataset'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":[{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}]},"testSteps":{"TestStep":[{"id":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDcc65b492-6f51-40bd-a1f6-2b4fb6e8919e","label":"HTTP status code 200 is returned","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDcd7b5983-205a-4a5f-8ed9-acfb3adf3baa","label":"30 seconds timeout","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2ab6ede6-3e2a-4f3c-9dfe-8c61dc161e10","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfac69c38-3e71-4586-a376-9504f2c3eb53","label":"Description provides at least one \"Url\" element that describes a template URL for the Get Spatial Data Set operation","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and starts-with(@template,'http') and contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\",\n \"TR.missingAtLeastOneOpenSearchDescriptionUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDc6baa4d2-7ab0-4861-af59-76cb9955bd99","label":"At least spatial_dataset_identifier_namespace and spatial_dataset_identifier_code provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:spatial_dataset_identifier_namespace and @inspire_dls:spatial_dataset_identifier_code]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDfd3132fa-1ea8-420b-832a-12afda7a537d","label":"At least one CRS provided","parent":{"ref":"EID0794eacb-a4a7-4a43-acc6-1f0dcb958bc8"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Query[@role='example' and @inspire_dls:crs]\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID9858617d-7532-45ec-b33e-dc2ca953dec2","label":"Iterate over Describe Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Get OpenSearch Description\")\n\ndef describeSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"describeSpatialDataSetUrls: \" + describeSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\n// clear url to test\nph.setTransferProperty(\"describeSpatialDataSetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in describeSpatialDataSetUrlTemplates ) {\n\tString describeSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+describeSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(describeSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(describeSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"describeSpatialDataSetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Describe Spatial Dataset\");\n\t\t\t\t\tph.runTestStep(\"Iterate over Get Spatial Dataset URL\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2","label":"Describe Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EIDb4f5a27b-e2d2-40d0-bcfc-c58962e49e58","label":"HTTP status code 200 is returned","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDbc1f86a5-e03a-43de-bb43-124085e61f12","label":"30 seconds timeout","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe3ad2fd7-379c-4d9f-807f-db7975c3b0e6","label":"Root element 'feed' exists","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDdc98fad0-7697-479a-ac12-e9d4fd36242f","label":"Each entry has an element category, including a term and label, to refer to CRSs","parent":{"ref":"EID8dadd33c-6020-4533-827c-f01dbcebf4f2"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.notExists(\n \"//atom:entry[count(atom:category[string-length(@term)>0 and string-length(@label)>0])<1]\",\n \"TR.missingCategory\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID4a9036db-eb9c-458c-b8ad-58b3ff5b82a7","label":"Iterate over Get Spatial Dataset URL","description":null,"parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"import de.interactive_instruments.xtf.*;\nSOAPUI_I.init(log,context,testRunner);\nimport de.interactive_instruments.UriUtils;\n\nProjectHelper ph = new ProjectHelper();\ndef xmlHolder = ph.getTestStepResult(\"Describe Spatial Dataset\")\n\ndef getSpatialDataSetUrlTemplates = xmlHolder.getDomNodes(\n\t\"/*:OpenSearchDescription/*:Url[@rel='results' and starts-with(@template,'http') and \"+\n\t\"contains(@template,'crs') and contains(@template,'spatial_dataset_identifier_code') and \"+\n\t\"contains(@template,'spatial_dataset_identifier_namespace') and contains(@template,'language')]\");\nlog.info(\"getSpatialDatasetUrls: \" + getSpatialDataSetUrlTemplates);\n\n\ndef languages = xmlHolder.getNodeValues(\n\t\"distinct-values((/*:OpenSearchDescription/*:Query[@role='example']/@language , /*:OpenSearchDescription/*:Language))\");\nlog.info(\"languages: \" + languages);\n\ndef namespaces = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_namespace\");\nlog.info(\"namespaces: \" + namespaces);\n\ndef codes = xmlHolder.getNodeValues(\n\t\"/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:spatial_dataset_identifier_code\");\nlog.info(\"codes: \" + codes);\n\ndef crss = xmlHolder.getNodeValues(\n\t\"distinct-values(/*:OpenSearchDescription/*:Query[@role='example']/@inspire_dls:crs)\");\nlog.info(\"CRSs: \" + crss);\n\n// clear url to test\nph.setTransferProperty(\"getSpatialDatasetUrl\", \"\")\n\nvoid replaceParameter(parameters, cleanParameters, templateKey, templateValue) {\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(value.contains(\"{\"+templateKey+\"}\") || value.contains(\"{\"+templateKey+\"?}\")) {\n\t\t\tcleanParameters.put(e.key, templateValue);\n\t\t}\n\t}\n}\n\ndef initDefaultParameters(parameters) {\n\tfinal Map<String, String> params = new HashMap<String, List<String>>();\n\tfor ( e in parameters ) {\n\t\tdef value = e.value[0]\n\t\tif(!(value.contains(\"{\") && value.contains(\"}\"))) {\n\t\t\tparams.put(e.key, value);\n\t\t}\n\t}\n\treturn params\n}\n\ndef invokedUrls = [] as HashSet\n\nfor( node in getSpatialDataSetUrlTemplates ) {\n\tString getSpatialDataSetUrlTemplate = node.attributes.getNamedItem(\"template\").getNodeValue()\n\tString mimeType = node.attributes.getNamedItem(\"type\").getNodeValue()\n\n\tlog.info(\"Using template URL: \"+getSpatialDataSetUrlTemplate);\n\tdef parameters = UriUtils.getQueryParameters(getSpatialDataSetUrlTemplate, false)\n\tfinal Map<String, String> cleanParameters = initDefaultParameters(parameters)\n\tfinal String endpoint = UriUtils.withoutQueryParameters(getSpatialDataSetUrlTemplate)\n\n\tfor(int j=0; j<codes.size(); j++) {\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_code\", codes[j] )\n\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:spatial_dataset_identifier_namespace\", namespaces[j] )\n\n\t\tfor(crs in crss) {\n\t\t\treplaceParameter(parameters, cleanParameters, \"inspire_dls:crs\", crs )\n\n\t\t\tfor(language in languages) {\n\t\t\t\treplaceParameter(parameters, cleanParameters, \"language\", language )\n\t\t\t\tfinal String url = UriUtils.withQueryParameters(endpoint, cleanParameters)\n\t\t\t\tif(!invokedUrls.contains(url)) {\n\t\t\t\t\tlog.info(\"Using URL: \"+url)\n\t\t\t\t\tph.setTransferProperty(\"getSpatialDatasetUrl\", url)\n\t\t\t\t\tph.setTransferProperty(\"mimeType\", mimeType)\n\t\t\t\t\tph.runTestStep(\"Get Spatial Dataset\");\n\t\t\t\t\tinvokedUrls.add(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/90bdc939-bd42-41a0-9ef8-19e0ec04f89d.json"}},{"id":"EID3e55838a-6ac8-422c-84f3-a958d9956095","label":"Get Spatial Dataset","description":"Checks if the content-type of the Get Spatial Dataset response equals the media-type from the Open Search Description document","parent":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID48c19232-171e-4726-80d5-e8e18c7ac347","label":"HTTP status code 200,206,301,302 or 303 is returned","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"exist","expression":"200,206,301,302,303","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID8bb0253c-0901-4714-babe-8175b5e71aa5","label":"30 seconds timeout","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID71d855f0-318b-4449-87cf-5841eb9f68e2","label":"Root element 'feed' exists","parent":{"ref":"EID3e55838a-6ac8-422c-84f3-a958d9956095"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/atom:feed\", \"TR.missingFeedRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}},{"id":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a","label":"URI to itself","description":"The test case requests the OpenSearch Description document and checks if it provides a self URL.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 40: The OpenSearch description shall contain a 'Url' element that describes an\nHTTP URI for the OpenSearch Description document. The value of the 'rel'\nattribute of this element shall be 'self', the value of the 'type' attribute shall be\n'application/opensearchdescription+xml' and the value of the 'template'\nattribute shall be the HTTP URI of the document. </li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-uri-to-itself\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URI to itself'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":{"id":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID07baa915-7c6b-4fad-b1bf-ef03d306dc85","label":"HTTP status code 200 is returned","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDde93e839-9029-4c1b-a47b-950437792241","label":"30 seconds timeout","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID2efd175c-e24e-4924-9bdd-13237591a99f","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EIDb0365336-42e6-48a6-84f1-e0ea2ef34168","label":"Self reference equals URL of requested resource","parent":{"ref":"EID604e5275-94c1-4ee9-81a0-6dd5a9309d06"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nimport de.interactive_instruments.xtf.*\nSOAPUI_I.init(log, context, messageExchange)\nfinal ProjectHelper ph = new ProjectHelper()\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.equals(\n \"/os:OpenSearchDescription/os:Url[@rel='self' and @type='application/opensearchdescription+xml']/@template\",\n \"/os:OpenSearchDescription/os:Url\",\n messageExchange.getEndpoint(),\n \"TR.incorrectFeedSelfReference\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}}},{"id":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8","label":"Generic search queries URL","description":"The test case requests the OpenSearch Description document and checks if it provides an \"Url\" element that describes a template URL for generic search queries.\nThe resource at the URL is retrieved and checked if it returns HTML content.\n<br/>\n<br/>\nRelevant Requirements:\n<ul>\n<li>TG Requirement 41: The OpenSearch description shall contain a 'Url' element that describes a\ntemplate URL for generic search queries. The value of the 'rel' attribute of this\nelement shall be 'results', the value of the 'type' attribute shall be 'text/html'.</li>\n</ul>\n<br/>\n<br/>\nSource: <a href=\"http://inspire.ec.europa.eu/id/ats/download-service/master/atom-pre-defined/opensearch-description-url-generic-search-queries\" target=\"_blank\">Abstract Test Case 'OpenSearch Description URL generic search queries'</a>","parent":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"dependencies":{"testCase":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"}},"testSteps":{"TestStep":[{"id":"EIDd7849eeb-9029-4354-96fa-e3029f94c431","label":"Get OpenSearch Description","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID8cb55602-5705-4d92-8d35-08732f19ae81","label":"HTTP status code 200 is returned","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID16c6d755-39bc-4f78-8ece-4799d2d67acc","label":"30 seconds timeout","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID5431e387-2cf1-46c2-bc0f-5f62496cda67","label":"Root element 'OpenSearchDescription' exists","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nAssert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\na.exists(\"/os:OpenSearchDescription\", \"TR.missingOpenSearchDescriptionRootElement\");","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}},{"id":"EID6135b42e-8137-40d5-902b-5ff839d143e2","label":"Description provides a template URL for generic search queries","parent":{"ref":"EIDd7849eeb-9029-4354-96fa-e3029f94c431"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.*\nfinal Assert a = new Assert(messageExchange, context, log, Assert.INSPIRE_DS_NS);\n\na.exists(\n \"/os:OpenSearchDescription/os:Url[@rel='results' and @type='text/html']/@template\",\n \"TR.missingGenericSearchQueriesUrl\"\n);","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}},{"id":"EID57097ab3-b698-4767-886b-45496e3bd4b6","label":"Get resource at generic search quries URL","description":"Requests the Service Feed and checks if the dataset feed links are correct.","parent":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"statementForExecution":"NOT_APPLICABLE","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/6b16aa44-bdc7-4120-a790-4b74fc9ace62.json"},"testAssertions":{"TestAssertion":[{"id":"EID69821145-bef3-41af-adfe-226eaf86cd9a","label":"HTTP status code 200 is returned","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"exist","expression":200,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EID9dca43cb-4a8a-4789-ae48-450166a6ce0b","label":"30 seconds timeout","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":30000,"testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/e7e29c93-4c50-41c2-82d1-0f2db6a1abf6.json"}},{"id":"EIDe182dea2-63b0-4dff-94fb-c815e45da6f6","label":"Content-Type is HTML","parent":{"ref":"EID57097ab3-b698-4767-886b-45496e3bd4b6"},"expectedResult":"NOT_APPLICABLE","expression":"import de.interactive_instruments.etf.suim.TranslatableAssertionError;\n\nif(messageExchange.responseHeaders[\"Content-Type\"]==null) {\n\tthrow new TranslatableAssertionError(\"TR.missingContentType\");\n}\n\nif(!messageExchange.responseHeaders['Content-Type'][0].startsWith('text/html')) {\n\tthrow new TranslatableAssertionError(\"TR.unexpectedContentType\", \"expected\", \"text/html\", \"actual\", messageExchange.responseHeaders['Content-Type'][0]);\n}","testItemType":{"href":"https://inspire.ec.europa.eu/validator//v2/TestItemTypes/fad9282c-1f1f-492b-b6ab-248430154310.json"}}]}}]}}]}}]}}},"testObjects":{"TestObject":{"id":"EID53755927-a0d1-4467-9399-f58fdd6d1844","remoteResource":"https://geodata.nationaalgeoregister.nl/atom/index.xml","label":"index.xml","description":"Web Test Object","version":"1.0.0","author":"unknown","creationDate":"2020-10-28T11:14:47.734Z","lastEditor":"unknown","lastUpdateDate":"2020-10-28T11:14:48.626Z","disabled":false,"testObjectTypes":{"testObjectType":{"ref":"EID49d881ae-b115-4b91-aabe-31d5791bce52"}},"ResourceCollection":{"resource":{"name":"serviceEndpoint","href":"https://geodata.nationaalgeoregister.nl/atom/index.xml"}},"Properties":{"property":[{"name":"temporary","$":true},{"name":"data.downloadable","$":false}]}}},"testObjectTypes":{"TestObjectType":{"id":"EID49d881ae-b115-4b91-aabe-31d5791bce52","label":"Atom feed","description":"A feed implementing the Atom Syndication Format that can be accessed using HTTP(S).","parent":{"href":"https://inspire.ec.europa.eu/validator//v2/TestObjectTypes/88311f83-818c-46ed-8a9a-cec4f3707365.json"}}},"translationTemplateBundles":{"TranslationTemplateBundle":{"id":"EIDfadd4929-fa60-4781-b658-703bbfe3f4eb","source":"file:/etf/projects/inspire-ets-repository/ets-repository-2020.3/include-metadata/TranslationTemplateBundle-EIDfadd4929-fa60-4781-b658-703bbfe3f4eb.xml","translationTemplateCollections":{"LangTranslationTemplateCollection":[{"name":"TR.operationsMetadataConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.operationsMetadataConformanceClassNotSupported","$":"The ows:OperationsMetadata do not advertize the required conformance class {element}"}}},{"name":"TR.feedIdDoesNotReferToEndpoint","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.feedIdDoesNotReferToEndpoint","$":"The Atom feed id '{actual}' element does NOT refer to the self URL '{expected}'."}}},{"name":"TR.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.xmlExpected","$":"Expected a XML response but the service returned unparsable data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.capabilities.extended.inspire.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.invalidValue","$":"INSPIRE {name} must be set to '{value}'. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingContentType","$":"Expected a 'Content-Type' header field to be returned by the server."}}},{"name":"TR.metadata.operatesOn.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingElement","$":"The metadata of the WFS does not contain any coupled resource (srv:operatesOn)"}}},{"name":"TR.missingInfoFeatureAccessService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInfoFeatureAccessService","$":"The INSPIRE keyword infoFeatureAccessService is not advertized in the Capabilities. Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingMdFileIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdFileIdentifier","$":"The fileIdentifier does not exist in the service metadata. Check the Metadata document.'"}}},{"name":"TR.notAnInspireMediaType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnInspireMediaType","$":"The alternate links '{links}' for entries with IDs {ids} offer media types '{types}' that are not in the INSPIRE media type list at http://inspire.ec.europa.eu/media-types/ ."}}},{"name":"TR.preCondition.testStep.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.unexpectedException","$":"The required response of the test step '{testStepName}' can not be used for this test, due to an exception report has been returned."}}},{"name":"TR.capabilities.noFeatureTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noFeatureTypes","$":"No FeatureType found in the Capabilities. Check the Capabilities and configure the service to list at least one FeatureType."}}},{"name":"TR.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noOutputFormats","$":"No Output Formats were found in the Capabilities."}}},{"name":"TR.schemaNotAccessible","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAccessible","$":"The xsi:schemaLocation ' {url} ' can not be accessed, server returned HTTP response code {code}."}}},{"name":"TR.missingWfsMetadataUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingWfsMetadataUrl","$":"List of FeatureTypes, that do not possess the required MetadataURL element: {name}."}}},{"name":"TR.invalidApplicationSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema","$":"An error occurred while analyzing the application schema: ' {message} '."}}},{"name":"TR.notIsoMetadata","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notIsoMetadata","$":"The referred dataset Metadata document does not seem to be ISO Metadata. It does not have an XML element gmd:Metadata. Check the MetadataURL listed in the Capabilities and the Metadata document."}}},{"name":"TR.idNotAnURI","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.idNotAnURI","$":"The Feed ID (/atom:feed/atom:id) is not a HTTP URI."}}},{"name":"TR.manual.checkLengthOfDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLengthOfDlFile","$":"Not all linked pre-defined dataset files provide a 'length' attribute. Check if it can be provided."}}},{"name":"TR.missingLinkToRegistry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToRegistry","$":"Missing at least one link to a registry (a /atom:feed/atom:link element with attributes rel='describedby' and type='text/html')."}}},{"name":"TR.metadata.operatesOn.missingHref","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.metadata.operatesOn.missingHref","$":"There is at least one element srv:operatesOn in the metadata of the WFS that does not refer to a metadata document as the xlink:href attribute does not exist or is empty. Check the Metadata document.\""}}},{"name":"TR.missingSchemaRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaRootElement","$":"There response does not have a XML 'schema' root element."}}},{"name":"TR.manual.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.missingInspireStoredQuery","$":"Check manually that the provided StoredQuery is sufficiently described with the included parameters."}}},{"name":"TR.manual.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet' should be used for serving pre-defined Spatial Data Sets."}}},{"name":"TR.elementsNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementsNotExpected","$":"'{elements}' were not expected in the response. XPath: {xpath}"}}},{"name":"TR.missingCapabilitiesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCapabilitiesRootElement","$":"The response does not have a 'WFS_Capabilities' root element."}}},{"name":"TR.filterConformanceClassNotSupported","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.filterConformanceClassNotSupported","$":"The fes:Filter_Capabilities do not advertize the required Filter Encoding 2.0 conformance class {element}"}}},{"name":"TR.incorrectFeedSelfReference","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReference","$":"The Atom feed does NOT contain a link to itself that equals the URL of the requested resource. Check the element /atom:feed/atom:link with @rel='self' and the the request URL."}}},{"name":"TR.missingLinkageResourceLocator","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkageResourceLocator","$":"The referred Metadata Record does have a Resource Locator (gml:linkage element). Check the response."}}},{"name":"TR.missingFeatureCollectionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeatureCollectionRootElement","$":"The response does not have a WFS 'FeatureCollection' root element."}}},{"name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ft.missingOwsWgs84BoundingBox","$":"List of FeatureTypes, that do not possess the required WGS84BoundingBox element: {name}."}}},{"name":"TR.missingSpatialDataSetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDataSetIdentifierNamespace","$":"The absent inspire_dls:SpatialDataSetIdentifier/inspire_common:Namespace element is declared optional in the schema, however it is a mandatory element in the ExtendedCapabilities."}}},{"name":"TR.internalError","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.internalError","$":"Internal error in the Executable Test Suite. Please contact a system administrator. Error information: {text}"}}},{"name":"TR.unexpectedContentType","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedContentType","$":"Expected '{expected}' as Content-Type header but server returned '{actual}'"}}},{"name":"TR.recommendation.GetSpatialDataSetIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.recommendation.GetSpatialDataSetIdentifier","$":"The recommended identifier 'http://inspire.ec.europa.eu/operation/download/GetSpatialDataSet', which should be used for serving pre-defined Spatial Data Sets, was not found."}}},{"name":"TR.missingSpatialDatasetIdentifierNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierNamespace","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_namespace element."}}},{"name":"TR.unexpectedException","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedException","$":"The service returned an unexpected exception: '{text}'. Check the request parameters, which are partially determined from the Capabilities, previous requests or other metadata. Ensure that the service supports the data and functionalities published in the Capabilities and ensure that referenced data exist."}}},{"name":"TR.incorrectFeedSelfReferenceLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLanguage","$":"The Atom feed does NOT contain a link to itself with a 'hreflang' attribute that either equals the xml:lang attribute ('/atom:feed/atom:title/@xml:lang') or the OpenSearchDescription language code ('/os:OpenSearchDescription/os:Language[1]')."}}},{"name":"TR.preCondition.testStep.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.missingElement","$":"The test compares data from this response with data from another test step, however the node '{element}' could not be found or has an empty value in test step '{testStepName}'."}}},{"name":"TR.missingOneFeedEntryWithDlFile","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOneFeedEntryWithDlFile","$":"Missing at least one feed entry with at least one link to a pre-defined dataset file."}}},{"name":"TR.initializationAndBasicChecksFailed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.initializationAndBasicChecksFailed","$":"The testing of basic functionalities of the service failed and therefore all other test cases are skipped. Check all failed Test Cases in the 'Initialization and basic checks' module and ensure that the endpoints for GetCapabilities, GetFeature and DescribeFeatureType operations are accessible from outside your organization."}}},{"name":"TR.elementWithValueNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementWithValueNotExpected","$":"A node '{elementName}' with the value '{value}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.responseNotEqual","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.responseNotEqual","$":"The Response from this Test Step '{testStep}' and the Response from the Test Step are not equal."}}},{"name":"TR.invalidXmlProlog","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidXmlProlog","$":"Expected a XML response but the service returned unparsable data with illegal characters before the XML prolog. This is an excerpt of the XML prolog, showing the first 6 characters (invalid characters may have either been hidden by the browser or are replaced with '?'): '{prolog}'. Please note that some tools, such as some browsers, do not show all special characters or report an error!"}}},{"name":"TR.preCondition.testStep.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.noDataReturned","$":"The required response of the test step '{testStepName}' can not be used for this test, due to no data has been returned."}}},{"name":"TR.unexpectedCRS","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedCRS","$":"Expected a response in Coordinate Reference System '{expected}' but a response in CRS '{value}' was returned by the service."}}},{"name":"TR.uniqueAlternateLinkTypes","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueAlternateLinkTypes","$":"The Dataset Feed does not contain separate entries for each format and CRS combination. Check if either the links belong in one single Dataset feed entry or in another/new separate Dataset Feed. {count} duplicate entries found: {duplicates}"}}},{"name":"TR.missingElementWithValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElementWithValue","$":"Expected a node '{element}' set to '{value}' but it was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSpatialDatasetIdentifierCode","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSpatialDatasetIdentifierCode","$":"There is at least one Feed entry without an inspire_dls:spatial_dataset_identifier_code element."}}},{"name":"TR.emptyValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.emptyValue","$":"Expected a non-empty text value for '{element}'. XPath: {xpath}"}}},{"name":"TR.capabilities.noOutputFormats","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.noOutputFormats","$":"No OutputFormat found in the Capabilities. Check the Capabilities and configure the service to list at least one OutputFormat."}}},{"name":"TR.missingInspireStoredQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingInspireStoredQuery","$":"DescribeStoredQueries response does not contain at least one StoredQuery with the parameters 'CRS', 'DataSetID' , 'DataSetIdNamespace', 'Language', to download the entire INSPIRE dataset."}}},{"name":"TR.missingGenericSearchQueriesUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGenericSearchQueriesUrl","$":"The Open Search Description does not provide a URL for generic search queries."}}},{"name":"TR.capabilities.extended.inspire.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.extended.inspire.missingElement","$":"INSPIRE element '{element}' is missing in the Capabilities. XPath: {xpath} . Check the INSPIRE ExtendedCapabilities."}}},{"name":"TR.missingFeedRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedRootElement","$":"There response does not have an Atom 'feed' root element."}}},{"name":"TR.missingLinkToMetadataRecordForDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToMetadataRecordForDownloadService","$":"Missing a link to the metadata record for the download service link with attributes rel='describedby' and type='application/xml' or type='application/vnd.ogc.csw.GetRecordByIdResponse_xml'."}}},{"name":"TR.invalidDatasetFeedLinks","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidDatasetFeedLinks","$":"There is at least one feed entry that does not contain exactly one Dataset feed link with attributes rel='alternate' and type='application/atom+xml'."}}},{"name":"TR.exactlyOneCategoryPerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneCategoryPerEntry","$":"A Dataset Feed shall possess exactly one category per entry. There are {actual} Dataset Feed entries, which possess more than one category. Remove all additional categories."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionLanguage","$":"The response does not have at least one Open Search Description Language."}}},{"name":"TR.multipleLinksForMultipleFilesExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.multipleLinksForMultipleFilesExpected","$":"If links with a rel attribute of \"section\" are provided, then there must be multiple links. So the number of section links must not be exactly 1."}}},{"name":"TR.invalidLegendFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidLegendFormat","$":"Legend format is invalid. Please, review your code and try again."}}},{"name":"TR.unexpectedHtml","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.unexpectedHtml","$":"Expected a XML response but the service returned a HTML page. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication and returned an authentication page, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missinAtLeasOneOpenSearchDescriptionQuery","$":"Missing at least one INSPIRE example Query ( with a role='example', an inspire_dls:spatial_dataset_identifier_code and an inspire_dls:spatial_dataset_identifier_namespace attribute)."}}},{"name":"TR.schemaNotAnUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.schemaNotAnUrl","$":"The xsi:schemaLocation ' {url} ' is not an HTTP URL."}}},{"name":"TR.invalidApplicationSchema.outputFormat","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidApplicationSchema.outputFormat","$":"An error occurred while analyzing the application schema (OutputFormat ' {format} ') : ' {message} '."}}},{"name":"TR.invalidValue","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.invalidValue","$":"Expected the value '{expected}' instead of '{actual}' in {element}. XPath: {xpath}"}}},{"name":"TR.capabilities.ows.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.ows.missingElement","$":"{element} is not set in the Capabilities. Check the Capabilities for the OWS element."}}},{"name":"TR.exactlyOneAlternateLinkTypePerEntry","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.exactlyOneAlternateLinkTypePerEntry","$":"In a Dataset Feed an entry can possess multiple alternate links but these shall be of the same type. There are {actual} Dataset Feed entries, which alternate links with multiple types. Check if the alternate links belong to another/new Dataset Feed entry."}}},{"name":"TR.missingCategory","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingCategory","$":"At least one category for an entry is missing which refers to CRS definition and code."}}},{"name":"TR.dateIsInTheFuture","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsInTheFuture","$":"The date must not be in the future."}}},{"name":"TR.elementNotExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.elementNotExpected","$":"'{element}' was NOT expected in the response. XPath: {xpath}"}}},{"name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.openSearchDescriptionDocumentLinkNotAbsolute","$":"The OpenSearch Description document link is not an absolute URL."}}},{"name":"TR.missingOpenSearchDescriptionRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionRootElement","$":"The response does not have an Open Search 'OpenSearchDescription' root element."}}},{"name":"TR.preCondition.testStep.xmlExpected","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.preCondition.testStep.xmlExpected","$":"The required response of the test step '{testStepName}' can not be used for this test, due to not well-formed XML has been returned."}}},{"name":"TR.capabilities.featureTypeUnknownNamespace","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.capabilities.featureTypeUnknownNamespace","$":"The namespace prefix of FeatureType {value} can not be resolved. Check the namespaces and prefixes in the Capabilities."}}},{"name":"TR.missingOpenSearchDescriptionDocumentLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingOpenSearchDescriptionDocumentLink","$":"The Atom feed does NOT contain a link to an OpenSearch Description document."}}},{"name":"TR.incorrectFeedSelfReferenceLang","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.incorrectFeedSelfReferenceLang","$":"The self link's hreflang attribute is not the same as the xml:lang attribute of the Atom feed or if the xml:lang attribute is not given, hreflang is not the same as the language code defined in the OpenSearch description."}}},{"name":"TR.missingLanguageForDownloadLink","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLanguageForDownloadLink","$":"Not all alternative language representations of datasets have the required hreflang attribute."}}},{"name":"TR.dateIsBefore2012","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.dateIsBefore2012","$":"The date must not be before 2012."}}},{"name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingAtLeastOneOpenSearchDescriptionUrl","$":"The response does not have at least one Open Search Description URL."}}},{"name":"TR.fallbackInfo","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.fallbackInfo","$":"The server experienced a several unexpected error. Please, try again later. if the problem persist, please contact with the helpdesk."}}},{"name":"TR.missingFeedUpdatedInformation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingFeedUpdatedInformation","$":"The Atom feed does NOT contain updated information."}}},{"name":"TR.missingStoredQueriesRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingStoredQueriesRootElement","$":"The response does not have a 'DescribeStoredQueriesResponse' root element."}}},{"name":"TR.atLeastOneCategoryNotInServiceFeed","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.atLeastOneCategoryNotInServiceFeed","$":"At least one Category in the Dataset feed is not listed in the Download Service Feed."}}},{"name":"TR.uniqueDatasetIdentifiers","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.uniqueDatasetIdentifiers","$":"The Dataset Feed does not contain unique identifier combinations (inspire_dls:spatial_dataset_identifier_namespace and inspire_dls:code)."}}},{"name":"TR.manual.checkLinkToDirectAccessDownloadService","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.manual.checkLinkToDirectAccessDownloadService","$":"If the same dataset is available as a WFS 2.0.0 Direct Access Download Service: check that the download service feed includes a link to the WFS Capabilities document with the \"rel\" attribute set to \"related\" and the \"type\" attribute set to \"application/xml\"."}}},{"name":"TR.noDataReturned","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.noDataReturned","$":"Expected a response but the service did not return any data. Verify that the used endpoint URL is correct and accessible from outside your organization. If the service requires authentication, then check that the correct credentials are used by the validator or verify that upstream firewalls/proxy servers do not prevent access."}}},{"name":"TR.notAnHttpUrl","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.notAnHttpUrl","$":"' {url} ' is not an HTTP URL."}}},{"name":"TR.missingElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingElement","$":"The expected node '{element}' was not found in the response. XPath: {xpath}"}}},{"name":"TR.missingSchemaLocation","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingSchemaLocation","$":"The schema attribute 'xsi:schemaLocation' was not found in the XML root element of the response. The response cannot be validated."}}},{"name":"TR.missingGuidanceForDownloadingMultipleFiles","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingGuidanceForDownloadingMultipleFiles","$":"Where a dataset is provided in multiple physical files: a description of the dataset structure must be provided EITHER in an atom \"content\" element as free text, OR in an external document which is the target of another \"link\" element. Where a \"link\" element is used this element shall have a \"rel\" value equal to \"alternate\" and a suitable media type shall be used for the \"type\" value."}}},{"name":"TR.missingLinkToDatasetMetadataRecord","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingLinkToDatasetMetadataRecord","$":"Missing at least one link in an entry to a Dataset metadata record link with attributes rel='describedby' and type='application/xml'."}}},{"name":"TR.missingDownloadServiceSchema","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingDownloadServiceSchema","$":"The Capabilities do not contain a xsi:schemaLocation with the INSPIRE Download Services schema 'http://inspire.ec.europa.eu/schemas/inspire_dls/1.0/inspire_dls.xsd' or at least a schema path ending with 'inspire_dls.xsd. Check the Capabilities document."}}},{"name":"TR.missingMdIdentifier","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMdIdentifier","$":"The MD_identifier '{id}' is found in the metadata document but does not exist in the service Metadata. The service metadata refers to these identifiers: '{datasetIdentifiersList}'. Check the Service Metadata and the Metadata document."}}},{"name":"TR.missingMDMetadataRootElement","translationTemplates":{"TranslationTemplate":{"language":"en","name":"TR.missingMDMetadataRootElement","$":"The referred Metadata Record does not seem to be ISO Metadata. It does not have an XML gmd:MD_Metadata root element. Check the response."}}}]}}},"testTaskResults":{"TestTaskResult":{"schemaLocation":"http://www.interactive-instruments.de/etf/2.0 http://resources.etf-validator.net/schema/v2/model/result.xsd","id":"EID36b70879-9ccd-4c0b-b605-0294efe99035","testObject":{"ref":"EID53755927-a0d1-4467-9399-f58fdd6d1844"},"testModuleResults":{"TestModuleResult":[{"id":"EID6eeaef3c-0175-1000-dca8-8a140c4b3c65","testCaseResults":{"TestCaseResult":[{"id":"EID6eeaef46-0175-1000-449f-fa4b7e91c71c","testStepResults":{"TestStepResult":[{"id":"EID6eeaef47-0175-1000-0c4b-6058a08fc6c6","parent":{"ref":"EID6eeaef46-0175-1000-449f-fa4b7e91c71c"},"resultedFrom":{"ref":"EID4bafa73e-73b8-4153-a84b-c6cc0b04bd28"},"startTimestamp":"2020-10-28T11:14:51Z","duration":18,"status":"PASSED"},{"id":"EID6eeaef5a-0175-1000-91ae-c61f595f8075","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf028-0175-1000-7e29-7d94570dbef3","parent":{"ref":"EID6eeaef5a-0175-1000-91ae-c61f595f8075"},"resultedFrom":{"ref":"EID602d9d35-1c42-4497-a386-7befaa3320eb"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf028-0175-1000-4b09-ad242338b47b","parent":{"ref":"EID6eeaef5a-0175-1000-91ae-c61f595f8075"},"resultedFrom":{"ref":"EID2ca63785-e385-4c4f-b8c6-d6742c415a0c"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf028-0175-1000-6308-be6422d7fef6","parent":{"ref":"EID6eeaef5a-0175-1000-91ae-c61f595f8075"},"resultedFrom":{"ref":"EID60ac748d-9fae-47f9-bc88-f7073077cc62"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf028-0175-1000-8a83-ca00781cb37d","parent":{"ref":"EID6eeaef5a-0175-1000-91ae-c61f595f8075"},"resultedFrom":{"ref":"EID5e954eb8-f4fb-49b6-a1e3-2bcec69dbd6b"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd23cc3e0-7695-4646-876f-efc9606fdbbf"},{"ref":"EID00ec9d61-5a3b-4f14-86bb-df7b93d1121b"},{"ref":"EIDfdfae4f6-0ca8-4c1d-9fc3-aaec92ba55ba"}]},"parent":{"ref":"EID6eeaef46-0175-1000-449f-fa4b7e91c71c"},"resultedFrom":{"ref":"EID72c74c78-472f-4baa-bdd5-2dfb1c516bb7"},"startTimestamp":"2020-10-28T11:14:51Z","duration":64,"status":"PASSED"}]},"parent":{"ref":"EID6eeaef3c-0175-1000-dca8-8a140c4b3c65"},"resultedFrom":{"ref":"EIDbb8df909-494c-46d8-ace0-31e18b57b12f"},"startTimestamp":"2020-10-28T11:14:51Z","duration":226,"status":"PASSED"},{"id":"EID6eeaf028-0175-1000-ac13-1a09ce551722","testStepResults":{"TestStepResult":{"id":"EID6eeaf028-0175-1000-1f61-a40c66f76e57","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf14c-0175-1000-d34e-fe93a276e168","parent":{"ref":"EID6eeaf028-0175-1000-1f61-a40c66f76e57"},"resultedFrom":{"ref":"EID6fb90bcf-0fb8-40d0-a34b-dc79e2392d4e"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf14c-0175-1000-58d0-621182ae2be3","parent":{"ref":"EID6eeaf028-0175-1000-1f61-a40c66f76e57"},"resultedFrom":{"ref":"EID33c888b8-a272-4bc8-86b6-30966df1b6d4"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf14c-0175-1000-67fe-cb3d7f8775e8","parent":{"ref":"EID6eeaf028-0175-1000-1f61-a40c66f76e57"},"resultedFrom":{"ref":"EID8e7403f0-6689-45d2-9eb2-3f83bc3be359"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID51561190-9249-41df-ad54-b7cf32a28354"},{"ref":"EID0b1c8bf8-276e-4f87-a69d-9c1d2f586f48"},{"ref":"EIDe4288941-9938-46d3-8f3f-f95b1f367b8e"}]},"parent":{"ref":"EID6eeaf028-0175-1000-ac13-1a09ce551722"},"resultedFrom":{"ref":"EID7c915733-5218-4594-9e9a-066192707f1e"},"startTimestamp":"2020-10-28T11:14:52Z","duration":93,"status":"PASSED"}},"parent":{"ref":"EID6eeaef3c-0175-1000-dca8-8a140c4b3c65"},"resultedFrom":{"ref":"EIDce5a6d78-3a71-4ded-8b2e-fcc4d71d6849"},"startTimestamp":"2020-10-28T11:14:52Z","duration":292,"status":"PASSED"}]},"parent":{"ref":"EID36b70879-9ccd-4c0b-b605-0294efe99035"},"resultedFrom":{"ref":"EID6266de5b-169b-4933-896b-803260ff568e"},"startTimestamp":"2020-10-28T11:14:51Z","duration":529,"status":"PASSED"},{"id":"EID6eeaf14d-0175-1000-8956-e557d73da1af","testCaseResults":{"TestCaseResult":[{"id":"EID6eeaf14d-0175-1000-5493-0d1366f854cb","testStepResults":{"TestStepResult":[{"id":"EID6eeaf14d-0175-1000-3b0f-10dd46d463f0","parent":{"ref":"EID6eeaf14d-0175-1000-5493-0d1366f854cb"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/7d695871-e4c6-4360-a562-8d2da96ba906.json"},"startTimestamp":"2020-10-28T11:14:52Z","duration":93,"status":"PASSED"},{"id":"EID6eeaf14d-0175-1000-1071-61da3f19d94f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf253-0175-1000-c495-c0e2320fe0b7","parent":{"ref":"EID6eeaf14d-0175-1000-1071-61da3f19d94f"},"resultedFrom":{"ref":"EID3b666b3e-f315-49be-b96a-2d27abf0ab94"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf253-0175-1000-b78c-252ff96e4a22","parent":{"ref":"EID6eeaf14d-0175-1000-1071-61da3f19d94f"},"resultedFrom":{"ref":"EIDb3f699a6-e47b-4a89-a610-f01787de5ab0"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf253-0175-1000-2084-36aa9e315a62","parent":{"ref":"EID6eeaf14d-0175-1000-1071-61da3f19d94f"},"resultedFrom":{"ref":"EIDd2126146-4434-443a-8420-5b8adc6b1f6a"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf253-0175-1000-62e5-4bf0cbad1af4","parent":{"ref":"EID6eeaf14d-0175-1000-1071-61da3f19d94f"},"resultedFrom":{"ref":"EID9809e089-828d-4e58-a091-0b8a0d28956d"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf253-0175-1000-ed2d-fc865f839554","parent":{"ref":"EID6eeaf14d-0175-1000-1071-61da3f19d94f"},"resultedFrom":{"ref":"EID4fe383ff-d457-4324-bdfd-d23c54dc6ebd"},"startTimestamp":"2020-10-28T11:14:52Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID76c3bd7c-2e8d-4542-b763-f1910eef8d24"},{"ref":"EID3e5bebde-b6dd-40f3-9c22-a69fb24ed7dc"},{"ref":"EIDc4a7b942-26f5-4b0b-805f-4ecc3cb939e0"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-5493-0d1366f854cb"},"resultedFrom":{"ref":"EID8857655a-05c6-461c-b0f8-09c88d7b1c44"},"startTimestamp":"2020-10-28T11:14:52Z","duration":131,"status":"PASSED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EIDb87b5132-cb6c-44cb-9215-e588fc1e3344"},"startTimestamp":"2020-10-28T11:14:52Z","duration":262,"status":"PASSED"},{"id":"EID6eeaf254-0175-1000-c9d9-11dc3fc03347","testStepResults":{"TestStepResult":[{"id":"EID6eeaf254-0175-1000-ec8a-860c2c812ce8","attachments":{"attachment":[{"ref":"EID13f82699-c4e5-4b54-b469-6d2ddefcc205"},{"ref":"EID84dad6cc-d9af-47d1-a85c-f456e837c814"}]},"parent":{"ref":"EID6eeaf254-0175-1000-c9d9-11dc3fc03347"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/40bb7f94-25d8-462b-ab3f-975a7402bde0.json"},"startTimestamp":"2020-10-28T11:14:52Z","duration":138,"status":"PASSED"},{"id":"EID6eeaf300-0175-1000-c2b3-5d75f94e4e88","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf3e3-0175-1000-5ce2-10a622d6c3a2","parent":{"ref":"EID6eeaf300-0175-1000-c2b3-5d75f94e4e88"},"resultedFrom":{"ref":"EID3f96da73-0f0b-4b82-8fee-582f70950c69"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf3e3-0175-1000-63dc-fe2dfd02c963","parent":{"ref":"EID6eeaf300-0175-1000-c2b3-5d75f94e4e88"},"resultedFrom":{"ref":"EID6c31a150-52db-4ba1-bad6-c374dc60359b"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf3e3-0175-1000-f649-8852e15b82a7","parent":{"ref":"EID6eeaf300-0175-1000-c2b3-5d75f94e4e88"},"resultedFrom":{"ref":"EID6e32f02f-28f0-4724-8a7b-9323a26ea629"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf3e3-0175-1000-6c1c-28c167f47053","parent":{"ref":"EID6eeaf300-0175-1000-c2b3-5d75f94e4e88"},"resultedFrom":{"ref":"EID84104201-71c4-4f32-8291-5f5ac49e6b20"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID21f85ac5-69bf-45eb-9b4e-3ec65ab557b5"},{"ref":"EID1e5c601f-73d8-45df-a526-f310e19d6389"},{"ref":"EID4831291f-297b-4007-9e8d-4cc671e57308"}]},"parent":{"ref":"EID6eeaf254-0175-1000-c9d9-11dc3fc03347"},"resultedFrom":{"ref":"EID008e0867-010c-45e9-b9f3-1255ff2e74fb"},"startTimestamp":"2020-10-28T11:14:52Z","duration":97,"status":"PASSED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID035c2686-8af8-4972-a015-cd32b2ab17ac"},"startTimestamp":"2020-10-28T11:14:52Z","duration":399,"status":"PASSED"},{"id":"EID6eeaf3e3-0175-1000-2771-74a74ccd9c6f","testStepResults":{"TestStepResult":[{"id":"EID6eeaf3e3-0175-1000-fa35-d5df11922377","attachments":{"attachment":[{"ref":"EID0a07e17e-1bc9-4004-99ad-294204f46e93"},{"ref":"EID242fe444-fc5a-48c0-8c0f-d3c39e6a25fa"}]},"parent":{"ref":"EID6eeaf3e3-0175-1000-2771-74a74ccd9c6f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/de6d0b18-45fe-4795-a4d6-ffe08ae08b4f.json"},"startTimestamp":"2020-10-28T11:14:53Z","duration":169,"status":"PASSED"},{"id":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf57c-0175-1000-20f3-e70dd19563ac","parent":{"ref":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8"},"resultedFrom":{"ref":"EID342e431e-e031-4057-bb93-4a7d9d858b7d"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf57c-0175-1000-d42f-fb72043fdfbd","parent":{"ref":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8"},"resultedFrom":{"ref":"EID4b4257d8-aee6-406b-8f16-8306c91d1b81"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf57c-0175-1000-566e-35ceb2e81cd7","parent":{"ref":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8"},"resultedFrom":{"ref":"EIDcbcffce3-745e-490a-bd2f-2d64069409af"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf57c-0175-1000-a58d-87b16d2e32a7","parent":{"ref":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8"},"resultedFrom":{"ref":"EID9b404f5e-ebed-466b-a5e3-177c3c927f5a"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf57c-0175-1000-4ab2-f0fe6d6c4182","parent":{"ref":"EID6eeaf4cf-0175-1000-8208-3215b7c7c6b8"},"resultedFrom":{"ref":"EID5c449c08-4578-41ee-a7ea-a168c61005b7"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDb63cbccc-a778-4995-adfb-e31e6437e1b2"},{"ref":"EID56785ba5-065b-41f6-8a40-939310c5f697"},{"ref":"EID8f6447b1-10af-48b8-8352-247ff73ee395"}]},"parent":{"ref":"EID6eeaf3e3-0175-1000-2771-74a74ccd9c6f"},"resultedFrom":{"ref":"EID65cc6185-5f4b-4b9c-a01a-2b0b1cb4a785"},"startTimestamp":"2020-10-28T11:14:53Z","duration":67,"status":"PASSED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EIDf3bbb312-6c4a-423a-80cc-0dcce1e9a5c9"},"startTimestamp":"2020-10-28T11:14:53Z","duration":418,"status":"PASSED"},{"id":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43","testStepResults":{"TestStepResult":[{"id":"EID6eeaf585-0175-1000-2ccc-ec7e18690baa","attachments":{"attachment":[{"ref":"EID154ec4aa-2d39-4736-84c0-4cb9dc72e7a7"},{"ref":"EID5f57b52b-2ce3-4b4f-bd0c-41cbc9ff9c3f"}]},"parent":{"ref":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d3d7d1e5-47cb-4624-ad67-076cf69538ac.json"},"startTimestamp":"2020-10-28T11:14:53Z","duration":136,"status":"PASSED"},{"id":"EID6eeaf649-0175-1000-0541-51c3d06fa8f6","parent":{"ref":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3e1478ca-676b-4786-b733-a7eef7597ede.json"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf649-0175-1000-83ec-c7153f4af6d6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf707-0175-1000-6ee7-219e108670ed","parent":{"ref":"EID6eeaf649-0175-1000-83ec-c7153f4af6d6"},"resultedFrom":{"ref":"EID52a40318-a6fb-4b29-9064-8903ddf448df"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf707-0175-1000-5f64-0a92c7a0c76b","parent":{"ref":"EID6eeaf649-0175-1000-83ec-c7153f4af6d6"},"resultedFrom":{"ref":"EID4ab0a840-2966-43ae-9ec7-8de9e7e24648"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf707-0175-1000-1bfe-e1b0d92e5f98","parent":{"ref":"EID6eeaf649-0175-1000-83ec-c7153f4af6d6"},"resultedFrom":{"ref":"EID43518c24-2fc2-448a-817a-c8e4944baa64"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf707-0175-1000-f96f-aa3a6b11333e","parent":{"ref":"EID6eeaf649-0175-1000-83ec-c7153f4af6d6"},"resultedFrom":{"ref":"EIDf0d32900-8648-42a9-8e47-0681f34af745"},"startTimestamp":"2020-10-28T11:14:53Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd53c5f2a-1fdd-4366-9bec-4a532deb7771"},{"ref":"EID27a265bf-0eb6-4279-acf3-78fa53af360d"},{"ref":"EID42d09b7e-4c06-4a2e-acd6-177bd3ecde44"}]},"parent":{"ref":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43"},"resultedFrom":{"ref":"EID8c63752f-405c-422c-b91e-9b42a76eb720"},"startTimestamp":"2020-10-28T11:14:53Z","duration":84,"status":"PASSED"},{"id":"EID6eeaf707-0175-1000-9b1e-50e4af09e158","attachments":{"attachment":{"ref":"EIDd0f79b92-34af-48ad-8c79-d135a74f5000"}},"parent":{"ref":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/4c2c9ab0-dce9-4b6e-8c79-1cdb120781e1.json"},"startTimestamp":"2020-10-28T11:14:53Z","duration":2,"status":"PASSED"},{"id":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf7b6-0175-1000-4bcb-e61eee915a76","parent":{"ref":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b"},"resultedFrom":{"ref":"EID32a9b06a-0eee-45a1-9e7a-f69dcaa77471"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf7b6-0175-1000-198e-c438cda2a764","parent":{"ref":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b"},"resultedFrom":{"ref":"EID89e91ccc-2bfa-4af5-bc5e-286828d46465"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf7b6-0175-1000-62eb-ebc28af07657","parent":{"ref":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b"},"resultedFrom":{"ref":"EID40f8fcd1-ceb6-4587-bc5c-9a9f9ec8a6a2"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf7b6-0175-1000-52e3-5d3d40b9e14c","parent":{"ref":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b"},"resultedFrom":{"ref":"EID05e473b5-9caa-407d-90e8-49820284df45"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf7b6-0175-1000-c9e5-4f79a40cb5ed","parent":{"ref":"EID6eeaf71b-0175-1000-e0c1-8358bfa9ff6b"},"resultedFrom":{"ref":"EID71e5f95e-93c5-4213-a2cb-2bc7b5a3cc1f"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe81b6e97-50df-4245-9dbb-4de6e016f099"},{"ref":"EIDeb4e3338-041c-49ea-baff-fd0e625a0630"},{"ref":"EIDb5b9eed7-b747-4ab5-846e-2171f51aee5a"}]},"parent":{"ref":"EID6eeaf585-0175-1000-2b7c-3ff3ad000f43"},"resultedFrom":{"ref":"EIDc106f883-041b-402d-8ada-33acc7b1d463"},"startTimestamp":"2020-10-28T11:14:53Z","duration":40,"status":"PASSED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID82825850-f358-40d8-913c-5e61cac61fef"},"startTimestamp":"2020-10-28T11:14:53Z","duration":561,"status":"PASSED"},{"id":"EID6eeaf7b6-0175-1000-9658-e0442df69385","testStepResults":{"TestStepResult":[{"id":"EID6eeaf7b6-0175-1000-6add-2a3453c1f171","attachments":{"attachment":[{"ref":"EID596c50e7-c063-4daa-b78e-04eb6affe2c3"},{"ref":"EID0abc67f8-45fd-4dc2-8a1e-a91cf8ba404d"}]},"parent":{"ref":"EID6eeaf7b6-0175-1000-9658-e0442df69385"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/5404b3db-ed62-40ca-990b-6a5a7ba58574.json"},"startTimestamp":"2020-10-28T11:14:54Z","duration":139,"status":"PASSED"},{"id":"EID6eeaf863-0175-1000-b151-7250d20a0f87","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaf93b-0175-1000-94d4-446fb9f8c14e","parent":{"ref":"EID6eeaf863-0175-1000-b151-7250d20a0f87"},"resultedFrom":{"ref":"EIDdc7f4c35-09cf-4625-9815-71df592f9ab4"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf93b-0175-1000-d5bd-b36e521aa5f3","parent":{"ref":"EID6eeaf863-0175-1000-b151-7250d20a0f87"},"resultedFrom":{"ref":"EID2fa4697e-1fe7-45ad-9f4a-c2ae0ebc2864"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf93b-0175-1000-ed62-1ab991060260","parent":{"ref":"EID6eeaf863-0175-1000-b151-7250d20a0f87"},"resultedFrom":{"ref":"EIDad30bd95-a379-400a-acc3-3cd0afb77c0a"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeaf93b-0175-1000-8f7e-c0cc759ae7e7","parent":{"ref":"EID6eeaf863-0175-1000-b151-7250d20a0f87"},"resultedFrom":{"ref":"EID794b3dfa-4d1b-42ca-878d-93431f397473"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDedfd78eb-8121-4f02-b997-19d9afd7fef1"},{"ref":"EID770e88a5-2d4e-4ac0-ae04-ed5716d0b4e2"},{"ref":"EIDee08856d-23d6-470c-869e-2ae3d673c5f8"}]},"parent":{"ref":"EID6eeaf7b6-0175-1000-9658-e0442df69385"},"resultedFrom":{"ref":"EID1840a793-e8dd-4cd3-8fe8-dea3a0f24180"},"startTimestamp":"2020-10-28T11:14:54Z","duration":33,"status":"PASSED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EIDba93c8a4-2c83-40e3-8604-1e38b9a9456f"},"startTimestamp":"2020-10-28T11:14:54Z","duration":390,"status":"PASSED"},{"id":"EID6eeaf93c-0175-1000-077d-26755f01e95d","testStepResults":{"TestStepResult":[{"id":"EID6eeaf93c-0175-1000-88e3-b52f25432994","attachments":{"attachment":[{"ref":"EID3b421fc7-07dc-4e27-a8c3-bff6bd4f9c5e"},{"ref":"EID38d6c0fe-0791-405d-bb90-41785ae6f82f"}]},"parent":{"ref":"EID6eeaf93c-0175-1000-077d-26755f01e95d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3d5c4205-a68c-4d85-9483-0cc734eca54f.json"},"startTimestamp":"2020-10-28T11:14:54Z","duration":133,"status":"PASSED"},{"id":"EID6eeafa32-0175-1000-5778-6eda50b85993","parent":{"ref":"EID6eeaf93c-0175-1000-077d-26755f01e95d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/f4de0046-1805-45c3-992c-bb4c350463f0.json"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeafa32-0175-1000-b6d4-4b87ae881a0c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeafb26-0175-1000-485a-a63f86bb72d3","parent":{"ref":"EID6eeafa32-0175-1000-b6d4-4b87ae881a0c"},"resultedFrom":{"ref":"EIDbc7cdeff-1374-4515-a92e-6113aef2da61"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeafb26-0175-1000-4a30-87e2e5428460","parent":{"ref":"EID6eeafa32-0175-1000-b6d4-4b87ae881a0c"},"resultedFrom":{"ref":"EID341a8eae-c6c1-4880-a893-80bd7448fecf"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeafb26-0175-1000-9e33-579ce83c8aad","parent":{"ref":"EID6eeafa32-0175-1000-b6d4-4b87ae881a0c"},"resultedFrom":{"ref":"EID7398b5e3-efc7-4f0e-9a19-48b560856e15"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"},{"id":"EID6eeafb26-0175-1000-3a07-8a831be98dea","parent":{"ref":"EID6eeafa32-0175-1000-b6d4-4b87ae881a0c"},"resultedFrom":{"ref":"EID68a277ac-f823-4fd1-96cd-6429651777bd"},"startTimestamp":"2020-10-28T11:14:54Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID1d85a24d-4560-4814-9044-8d941ae8724e"},{"ref":"EIDcb2ff163-63e2-403b-863b-2fb1282b1fbd"},{"ref":"EIDe3021611-4cc9-4c7a-a5ac-befd1aa03bca"}]},"parent":{"ref":"EID6eeaf93c-0175-1000-077d-26755f01e95d"},"resultedFrom":{"ref":"EID27bdfa40-4649-4452-b90a-8d5696cc6eef"},"startTimestamp":"2020-10-28T11:14:54Z","duration":141,"status":"PASSED"},{"id":"EID6eeafb26-0175-1000-c856-e84ba8df04dc","attachments":{"attachment":{"ref":"EIDbfce5391-1c77-4867-a69e-71b60792c2ab"}},"parent":{"ref":"EID6eeaf93c-0175-1000-077d-26755f01e95d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/c8495b13-1b57-4cb9-95ae-3f688240b451.json"},"startTimestamp":"2020-10-28T11:14:54Z","duration":1,"status":"PASSED"},{"id":"EID6eeafb3b-0175-1000-cfc5-f14aff0205e6","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeafc64-0175-1000-05b2-720f89fbbf03","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:500 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeafb3b-0175-1000-cfc5-f14aff0205e6"},"resultedFrom":{"ref":"EID6998a6f6-66a2-47e5-a70b-503e04415d7c"},"startTimestamp":"2020-10-28T11:14:55Z","duration":15,"status":"FAILED"},{"id":"EID6eeafc73-0175-1000-659e-6b5def7a9a47","parent":{"ref":"EID6eeafb3b-0175-1000-cfc5-f14aff0205e6"},"resultedFrom":{"ref":"EIDc6c617c6-c3fe-4567-8173-33c5fa109cd3"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeafc73-0175-1000-40f4-b9586403039a","messages":{"message":{"ref":"TR.unexpectedHtml"}},"parent":{"ref":"EID6eeafb3b-0175-1000-cfc5-f14aff0205e6"},"resultedFrom":{"ref":"EID5213157c-3e2a-40fd-9ee9-9557678f0260"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDf59bf748-13ad-4c68-9b97-fab3e7556cfe"},{"ref":"EID06132bf0-ef97-4783-bf55-ac8bf293a712"},{"ref":"EIDf1e95064-2d72-4e2c-adcb-3d9d5222f599"}]},"parent":{"ref":"EID6eeaf93c-0175-1000-077d-26755f01e95d"},"resultedFrom":{"ref":"EID342e7d50-b15d-446f-8f83-25807babfb2e"},"startTimestamp":"2020-10-28T11:14:54Z","duration":224,"status":"FAILED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID6359d6da-1e37-423f-b543-018979b665e2"},"startTimestamp":"2020-10-28T11:14:54Z","duration":823,"status":"FAILED"},{"id":"EID6eeafc73-0175-1000-7675-6309dad605c8","testStepResults":{"TestStepResult":[{"id":"EID6eeafc73-0175-1000-d259-c3c3cd163822","attachments":{"attachment":[{"ref":"EID0db7f827-a882-4dd1-a17a-2745315c26c0"},{"ref":"EID6359a81d-7647-4e78-b723-f3d1a2e34407"}]},"parent":{"ref":"EID6eeafc73-0175-1000-7675-6309dad605c8"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/0a1d5f53-3f92-45bc-9f1d-8a6512e64f9a.json"},"startTimestamp":"2020-10-28T11:14:55Z","duration":210,"status":"PASSED"},{"id":"EID6eeafd6f-0175-1000-4fc2-e1e174818b40","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeafe5c-0175-1000-25ba-d2e74dd1baa0","parent":{"ref":"EID6eeafd6f-0175-1000-4fc2-e1e174818b40"},"resultedFrom":{"ref":"EIDe7139814-6e2e-46a0-9840-f5a4966e1fc3"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeafe5c-0175-1000-a76c-13285ac7523a","parent":{"ref":"EID6eeafd6f-0175-1000-4fc2-e1e174818b40"},"resultedFrom":{"ref":"EIDb5d07157-04fd-49a7-abe9-ea9fa99df135"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeafe5c-0175-1000-e55c-c74dc7d2a248","parent":{"ref":"EID6eeafd6f-0175-1000-4fc2-e1e174818b40"},"resultedFrom":{"ref":"EID2e97c6ff-cd40-4841-9e5a-75dd43206104"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeafe5c-0175-1000-2bc8-087530b178c4","messages":{"message":{"ref":"TR.manual.checkLinkToDirectAccessDownloadService","translationArguments":{"argument":[{"token":"elementName","$":"feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeafd6f-0175-1000-4fc2-e1e174818b40"},"resultedFrom":{"ref":"EID1b6abbe5-c210-4935-b480-5f9ef24744a1"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED_MANUAL"}]},"attachments":{"attachment":[{"ref":"EID398f58d4-816c-4847-84f6-36601d90eb7d"},{"ref":"EIDcda734a7-2c9d-4d61-b003-bf7b0114d01a"},{"ref":"EID1d5430a5-4e5a-4b9a-b7f5-ebb229a00e5a"}]},"parent":{"ref":"EID6eeafc73-0175-1000-7675-6309dad605c8"},"resultedFrom":{"ref":"EIDf9e282c5-9970-476c-8414-b840effb574a"},"startTimestamp":"2020-10-28T11:14:55Z","duration":42,"status":"PASSED_MANUAL"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EIDe12f3530-1b91-4278-9c5b-5470890835f7"},"startTimestamp":"2020-10-28T11:14:55Z","duration":496,"status":"PASSED_MANUAL"},{"id":"EID6eeafe64-0175-1000-4913-2fc0b20b5777","testStepResults":{"TestStepResult":{"id":"EID6eeafe64-0175-1000-e119-a493362bee87","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeaff27-0175-1000-95ee-88c808b536e6","parent":{"ref":"EID6eeafe64-0175-1000-e119-a493362bee87"},"resultedFrom":{"ref":"EID735c1133-f7b2-450d-a76d-2233016fe4b2"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeaff27-0175-1000-f002-d0a7e6006d17","parent":{"ref":"EID6eeafe64-0175-1000-e119-a493362bee87"},"resultedFrom":{"ref":"EIDd0edfa98-cf55-4959-9fd2-40a0d7ea2c78"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeaff27-0175-1000-8910-707020dcb41c","parent":{"ref":"EID6eeafe64-0175-1000-e119-a493362bee87"},"resultedFrom":{"ref":"EID006e73e0-f55c-4a0e-bb00-f8a0b67c55bf"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"},{"id":"EID6eeaff27-0175-1000-fa13-5f99af29218c","parent":{"ref":"EID6eeafe64-0175-1000-e119-a493362bee87"},"resultedFrom":{"ref":"EID725bc702-044a-4404-b09e-d001ca93d527"},"startTimestamp":"2020-10-28T11:14:55Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDf05a5a5b-77b0-4d9e-b759-0c4dde515fc5"},{"ref":"EID2e36f9da-397a-436b-a206-982d25782006"},{"ref":"EID0293ac76-3a0a-41a0-b2b4-8e12ce32bfbb"}]},"parent":{"ref":"EID6eeafe64-0175-1000-4913-2fc0b20b5777"},"resultedFrom":{"ref":"EID1b3fcafb-e884-4894-994c-60e9ca525c83"},"startTimestamp":"2020-10-28T11:14:55Z","duration":28,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID5d7ccb56-cc7d-4517-81df-0efb0cca5c92"},"startTimestamp":"2020-10-28T11:14:55Z","duration":195,"status":"PASSED"},{"id":"EID6eeaff27-0175-1000-30a8-d24d8d68af24","testStepResults":{"TestStepResult":{"id":"EID6eeaff27-0175-1000-4ed8-43ace1abdb51","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0057-0175-1000-b4cb-4fc47454f180","parent":{"ref":"EID6eeaff27-0175-1000-4ed8-43ace1abdb51"},"resultedFrom":{"ref":"EIDfc854807-b285-4a38-8aa5-d97cd2044247"},"startTimestamp":"2020-10-28T11:14:56Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0057-0175-1000-8af5-fa7057f8d43b","parent":{"ref":"EID6eeaff27-0175-1000-4ed8-43ace1abdb51"},"resultedFrom":{"ref":"EIDdb8d397e-7760-4c2b-b638-65772e0ccc9e"},"startTimestamp":"2020-10-28T11:14:56Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0057-0175-1000-66fc-6882d1e3065d","parent":{"ref":"EID6eeaff27-0175-1000-4ed8-43ace1abdb51"},"resultedFrom":{"ref":"EIDa38a26e9-f9de-4f40-aac8-916fc234e34c"},"startTimestamp":"2020-10-28T11:14:56Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0057-0175-1000-7e23-52d891e565dd","parent":{"ref":"EID6eeaff27-0175-1000-4ed8-43ace1abdb51"},"resultedFrom":{"ref":"EID7e9e0ae5-ed9e-4d50-9a00-7c38bd6601fd"},"startTimestamp":"2020-10-28T11:14:56Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2b0d1a81-0eb8-4d28-8ca5-62e2d3daee18"},{"ref":"EID1580bf22-518c-48d3-a0e2-200381246bba"},{"ref":"EID7e70fbb6-e931-4614-9ca1-06201bfe4390"}]},"parent":{"ref":"EID6eeaff27-0175-1000-30a8-d24d8d68af24"},"resultedFrom":{"ref":"EIDc0e89d68-2fb5-49e6-a001-cfdfe37ac91d"},"startTimestamp":"2020-10-28T11:14:55Z","duration":132,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID11de8ff5-6025-4a1c-939a-f65cda991b16"},"startTimestamp":"2020-10-28T11:14:55Z","duration":304,"status":"PASSED"},{"id":"EID6eeb0058-0175-1000-7f4a-27506403e207","testStepResults":{"TestStepResult":{"id":"EID6eeb0058-0175-1000-4a87-f1aebf0c401a","messages":{"message":{"ref":"TR.unexpectedHtml"}},"attachments":{"attachment":[{"ref":"EID6060442f-8172-4c79-8f94-54d1c17ff8b2"},{"ref":"EID876a1a72-a25c-4c1b-b618-a74425bebedd"},{"ref":"EID54e3f0d7-f615-4363-9ac8-b731ad45b6a9"},{"ref":"EIDd7c06981-c9a9-48bf-aceb-5dbb605a3850"},{"ref":"EID834e574b-2ec8-43eb-b977-4e1725094acf"},{"ref":"EID593b7d74-01bf-4c0d-a33f-1081e5f6e71e"},{"ref":"EIDea634db8-8511-4326-b40b-61108971d041"},{"ref":"EID64ca8cc0-7c7a-4657-ae4a-7078a1055951"},{"ref":"EID3036886c-8809-40c2-8487-2882d1763323"}]},"parent":{"ref":"EID6eeb0058-0175-1000-7f4a-27506403e207"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/07e52606-e155-4314-9ddd-9f1b498690be.json"},"startTimestamp":"2020-10-28T11:14:56Z","duration":718,"status":"SKIPPED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID1756fabf-84f1-47e0-87da-bafd72512291"},"startTimestamp":"2020-10-28T11:14:56Z","duration":908,"status":"SKIPPED"},{"id":"EID6eeb03e4-0175-1000-a0bc-570935700c9e","testStepResults":{"TestStepResult":{"id":"EID6eeb03ed-0175-1000-ca54-382850e1f4fb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb04af-0175-1000-4124-83e9d50b440a","parent":{"ref":"EID6eeb03ed-0175-1000-ca54-382850e1f4fb"},"resultedFrom":{"ref":"EID526d5b82-8ec4-4823-ad22-92e52bcc063e"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb04af-0175-1000-8d9e-70d1e265edc1","parent":{"ref":"EID6eeb03ed-0175-1000-ca54-382850e1f4fb"},"resultedFrom":{"ref":"EIDc47d84e2-2b36-4260-abdc-4341b2e5ec51"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb04af-0175-1000-9216-4d0c3e8bc92b","parent":{"ref":"EID6eeb03ed-0175-1000-ca54-382850e1f4fb"},"resultedFrom":{"ref":"EID545cc87f-3d0f-4e4d-9378-38476dc21cc7"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb04af-0175-1000-7ceb-66b4b1451d3e","parent":{"ref":"EID6eeb03ed-0175-1000-ca54-382850e1f4fb"},"resultedFrom":{"ref":"EID0af8c7c0-4fac-49df-b817-86b11bb9f69e"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID5fcfdbd0-8667-4695-bff8-4078bb7ed66f"},{"ref":"EIDfe8d0054-5a43-4ffb-82dd-9371934af52c"},{"ref":"EIDe5ae2eba-1c85-4d66-9a9c-602541668e5d"}]},"parent":{"ref":"EID6eeb03e4-0175-1000-a0bc-570935700c9e"},"resultedFrom":{"ref":"EID247f8881-c8e2-462d-a999-96144faee1f3"},"startTimestamp":"2020-10-28T11:14:57Z","duration":36,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID4675f14c-ae5a-4fde-8c41-9d6b9be5cac0"},"startTimestamp":"2020-10-28T11:14:57Z","duration":204,"status":"PASSED"},{"id":"EID6eeb04b0-0175-1000-7e54-ca2ed42ccc55","testStepResults":{"TestStepResult":{"id":"EID6eeb04b0-0175-1000-0a86-cab93bc50360","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb05d5-0175-1000-b08a-09b7b9b6acfb","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EID81652ee1-8d6a-4bd7-b73c-7ce6643f4fb1"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-3032-0b455d22d60e","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EIDef9d4618-e673-44c8-baf3-1b4cffe84e9f"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-a1e9-eafb8e9f00a9","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EIDdbeab8fb-c972-4cd3-8de1-663d96d54a8d"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-75f6-8229107be336","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EID44374564-e394-4c06-b685-46c9369e29d1"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-21b1-d8be4aad9537","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EID0c0bf78b-b1e9-46d8-9869-dd3529d51884"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-4452-1cbcc6118026","parent":{"ref":"EID6eeb04b0-0175-1000-0a86-cab93bc50360"},"resultedFrom":{"ref":"EIDafc0153c-5f03-4e66-b0d6-4f866a13fcbb"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2d967229-34b0-4085-b9f0-b2bdc0a95238"},{"ref":"EIDd0191d0c-6ddd-4386-9b46-ac5fe165cac6"},{"ref":"EIDc839a7ca-efbb-4478-8d54-945ae39fafa3"}]},"parent":{"ref":"EID6eeb04b0-0175-1000-7e54-ca2ed42ccc55"},"resultedFrom":{"ref":"EIDf590f109-ddde-4c22-8f11-1beedc7628d5"},"startTimestamp":"2020-10-28T11:14:57Z","duration":107,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID9f5a4899-7076-4aae-b859-6881f870bc41"},"startTimestamp":"2020-10-28T11:14:57Z","duration":293,"status":"PASSED"},{"id":"EID6eeb05d5-0175-1000-258b-27f5adb2e23b","testStepResults":{"TestStepResult":{"id":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb06b2-0175-1000-86ee-1ed3caaf9dbf","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EID1a696ecb-91f0-4291-992d-d50309f756c9"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-cc2f-fca77a063c17","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EIDe568e2ef-2bf6-4f33-a532-0a8109262273"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-66ff-e80330946833","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EID97f57414-5b41-465a-95b0-596c884bc25a"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-abe9-2726fde19df7","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EIDf8c029e9-6cb9-4b9a-9477-255e4e130ff2"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-9945-f631b9bbc3a5","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EID94ae8e41-ca18-4c83-87d8-81de55891d86"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-f2a7-a7b1edf590c4","parent":{"ref":"EID6eeb05d5-0175-1000-8dc3-e24a710c1a1b"},"resultedFrom":{"ref":"EID68cf959b-8629-4c39-89f2-1988e0fa5487"},"startTimestamp":"2020-10-28T11:14:57Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID040355fa-b66f-493a-b3e7-7ce9ca14c94e"},{"ref":"EIDee29504f-bd70-4652-8e37-12cbf566bab3"},{"ref":"EID01da8eaf-05ed-4302-a432-da524ecf0389"}]},"parent":{"ref":"EID6eeb05d5-0175-1000-258b-27f5adb2e23b"},"resultedFrom":{"ref":"EID236bb0dd-3eda-46cd-83c4-7cc7f2fd5b3a"},"startTimestamp":"2020-10-28T11:14:57Z","duration":43,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID59e31b8c-2277-4491-b38b-9b067fd88f9b"},"startTimestamp":"2020-10-28T11:14:57Z","duration":221,"status":"PASSED"},{"id":"EID6eeb06b2-0175-1000-c22d-9bcf3eafca2e","testStepResults":{"TestStepResult":{"id":"EID6eeb06b2-0175-1000-0a94-363117c75c48","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb07bd-0175-1000-e10e-db151bf057af","parent":{"ref":"EID6eeb06b2-0175-1000-0a94-363117c75c48"},"resultedFrom":{"ref":"EID816b487c-0309-416b-a9b0-2cf5ed326e08"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb07bd-0175-1000-8b0f-762ef47261e4","parent":{"ref":"EID6eeb06b2-0175-1000-0a94-363117c75c48"},"resultedFrom":{"ref":"EID4caf026b-3e5e-4dfc-8a35-502c2a0d8c0f"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb07bd-0175-1000-223d-b24874859abd","parent":{"ref":"EID6eeb06b2-0175-1000-0a94-363117c75c48"},"resultedFrom":{"ref":"EID8aaec96a-4930-40b4-a515-51a2cd999a8d"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb07bd-0175-1000-7844-e6bb9bef18a1","parent":{"ref":"EID6eeb06b2-0175-1000-0a94-363117c75c48"},"resultedFrom":{"ref":"EID9e5db714-8cae-4709-8efd-c793aca80c4c"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDacd3b33e-950d-46aa-a62b-0faff6e2fbc2"},{"ref":"EIDc9941c17-ae81-41ea-83be-f54a221ba8ba"},{"ref":"EIDc2ce8411-0389-4ff7-b3f1-fa17f05a99ae"}]},"parent":{"ref":"EID6eeb06b2-0175-1000-c22d-9bcf3eafca2e"},"resultedFrom":{"ref":"EIDc5359a5b-67d8-4b76-aa50-1db7b317029f"},"startTimestamp":"2020-10-28T11:14:57Z","duration":109,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID4abfa6f3-4dd7-4a6e-8a07-c172ecf0ed3c"},"startTimestamp":"2020-10-28T11:14:57Z","duration":267,"status":"PASSED"},{"id":"EID6eeb07bd-0175-1000-f52d-683f577640d9","testStepResults":{"TestStepResult":[{"id":"EID6eeb07bd-0175-1000-3a22-6c94e3c53684","attachments":{"attachment":[{"ref":"EID663c926c-59f3-4b4b-944e-ac34d8063a3e"},{"ref":"EID66ef14bc-005a-4f47-98fb-0daba15d4a60"},{"ref":"EIDb9dc29ca-683a-4bc2-8efb-f71212048921"},{"ref":"EIDe9f2fd1c-d5ce-414a-8c09-47b70e8d862a"}]},"parent":{"ref":"EID6eeb07bd-0175-1000-f52d-683f577640d9"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/71933598-4183-43b0-8ba7-cd280b7b59eb.json"},"startTimestamp":"2020-10-28T11:14:58Z","duration":338,"status":"PASSED"},{"id":"EID6eeb0950-0175-1000-20dd-9d22dbf7b1e4","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0a6c-0175-1000-593b-da80aca69b25","parent":{"ref":"EID6eeb0950-0175-1000-20dd-9d22dbf7b1e4"},"resultedFrom":{"ref":"EIDbdbe3b9d-e494-4266-ae6d-b2c20457ab73"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0a6c-0175-1000-9601-23750aa20ed1","parent":{"ref":"EID6eeb0950-0175-1000-20dd-9d22dbf7b1e4"},"resultedFrom":{"ref":"EIDf0eeaa26-2b57-4570-a892-40ca0d642d10"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0a6c-0175-1000-66b4-1bfca435cf82","parent":{"ref":"EID6eeb0950-0175-1000-20dd-9d22dbf7b1e4"},"resultedFrom":{"ref":"EID6e15e5c8-d02f-4e2e-b88d-776004dd6ef0"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0a6c-0175-1000-f6ca-e5551858e79c","messages":{"message":{"ref":"TR.uniqueDatasetIdentifiers","translationArguments":{"argument":[{"token":"actual","$":1},{"token":"element","$":"#text"},{"token":"expected","$":0},{"token":"xpath","$":"count(//*:entry[*:spatial_dataset_identifier_code = following-sibling::*/*:spatial_dataset_identifier_code and *:spatial_dataset_identifier_namespace = following-sibling::*/*:spatial_dataset_identifier_namespace])"}]}}},"parent":{"ref":"EID6eeb0950-0175-1000-20dd-9d22dbf7b1e4"},"resultedFrom":{"ref":"EIDb18b17b8-8e7f-4df0-9b8c-ce9ac27b4405"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDe0623b8a-493b-47d4-9291-358c87417fcf"},{"ref":"EIDf1d94230-1f88-4259-9ff2-5171b6d9a278"},{"ref":"EIDd9d36796-7cf3-483a-9801-e187fb575dab"}]},"parent":{"ref":"EID6eeb07bd-0175-1000-f52d-683f577640d9"},"resultedFrom":{"ref":"EID061da0c4-6109-4cff-ba9a-3e4f4eeba872"},"startTimestamp":"2020-10-28T11:14:58Z","duration":79,"status":"FAILED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID3b1cf94e-b83c-4c56-9ba5-2bd801010ea4"},"startTimestamp":"2020-10-28T11:14:58Z","duration":687,"status":"FAILED"},{"id":"EID6eeb0a6d-0175-1000-79bb-e61b51142f10","testStepResults":{"TestStepResult":{"id":"EID6eeb0a6d-0175-1000-a84d-5a005d34dc7a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0b06-0175-1000-ebd0-12a67c810e13","parent":{"ref":"EID6eeb0a6d-0175-1000-a84d-5a005d34dc7a"},"resultedFrom":{"ref":"EID33789d28-70d9-49eb-be72-66ea2805a04e"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0b06-0175-1000-f51d-4f9a4dc99e51","parent":{"ref":"EID6eeb0a6d-0175-1000-a84d-5a005d34dc7a"},"resultedFrom":{"ref":"EIDe50f5512-6bbb-48c5-a298-9e89a65270dc"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0b06-0175-1000-62e0-0989e794712e","parent":{"ref":"EID6eeb0a6d-0175-1000-a84d-5a005d34dc7a"},"resultedFrom":{"ref":"EIDbf1d2fe5-b910-4765-8631-b27b1cd16200"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0b06-0175-1000-8cb1-0d2d02e70269","parent":{"ref":"EID6eeb0a6d-0175-1000-a84d-5a005d34dc7a"},"resultedFrom":{"ref":"EIDbdd67613-ea66-4e61-a9c5-3bcfb6430d42"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID2fd46eee-b160-4c9c-8636-40eac6b13b0b"},{"ref":"EIDa2753827-7615-405b-bafb-224d74435512"},{"ref":"EID6894b7c2-5058-4987-88c0-1aadc4f3a4b8"}]},"parent":{"ref":"EID6eeb0a6d-0175-1000-79bb-e61b51142f10"},"resultedFrom":{"ref":"EIDdafcef94-9aa0-44aa-815b-5966d1813b17"},"startTimestamp":"2020-10-28T11:14:58Z","duration":37,"status":"PASSED"}},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EID4546bada-0307-42ec-883b-25494233e9a5"},"startTimestamp":"2020-10-28T11:14:58Z","duration":153,"status":"PASSED"},{"id":"EID6eeb0b06-0175-1000-5826-dc7277b52a3d","testStepResults":{"TestStepResult":[{"id":"EID6eeb0b06-0175-1000-fb01-10f0f2ab1d64","parent":{"ref":"EID6eeb0b06-0175-1000-5826-dc7277b52a3d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/96ce6b09-638f-40cd-919b-785cb006117d.json"},"startTimestamp":"2020-10-28T11:14:58Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0b06-0175-1000-9a07-f8b37f936e62","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0c19-0175-1000-907f-eecd00a6996b","parent":{"ref":"EID6eeb0b06-0175-1000-9a07-f8b37f936e62"},"resultedFrom":{"ref":"EID51637bcb-84c0-43de-a410-39cfe7214d42"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0c19-0175-1000-60ea-9367acee395e","parent":{"ref":"EID6eeb0b06-0175-1000-9a07-f8b37f936e62"},"resultedFrom":{"ref":"EID314faeb2-54f4-4cf8-b096-2c8ebab24f95"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0c19-0175-1000-5fd3-131d0933bbaa","parent":{"ref":"EID6eeb0b06-0175-1000-9a07-f8b37f936e62"},"resultedFrom":{"ref":"EID77ef7c73-a8e2-4d40-b296-0f88e45b239f"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0c19-0175-1000-711d-33dd30fb1221","messages":{"message":{"ref":"TR.missingLinkToMetadataRecordForDownloadService","translationArguments":{"argument":[{"token":"element","$":"vnd.ogc.csw.GetRecordByIdResponse_xml']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='application/xml' or @type='application/vnd.ogc.csw.GetRecordByIdResponse_xml']"}]}}},"parent":{"ref":"EID6eeb0b06-0175-1000-9a07-f8b37f936e62"},"resultedFrom":{"ref":"EIDa0e0a10e-dd0e-4d2a-99af-1380b78c632e"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID14ab7da3-3f8c-4ff3-a162-fe69ddcfe0a3"},{"ref":"EIDed9a5f82-527c-4b42-8cef-c05613b03b81"},{"ref":"EIDaca1cac3-48dd-4ce0-94f7-614e3ce70b5d"}]},"parent":{"ref":"EID6eeb0b06-0175-1000-5826-dc7277b52a3d"},"resultedFrom":{"ref":"EID62c56e18-3a6f-4c85-befc-56f47c597583"},"startTimestamp":"2020-10-28T11:14:58Z","duration":127,"status":"FAILED"}]},"parent":{"ref":"EID6eeaf14d-0175-1000-8956-e557d73da1af"},"resultedFrom":{"ref":"EIDb0be137f-b987-4050-9991-9939c14558fc"},"startTimestamp":"2020-10-28T11:14:58Z","duration":275,"status":"FAILED"}]},"parent":{"ref":"EID36b70879-9ccd-4c0b-b605-0294efe99035"},"resultedFrom":{"ref":"EID59c49d09-616a-4a70-a918-2f31d345e38f"},"startTimestamp":"2020-10-28T11:14:52Z","duration":6860,"status":"FAILED"},{"id":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb0c19-0175-1000-107d-002f86ad04a3","testStepResults":{"TestStepResult":[{"id":"EID6eeb0c19-0175-1000-15d1-4926366dd9eb","parent":{"ref":"EID6eeb0c19-0175-1000-107d-002f86ad04a3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/cd9fd714-929c-4557-acf1-bf5e4f7623b7.json"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0c19-0175-1000-d432-b0357090e4f4","parent":{"ref":"EID6eeb0c19-0175-1000-107d-002f86ad04a3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/d46091ed-55ea-4804-b575-d8921a120ffe.json"},"startTimestamp":"2020-10-28T11:14:59Z","duration":37,"status":"PASSED"},{"id":"EID6eeb0c19-0175-1000-1ac2-d23f7104fdd2","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0cad-0175-1000-2391-4a9a64c22f92","parent":{"ref":"EID6eeb0c19-0175-1000-1ac2-d23f7104fdd2"},"resultedFrom":{"ref":"EID7e59dda7-5894-467a-8898-aab1452b2ca8"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0cad-0175-1000-5dd1-13d5cb2bad64","parent":{"ref":"EID6eeb0c19-0175-1000-1ac2-d23f7104fdd2"},"resultedFrom":{"ref":"EID1d5ee48b-e87f-4c0c-92da-f34bed36185c"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0cad-0175-1000-cf41-104b31dd1afa","parent":{"ref":"EID6eeb0c19-0175-1000-1ac2-d23f7104fdd2"},"resultedFrom":{"ref":"EIDaeb0ef4a-6785-4e05-867a-a582eebea1f6"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa7cab846-879d-4300-b116-90c2d55aa105"},{"ref":"EIDc234cb67-e807-4886-bb80-04868c1b0a93"},{"ref":"EID4ebeaf2d-8ccc-4fd6-bcd2-7a13c997659d"}]},"parent":{"ref":"EID6eeb0c19-0175-1000-107d-002f86ad04a3"},"resultedFrom":{"ref":"EID58b7f026-abf7-4aa2-8352-b12bba979e8e"},"startTimestamp":"2020-10-28T11:14:59Z","duration":39,"status":"PASSED"},{"id":"EID6eeb0cae-0175-1000-157d-6ac80c9cb451","attachments":{"attachment":{"ref":"EID55b74484-bc0b-48a7-b54f-1642d14d6c8c"}},"parent":{"ref":"EID6eeb0c19-0175-1000-107d-002f86ad04a3"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/2a0045bd-d9f0-462c-95f3-340afb510c4a.json"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0cb8-0175-1000-f9a3-3a169907ae81","parent":{"ref":"EID6eeb0c19-0175-1000-107d-002f86ad04a3"},"resultedFrom":{"ref":"EID6cda6835-bf50-4a54-945f-de1cb4f4df90"},"startTimestamp":"2020-10-28T11:14:59Z","duration":25,"status":"PASSED"}]},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID79c5ab9a-fc31-4ecb-8161-4f01fdc7b964"},"startTimestamp":"2020-10-28T11:14:59Z","duration":185,"status":"PASSED"},{"id":"EID6eeb0cd2-0175-1000-40ad-b63d1ab9da45","testStepResults":{"TestStepResult":[{"id":"EID6eeb0cd2-0175-1000-5d01-6c936074f263","parent":{"ref":"EID6eeb0cd2-0175-1000-40ad-b63d1ab9da45"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6911c18d-4c5b-4d61-bb81-13c1d8f6e591.json"},"startTimestamp":"2020-10-28T11:14:59Z","duration":93,"status":"PASSED"},{"id":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0d56-0175-1000-77e6-063dcc628d1c","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315"},"resultedFrom":{"ref":"EIDe057985c-82b5-4f78-ba3a-14f5ec7a0e48"},"startTimestamp":"2020-10-28T11:14:59Z","duration":12,"status":"FAILED"},{"id":"EID6eeb0d63-0175-1000-2760-da2e6a5ade34","parent":{"ref":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315"},"resultedFrom":{"ref":"EID42507c13-e6d6-4919-93b4-407ad56671b9"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0d63-0175-1000-6e28-abe4dbc261f6","parent":{"ref":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315"},"resultedFrom":{"ref":"EID7b7e68a2-367c-4164-83e7-493f2855b1ad"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0d63-0175-1000-5d8b-0a5ce716f96b","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:name"},{"token":"xpath","$":"/atom:feed/atom:author/atom:name"}]}}},"parent":{"ref":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315"},"resultedFrom":{"ref":"EIDf2f63ec7-376e-4a0c-a2fe-6595c3d9592b"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"FAILED"},{"id":"EID6eeb0d63-0175-1000-400c-b7494ec704e3","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:email"},{"token":"xpath","$":"/atom:feed/atom:author/atom:email"}]}}},"parent":{"ref":"EID6eeb0cd2-0175-1000-1029-c82fc7bb6315"},"resultedFrom":{"ref":"EIDa3416904-5bc6-45f4-a331-0abf7f0b87fa"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID117db465-4a18-4e2b-baf1-db5db93733d1"},{"ref":"EIDf93d6721-349b-4b1d-9768-c45523b12096"},{"ref":"EIDcd8ff62e-8d2c-4892-9bc1-398cdd055223"}]},"parent":{"ref":"EID6eeb0cd2-0175-1000-40ad-b63d1ab9da45"},"resultedFrom":{"ref":"EIDed487595-c12b-42bb-9251-842d352f151b"},"startTimestamp":"2020-10-28T11:14:59Z","duration":49,"status":"FAILED"}]},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID5cfc2aa9-1e9d-4e1d-a494-49e80907620b"},"startTimestamp":"2020-10-28T11:14:59Z","duration":145,"status":"FAILED"},{"id":"EID6eeb0d63-0175-1000-56f7-24bf5bd54ac9","testStepResults":{"TestStepResult":{"id":"EID6eeb0d63-0175-1000-fe85-6bfda9a3178c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0dcb-0175-1000-c495-3cb7b18245d7","parent":{"ref":"EID6eeb0d63-0175-1000-fe85-6bfda9a3178c"},"resultedFrom":{"ref":"EIDed94db52-6a1d-4103-8645-2128cd464847"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0dcb-0175-1000-a68e-1694b238e3a9","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0d63-0175-1000-fe85-6bfda9a3178c"},"resultedFrom":{"ref":"EID5bf2efd6-136a-4a17-bb8c-ae862a731fbd"},"startTimestamp":"2020-10-28T11:14:59Z","duration":24,"status":"FAILED"},{"id":"EID6eeb0de3-0175-1000-c9d2-daccf49ed010","parent":{"ref":"EID6eeb0d63-0175-1000-fe85-6bfda9a3178c"},"resultedFrom":{"ref":"EIDc6c5b1fb-fb8d-4031-876f-e56f61ec96f4"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0f84bb8c-a0f4-4532-bcb9-736704bcc050"},{"ref":"EIDfce42df2-1632-47ac-a475-e7c0a46298c5"},{"ref":"EID78e69f9b-ba27-4f2c-a52f-46f231b3a11d"}]},"parent":{"ref":"EID6eeb0d63-0175-1000-56f7-24bf5bd54ac9"},"resultedFrom":{"ref":"EID2aa9841c-d552-45fe-b35a-d4b1659a3855"},"startTimestamp":"2020-10-28T11:14:59Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID34ccb113-ed5a-40fc-bd4c-1f8c53b447cc"},"startTimestamp":"2020-10-28T11:14:59Z","duration":128,"status":"FAILED"},{"id":"EID6eeb0de3-0175-1000-7bc2-79fc8578c692","testStepResults":{"TestStepResult":{"id":"EID6eeb0de3-0175-1000-6ee5-c2ae30ae288f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0e73-0175-1000-e646-2f2656024216","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeb0de3-0175-1000-6ee5-c2ae30ae288f"},"resultedFrom":{"ref":"EIDd40a2381-4226-4c44-9b39-f31aa7080c68"},"startTimestamp":"2020-10-28T11:14:59Z","duration":1,"status":"FAILED"},{"id":"EID6eeb0e74-0175-1000-dbee-95764a6e170a","parent":{"ref":"EID6eeb0de3-0175-1000-6ee5-c2ae30ae288f"},"resultedFrom":{"ref":"EIDb69b2305-f8e9-48a5-9dde-1795f5bf7de9"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0e74-0175-1000-b7cf-dae64a84c68b","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0de3-0175-1000-6ee5-c2ae30ae288f"},"resultedFrom":{"ref":"EID3bb3fe48-5cc6-46c2-bb42-94ea3d263aed"},"startTimestamp":"2020-10-28T11:14:59Z","duration":15,"status":"FAILED"},{"id":"EID6eeb0e83-0175-1000-a02c-d42fd4ee95fe","messages":{"message":{"ref":"TR.missingOneFeedEntryWithDlFile","translationArguments":{"argument":[{"token":"element","$":"@href"},{"token":"xpath","$":"//atom:entry/atom:link[(@rel='alternate' and @type!='application/atom+xml' ) or (@rel='section')]/@href"}]}}},"parent":{"ref":"EID6eeb0de3-0175-1000-6ee5-c2ae30ae288f"},"resultedFrom":{"ref":"EIDa4ab80d7-03f1-4607-aba7-3fdc48a5d084"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDcad7b49d-ea87-4714-a832-87515d75caaf"},{"ref":"EID1314cb21-7fa4-4d84-947f-a5d2495ae05d"},{"ref":"EID4db9b49b-d0d2-4f6c-a54c-30b42d783e0e"}]},"parent":{"ref":"EID6eeb0de3-0175-1000-7bc2-79fc8578c692"},"resultedFrom":{"ref":"EID013a9576-bdf0-4f2c-8521-6e50e3a10ab3"},"startTimestamp":"2020-10-28T11:14:59Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID5c0ebf08-068d-4973-87b5-0290707fedbf"},"startTimestamp":"2020-10-28T11:14:59Z","duration":160,"status":"FAILED"},{"id":"EID6eeb0e83-0175-1000-2997-5e20349a8a26","testStepResults":{"TestStepResult":{"id":"EID6eeb0e83-0175-1000-8412-069c6d3d6c2b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0ef4-0175-1000-1f34-6421f9a9018c","parent":{"ref":"EID6eeb0e83-0175-1000-8412-069c6d3d6c2b"},"resultedFrom":{"ref":"EIDcd901e00-008b-42d5-bbae-cf0793bcf243"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0ef4-0175-1000-5d9a-0a32caad6943","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0e83-0175-1000-8412-069c6d3d6c2b"},"resultedFrom":{"ref":"EIDc370ce35-d06c-42a3-8875-fbe4555a9296"},"startTimestamp":"2020-10-28T11:14:59Z","duration":12,"status":"FAILED"},{"id":"EID6eeb0f00-0175-1000-236c-f34f5bf7cda8","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:rights"},{"token":"xpath","$":"/atom:feed/atom:rights"}]}}},"parent":{"ref":"EID6eeb0e83-0175-1000-8412-069c6d3d6c2b"},"resultedFrom":{"ref":"EIDb1ff6b41-ee24-47e8-aad5-693419310aa4"},"startTimestamp":"2020-10-28T11:14:59Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDd799997d-4d01-4979-b482-645e7a60c57f"},{"ref":"EIDd8d3dcfe-10f4-4064-9709-ac9cab818c81"},{"ref":"EID35d6f042-71c2-4a92-9065-55d57b9cd2a0"}]},"parent":{"ref":"EID6eeb0e83-0175-1000-2997-5e20349a8a26"},"resultedFrom":{"ref":"EIDfb0b0344-5d6b-4293-8839-b249ddc9fbee"},"startTimestamp":"2020-10-28T11:14:59Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID77a041d1-0eb0-46f0-8d57-08f5283556ea"},"startTimestamp":"2020-10-28T11:14:59Z","duration":126,"status":"FAILED"},{"id":"EID6eeb0f01-0175-1000-602a-cd695e0839dd","testStepResults":{"TestStepResult":{"id":"EID6eeb0f01-0175-1000-f1c9-e3fd43e832bf","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb0f7c-0175-1000-3c9d-fb313b7506af","parent":{"ref":"EID6eeb0f01-0175-1000-f1c9-e3fd43e832bf"},"resultedFrom":{"ref":"EID957ff43d-aaee-449a-9c05-ae93e373cfc1"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb0f7c-0175-1000-1cc1-619ff5446cc1","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0f01-0175-1000-f1c9-e3fd43e832bf"},"resultedFrom":{"ref":"EID446b58f4-85b6-4892-aad0-9c2f7939a82d"},"startTimestamp":"2020-10-28T11:15:00Z","duration":18,"status":"FAILED"},{"id":"EID6eeb0f8e-0175-1000-af3b-5ac5c0cd52fc","messages":{"message":{"ref":"TR.missingElement","translationArguments":{"argument":[{"token":"element","$":"atom:title"},{"token":"xpath","$":"/atom:feed/atom:title"}]}}},"parent":{"ref":"EID6eeb0f01-0175-1000-f1c9-e3fd43e832bf"},"resultedFrom":{"ref":"EID267fb057-fd3c-4cd8-bc35-19cc199575cf"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EID51b34d8b-c5c8-4b14-bab8-20b3d4f6cd5e"},{"ref":"EID2adb8a56-b70d-4bae-b1e3-00e67652c176"},{"ref":"EID5a6a1af8-2d5e-4fc1-a96c-8ba3b98b9e79"}]},"parent":{"ref":"EID6eeb0f01-0175-1000-602a-cd695e0839dd"},"resultedFrom":{"ref":"EIDbab92e23-e681-41e9-980f-59794067365d"},"startTimestamp":"2020-10-28T11:14:59Z","duration":34,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID9d8b99ed-1360-4d01-ad39-4b167f8dcca6"},"startTimestamp":"2020-10-28T11:14:59Z","duration":142,"status":"FAILED"},{"id":"EID6eeb0f90-0175-1000-caa5-da26943f74e0","testStepResults":{"TestStepResult":{"id":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb104b-0175-1000-8d89-ffa5a6330c66","parent":{"ref":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b"},"resultedFrom":{"ref":"EIDad8d88cd-6673-4ab1-ad28-a320bc7e2d74"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb104b-0175-1000-6f91-e5e27fa00d59","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b"},"resultedFrom":{"ref":"EID1690699e-6bcd-4c07-bd29-aced03506d36"},"startTimestamp":"2020-10-28T11:15:00Z","duration":16,"status":"FAILED"},{"id":"EID6eeb105b-0175-1000-da30-c0338cb320c3","messages":{"message":{"ref":"TR.missingFeedUpdatedInformation"}},"parent":{"ref":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b"},"resultedFrom":{"ref":"EIDe785106d-a4fe-448f-8167-9eeb514661e7"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"FAILED"},{"id":"EID6eeb105b-0175-1000-8f1e-769541e15e50","parent":{"ref":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b"},"resultedFrom":{"ref":"EIDefdd906b-d2f5-435e-a7b9-4a0ae838388f"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb105b-0175-1000-922a-5816636adce5","parent":{"ref":"EID6eeb0f90-0175-1000-6892-e7a747bcce4b"},"resultedFrom":{"ref":"EIDca40e458-362b-440c-a992-6efabf463339"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID13e28dad-e349-446a-9084-254c86ec3746"},{"ref":"EID8175052f-4d5d-42f4-99fa-46294134e894"},{"ref":"EID72f6668c-9dc3-413f-a16a-3b6908922e05"}]},"parent":{"ref":"EID6eeb0f90-0175-1000-caa5-da26943f74e0"},"resultedFrom":{"ref":"EID7d57ba11-1df9-4bb2-aa77-440a313392fd"},"startTimestamp":"2020-10-28T11:15:00Z","duration":32,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID0218d717-6b00-460d-94cc-48039accb6ea"},"startTimestamp":"2020-10-28T11:15:00Z","duration":299,"status":"FAILED"},{"id":"EID6eeb10bb-0175-1000-3c39-70b0c3d22c38","testStepResults":{"TestStepResult":{"id":"EID6eeb10bb-0175-1000-d3ad-e21bcba8fbcc","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1130-0175-1000-cb5e-820095f2a5ac","parent":{"ref":"EID6eeb10bb-0175-1000-d3ad-e21bcba8fbcc"},"resultedFrom":{"ref":"EID5686bf92-0937-43f9-894c-a6fbfcce14d9"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1130-0175-1000-d0d1-0a4a80c6305d","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb10bb-0175-1000-d3ad-e21bcba8fbcc"},"resultedFrom":{"ref":"EID3f955f5f-aa23-4e9c-b2b6-ced8d7e6a5ef"},"startTimestamp":"2020-10-28T11:15:00Z","duration":41,"status":"FAILED"},{"id":"EID6eeb1159-0175-1000-30d6-dc6981809ad1","parent":{"ref":"EID6eeb10bb-0175-1000-d3ad-e21bcba8fbcc"},"resultedFrom":{"ref":"EIDc5baa617-99df-453c-89d5-889050c29330"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDc4d394ec-10c8-4847-866c-67cfcd9ccf8e"},{"ref":"EID48bffdca-52c2-406b-b3d4-d86ef1df7860"},{"ref":"EIDb7ec1bdb-2dea-408c-9c9a-f81899f64aef"}]},"parent":{"ref":"EID6eeb10bb-0175-1000-3c39-70b0c3d22c38"},"resultedFrom":{"ref":"EIDb84cb78c-b67f-451a-a4b3-510178c03621"},"startTimestamp":"2020-10-28T11:15:00Z","duration":30,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID8d0d9cdd-efca-42e8-ad1f-7eb66aa638d5"},"startTimestamp":"2020-10-28T11:15:00Z","duration":158,"status":"FAILED"},{"id":"EID6eeb1159-0175-1000-b5b5-c6ba97e9b675","testStepResults":{"TestStepResult":{"id":"EID6eeb1159-0175-1000-d832-f373d541c684","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb11ca-0175-1000-ac60-3ac1e95d6140","parent":{"ref":"EID6eeb1159-0175-1000-d832-f373d541c684"},"resultedFrom":{"ref":"EID7e4fda51-4006-4f3e-a6f4-7db68392fc11"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb11ca-0175-1000-0f64-0e08510cf6d2","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb1159-0175-1000-d832-f373d541c684"},"resultedFrom":{"ref":"EID49422432-0c1b-4af3-bfa2-251d5ae79228"},"startTimestamp":"2020-10-28T11:15:00Z","duration":17,"status":"FAILED"},{"id":"EID6eeb11db-0175-1000-4365-2851c2e3bacc","parent":{"ref":"EID6eeb1159-0175-1000-d832-f373d541c684"},"resultedFrom":{"ref":"EIDf0a33a4d-c92f-4baf-85cb-b4abbc0ba1ce"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDfba06a58-8d35-422a-aa13-53d5f4bca329"},{"ref":"EIDe5f29d15-5ca3-43e0-ae0f-c2f43532e6c2"},{"ref":"EID2df8a5c8-64ec-4eeb-be88-4929b8cf766a"}]},"parent":{"ref":"EID6eeb1159-0175-1000-b5b5-c6ba97e9b675"},"resultedFrom":{"ref":"EID207c5c35-db32-41ba-879e-1e808b7489c6"},"startTimestamp":"2020-10-28T11:15:00Z","duration":38,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EIDb2a3b021-7992-4db1-ae8a-f4b214e54a23"},"startTimestamp":"2020-10-28T11:15:00Z","duration":130,"status":"FAILED"},{"id":"EID6eeb11db-0175-1000-ca36-b07a8fd8c8ac","testStepResults":{"TestStepResult":{"id":"EID6eeb11db-0175-1000-f4c3-939eee9808d8","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1245-0175-1000-1f7b-22cb794deadb","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb11db-0175-1000-f4c3-939eee9808d8"},"resultedFrom":{"ref":"EID76133e1d-5614-401d-852e-4ef8815a1cef"},"startTimestamp":"2020-10-28T11:15:00Z","duration":16,"status":"FAILED"},{"id":"EID6eeb1255-0175-1000-3a42-7d03aa094af2","parent":{"ref":"EID6eeb11db-0175-1000-f4c3-939eee9808d8"},"resultedFrom":{"ref":"EIDabd27331-1785-46d9-86f2-d2139848a4c7"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1255-0175-1000-5239-972701461c31","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb11db-0175-1000-f4c3-939eee9808d8"},"resultedFrom":{"ref":"EIDf8519e33-7b0f-41c1-8b4f-1c2ba30b2a17"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"FAILED"},{"id":"EID6eeb1255-0175-1000-9ed5-d5270abe85c0","messages":{"message":{"ref":"TR.missingLinkToRegistry","translationArguments":{"argument":[{"token":"element","$":"html']"},{"token":"xpath","$":"/atom:feed/atom:link[@rel='describedby' and @type='text/html']"}]}}},"parent":{"ref":"EID6eeb11db-0175-1000-f4c3-939eee9808d8"},"resultedFrom":{"ref":"EIDd82ba567-ee3b-4df4-be82-dc754c146e97"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"FAILED"}]},"attachments":{"attachment":[{"ref":"EIDb3eade06-336e-47b7-919a-0c235f453758"},{"ref":"EIDbc3d7414-d476-43b4-8bd2-ea9092b7135e"},{"ref":"EID8e89cede-727c-4df9-ad29-5f450b9c95b1"}]},"parent":{"ref":"EID6eeb11db-0175-1000-ca36-b07a8fd8c8ac"},"resultedFrom":{"ref":"EID7b0a0bbe-f703-489c-8693-efcaf6161199"},"startTimestamp":"2020-10-28T11:15:00Z","duration":33,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID55c069c6-94a5-4651-9af9-8246cc146022"},"startTimestamp":"2020-10-28T11:15:00Z","duration":132,"status":"FAILED"},{"id":"EID6eeb125f-0175-1000-c323-b4b3dc805900","testStepResults":{"TestStepResult":{"id":"EID6eeb125f-0175-1000-0f1c-0f59c163ef9d","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb12ed-0175-1000-114d-8a8e1965ebd0","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb125f-0175-1000-0f1c-0f59c163ef9d"},"resultedFrom":{"ref":"EIDf1af7b9e-1d16-4c06-8661-46de0db09a2b"},"startTimestamp":"2020-10-28T11:15:00Z","duration":16,"status":"FAILED"},{"id":"EID6eeb12fd-0175-1000-7037-f64448c5d267","parent":{"ref":"EID6eeb125f-0175-1000-0f1c-0f59c163ef9d"},"resultedFrom":{"ref":"EIDdbc6c6c4-09ef-47de-afe4-7fcea6ee8422"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb12fd-0175-1000-8954-2f0bf143554b","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb125f-0175-1000-0f1c-0f59c163ef9d"},"resultedFrom":{"ref":"EID63eeee36-af99-4c6b-8afb-470859d16828"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"FAILED"},{"id":"EID6eeb12fd-0175-1000-4260-a6c07ab73696","parent":{"ref":"EID6eeb125f-0175-1000-0f1c-0f59c163ef9d"},"resultedFrom":{"ref":"EID3c96db82-a589-4a37-bcfd-73164aa74438"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDd36aee1d-d822-4c0b-89d4-52674262f367"},{"ref":"EIDc801423c-b4fe-48b3-a6f1-1b24c516e294"},{"ref":"EIDb38f99bc-053c-4faf-a21f-f63331144016"}]},"parent":{"ref":"EID6eeb125f-0175-1000-c323-b4b3dc805900"},"resultedFrom":{"ref":"EID34caf1a6-eb2a-449d-9fb0-713f1dc1cabc"},"startTimestamp":"2020-10-28T11:15:00Z","duration":31,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID59246a83-610b-4a03-9864-c882200e24ab"},"startTimestamp":"2020-10-28T11:15:00Z","duration":158,"status":"FAILED"},{"id":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c","testStepResults":{"TestStepResult":[{"id":"EID6eeb12fe-0175-1000-f5bb-d503c04fab91","parent":{"ref":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/db77efab-6a81-4e08-814d-cad3b6af1275.json"},"startTimestamp":"2020-10-28T11:15:00Z","duration":0,"status":"PASSED"},{"id":"EID6eeb12fe-0175-1000-9a99-32dd1028f038","parent":{"ref":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1c20a4dc-c5ee-4442-8014-8910c2ac9b4e.json"},"startTimestamp":"2020-10-28T11:15:00Z","duration":224,"status":"PASSED"},{"id":"EID6eeb12fe-0175-1000-2ab4-c005adccc13c","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1400-0175-1000-c05d-f7f1adeaeedc","parent":{"ref":"EID6eeb12fe-0175-1000-2ab4-c005adccc13c"},"resultedFrom":{"ref":"EIDd70a53f2-2100-4d59-b44a-2e26834d370e"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1400-0175-1000-8d44-7719ba1906d5","parent":{"ref":"EID6eeb12fe-0175-1000-2ab4-c005adccc13c"},"resultedFrom":{"ref":"EID755b16af-dd85-46d3-8215-9cd4a75b6e6f"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1400-0175-1000-b895-0b7725a5d138","parent":{"ref":"EID6eeb12fe-0175-1000-2ab4-c005adccc13c"},"resultedFrom":{"ref":"EIDd7cfd878-1d91-4cf2-88b7-2f353a6cef78"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1400-0175-1000-6ac6-55dedfc3a300","parent":{"ref":"EID6eeb12fe-0175-1000-2ab4-c005adccc13c"},"resultedFrom":{"ref":"EIDca90b1e6-1fba-41f6-a573-07f914e4d335"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID55269d1a-03c5-4bb5-9a61-19d4a868a450"},{"ref":"EIDa7e963d0-8faf-4071-8811-71128409a206"},{"ref":"EID1f72babf-d645-4577-a658-a9375d295f7c"}]},"parent":{"ref":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c"},"resultedFrom":{"ref":"EIDc2cdbb58-dbd6-4d34-a2a8-a6ae9b81320a"},"startTimestamp":"2020-10-28T11:15:00Z","duration":36,"status":"PASSED"},{"id":"EID6eeb145e-0175-1000-fa70-a1ade38a63ca","attachments":{"attachment":{"ref":"EIDa4f037f5-e588-41bf-bc3d-91435a9ac462"}},"parent":{"ref":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/a0a2ff26-1e10-40ab-960c-4423c452a197.json"},"startTimestamp":"2020-10-28T11:15:01Z","duration":6,"status":"PASSED"},{"id":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1552-0175-1000-ad49-32ed4769a12e","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EIDa2fd9611-3fc5-4fb3-a708-e5400fd2b9c0"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1552-0175-1000-25a1-3964e87d0fe7","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EID03b95227-e284-4279-87f2-9928c6a4eccc"},"startTimestamp":"2020-10-28T11:15:01Z","duration":11,"status":"FAILED"},{"id":"EID6eeb155d-0175-1000-bb80-40a083f42cd5","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EID450d4218-9461-496d-aa2f-33a2b3b8389b"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb155d-0175-1000-de0e-5542c3912d30","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EIDc15a6218-8819-40b8-a364-eb9720a3838b"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb155d-0175-1000-f35b-e694c36a44f5","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EIDacf3709f-6fc4-4d4c-b025-2b49f702bbc5"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb155d-0175-1000-6b05-fa937e805b0b","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EID81bdd847-687d-4597-ba58-99963ff3635a"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb155d-0175-1000-4433-bc73e4045fc0","parent":{"ref":"EID6eeb14aa-0175-1000-c63d-da5b9e50d91f"},"resultedFrom":{"ref":"EIDe118dccc-6f1b-4376-a577-7e8ae13cd41e"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID84b64d26-8fde-4198-a7cb-df6886c55739"},{"ref":"EIDaefca810-bdb5-4e4d-a060-3d59d18e3a26"},{"ref":"EID8b34f86f-bebe-483f-b78e-1c0cea72be22"}]},"parent":{"ref":"EID6eeb12fe-0175-1000-d7b8-8f4715133f7c"},"resultedFrom":{"ref":"EID76d165b9-d41b-45eb-b7e6-27fc900f7f15"},"startTimestamp":"2020-10-28T11:15:01Z","duration":67,"status":"FAILED"}]},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID6e6a47ed-d7b8-406a-9cd5-e1abf4652cf0"},"startTimestamp":"2020-10-28T11:15:00Z","duration":607,"status":"FAILED"},{"id":"EID6eeb1569-0175-1000-a823-876d92748a19","testStepResults":{"TestStepResult":[{"id":"EID6eeb1569-0175-1000-94cb-cb8bfe2be7d7","parent":{"ref":"EID6eeb1569-0175-1000-a823-876d92748a19"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3bda7cfc-b100-44bb-90e6-c3592561f0e1.json"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1569-0175-1000-4385-60ca22f0451a","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb16c7-0175-1000-1a42-9cd3ac1ecc01","parent":{"ref":"EID6eeb1569-0175-1000-4385-60ca22f0451a"},"resultedFrom":{"ref":"EIDc947b341-320a-4f0b-96aa-3a351ee25a10"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb16c7-0175-1000-c37c-da1f3701a9c4","parent":{"ref":"EID6eeb1569-0175-1000-4385-60ca22f0451a"},"resultedFrom":{"ref":"EIDe3c9511c-4101-4915-81b9-aba6e2072815"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb16c7-0175-1000-b9c3-a32fdd0fd617","parent":{"ref":"EID6eeb1569-0175-1000-4385-60ca22f0451a"},"resultedFrom":{"ref":"EID44852025-6fca-456f-acf1-95e7c7f2dd8a"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"},{"id":"EID6eeb16c7-0175-1000-3a62-734cc06b9ad5","parent":{"ref":"EID6eeb1569-0175-1000-4385-60ca22f0451a"},"resultedFrom":{"ref":"EID3df8c60f-a520-4f3a-afa0-1446c757112c"},"startTimestamp":"2020-10-28T11:15:01Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID48324064-227c-48c4-89c4-f6f6c9fa3186"},{"ref":"EIDd04ad80e-ae74-405a-a26f-31e393c068d6"},{"ref":"EID24d18df8-72a7-4252-8153-0c40759916f3"}]},"parent":{"ref":"EID6eeb1569-0175-1000-a823-876d92748a19"},"resultedFrom":{"ref":"EID8ef21a6b-902d-4585-ae34-e5af27262ef2"},"startTimestamp":"2020-10-28T11:15:01Z","duration":228,"status":"PASSED"},{"id":"EID6eeb16c7-0175-1000-9a7f-85f23880fd43","invokedTests":{"":null,"TestStepResult":[{"id":"EID6eeb16de-0175-1000-9399-4905a6790247","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb17d0-0175-1000-32e1-b86261a54c72","parent":{"ref":"EID6eeb16de-0175-1000-9399-4905a6790247"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb17d0-0175-1000-6206-74ca94565537","parent":{"ref":"EID6eeb16de-0175-1000-9399-4905a6790247"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb17d0-0175-1000-c4f9-d4687e6bfdb0","parent":{"ref":"EID6eeb16de-0175-1000-9399-4905a6790247"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDa889e206-457f-4736-b650-bb959ec8ab77"},{"ref":"EID0d4379ca-6d94-4524-b18d-90c5b4dc905c"},{"ref":"EIDf55b8590-7032-4232-8f12-e2cfd4c06faa"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:01Z","duration":153,"status":"PASSED"},{"id":"EID6eeb17d2-0175-1000-e30b-3864c2e96f43","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb189b-0175-1000-7ab1-84f81fe57e38","parent":{"ref":"EID6eeb17d2-0175-1000-e30b-3864c2e96f43"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb189b-0175-1000-7813-ae79dea6de3a","parent":{"ref":"EID6eeb17d2-0175-1000-e30b-3864c2e96f43"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb189b-0175-1000-8fa2-4f0cf6f03b29","parent":{"ref":"EID6eeb17d2-0175-1000-e30b-3864c2e96f43"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID0909bba1-cbff-4e90-8b96-e228fb204f07"},{"ref":"EID4eba6a9e-7503-45e3-b653-d3085ded8f61"},{"ref":"EID62f1500a-5a31-451e-9ad0-ed5c59ba7ab0"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:02Z","duration":153,"status":"PASSED"},{"id":"EID6eeb18ad-0175-1000-a926-3ecc4033356e","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1977-0175-1000-bb00-2b122b5db29a","parent":{"ref":"EID6eeb18ad-0175-1000-a926-3ecc4033356e"},"resultedFrom":{"ref":"EID7b4d43eb-cfbd-47b2-aeae-9d1fc802d78d"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1977-0175-1000-aaf9-0a00ce6f83af","parent":{"ref":"EID6eeb18ad-0175-1000-a926-3ecc4033356e"},"resultedFrom":{"ref":"EID7389eee5-84b7-4333-8848-9f5b394c9d67"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1977-0175-1000-6300-a064cee7c09e","parent":{"ref":"EID6eeb18ad-0175-1000-a926-3ecc4033356e"},"resultedFrom":{"ref":"EID75bb53c4-17e8-4cb4-b6c6-72a5c6cc1819"},"startTimestamp":"2020-10-28T11:15:02Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EIDe0fc05ef-87e7-4b67-8480-3b073eb81df4"},{"ref":"EID7cde0e26-b0ef-4653-b5c2-ab35e49e7453"},{"ref":"EIDb32b42ca-8fa7-423a-8d12-91778cd3533b"}]},"resultedFrom":{"ref":"EID0531fe14-2169-4a9e-a1da-30040ea73277"},"startTimestamp":"2020-10-28T11:15:02Z","duration":154,"status":"PASSED"}]},"parent":{"ref":"EID6eeb1569-0175-1000-a823-876d92748a19"},"resultedFrom":{"ref":"EID0b46fce1-085e-4564-b97c-dce9ed762b8f"},"startTimestamp":"2020-10-28T11:15:01Z","duration":688,"status":"PASSED"},{"id":"EID6eeb1978-0175-1000-99d5-90bc46677f6b","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb1fd8-0175-1000-2580-0fa388b42769","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb1978-0175-1000-99d5-90bc46677f6b"},"resultedFrom":{"ref":"EIDb6a56e5f-482f-4b20-85d3-6b052872f9d4"},"startTimestamp":"2020-10-28T11:15:04Z","duration":16,"status":"FAILED"},{"id":"EID6eeb1fe8-0175-1000-417d-11c410f32393","parent":{"ref":"EID6eeb1978-0175-1000-99d5-90bc46677f6b"},"resultedFrom":{"ref":"EIDf2e49918-0cf7-4e6d-8c6c-941ef3f85113"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"PASSED"},{"id":"EID6eeb1fe8-0175-1000-ce05-c503cfe20de4","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb1978-0175-1000-99d5-90bc46677f6b"},"resultedFrom":{"ref":"EID9bc2521f-a127-45d6-aaaa-18f9b623ab84"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"FAILED"},{"id":"EID6eeb1fe8-0175-1000-46d0-694f54c38e1f","parent":{"ref":"EID6eeb1978-0175-1000-99d5-90bc46677f6b"},"resultedFrom":{"ref":"EIDb88e3063-f589-47ef-8ef3-18a87d85c4f6"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID121c43f0-8d99-440c-a88b-da2c32fe8747"},{"ref":"EID72afa1f0-75d0-4931-a425-e60ec686a313"},{"ref":"EIDbb68ecc5-2a72-4898-9543-c189bb4d7e1d"}]},"parent":{"ref":"EID6eeb1569-0175-1000-a823-876d92748a19"},"resultedFrom":{"ref":"EIDaf1e117e-aac8-4ada-8750-6eaee997df3c"},"startTimestamp":"2020-10-28T11:15:02Z","duration":1547,"status":"FAILED"}]},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID7e03feba-57eb-4ca1-bb30-1c265f65a03f"},"startTimestamp":"2020-10-28T11:15:01Z","duration":2687,"status":"FAILED"},{"id":"EID6eeb1fe8-0175-1000-eb79-684f0aae3975","testStepResults":{"TestStepResult":{"id":"EID6eeb1fe9-0175-1000-51c7-1cbc882edfbb","testAssertionResults":{"TestAssertionResult":[{"id":"EID6eeb205e-0175-1000-fddb-ecc1de4a4977","messages":{"message":{"ref":"TR.fallbackInfo","translationArguments":{"argument":{"token":"INFO","$":"Response status code:404 is not in acceptable list of status codes"}}}},"parent":{"ref":"EID6eeb1fe9-0175-1000-51c7-1cbc882edfbb"},"resultedFrom":{"ref":"EID10178b9c-8e01-498c-8975-2d49fff98a21"},"startTimestamp":"2020-10-28T11:15:04Z","duration":11,"status":"FAILED"},{"id":"EID6eeb2069-0175-1000-2fc6-cd0773ec8f42","parent":{"ref":"EID6eeb1fe9-0175-1000-51c7-1cbc882edfbb"},"resultedFrom":{"ref":"EID15995736-59e8-4c5e-ba0a-bb0c23659a96"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"PASSED"},{"id":"EID6eeb2069-0175-1000-fb43-9e5ca929fa57","messages":{"message":{"ref":"TR.missingFeedRootElement","translationArguments":{"argument":[{"token":"element","$":"atom:feed"},{"token":"xpath","$":"/atom:feed"}]}}},"parent":{"ref":"EID6eeb1fe9-0175-1000-51c7-1cbc882edfbb"},"resultedFrom":{"ref":"EID1d15c470-afac-43ee-a42f-677acd4d2ea7"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"FAILED"},{"id":"EID6eeb2069-0175-1000-3906-2e2610ac974d","parent":{"ref":"EID6eeb1fe9-0175-1000-51c7-1cbc882edfbb"},"resultedFrom":{"ref":"EIDf22143da-6d29-44de-8723-b11e85e7b441"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"PASSED"}]},"attachments":{"attachment":[{"ref":"EID8d8b7322-bdb0-446e-81f9-d470a2941892"},{"ref":"EID777f7057-1fd2-4a36-999f-3694d1e4fc36"},{"ref":"EID861493c0-5057-4465-aaee-377ddad3854d"}]},"parent":{"ref":"EID6eeb1fe8-0175-1000-eb79-684f0aae3975"},"resultedFrom":{"ref":"EID76ab47a4-4bb4-494d-8f01-66088b6ef856"},"startTimestamp":"2020-10-28T11:15:04Z","duration":40,"status":"FAILED"}},"parent":{"ref":"EID6eeb0c19-0175-1000-3d0e-6db54933ccfd"},"resultedFrom":{"ref":"EID0eac5cf6-1464-47d2-acfe-ff4ad8290993"},"startTimestamp":"2020-10-28T11:15:04Z","duration":129,"status":"FAILED"}]},"parent":{"ref":"EID36b70879-9ccd-4c0b-b605-0294efe99035"},"resultedFrom":{"ref":"EID07c1c315-c45c-4dd5-8be3-6dd12604b337"},"startTimestamp":"2020-10-28T11:14:59Z","duration":5200,"status":"FAILED"},{"id":"EID6eeb2069-0175-1000-d89d-81ea754c9f44","testCaseResults":{"TestCaseResult":[{"id":"EID6eeb2069-0175-1000-c71d-90b4f97b690d","testStepResults":{"TestStepResult":{"id":"EID6eeb2069-0175-1000-bdd6-313cea380322","parent":{"ref":"EID6eeb2069-0175-1000-c71d-90b4f97b690d"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3713d57c-f2b6-4c66-819f-49c493039e5f.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EIDc7150cb1-fa7f-4589-9871-330bca1aa351"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb2069-0175-1000-9be3-e1d563f1b85a","testStepResults":{"TestStepResult":{"id":"EID6eeb2074-0175-1000-1dfd-b7bb8e0be4c3","parent":{"ref":"EID6eeb2069-0175-1000-9be3-e1d563f1b85a"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/1a9f56cc-8f12-434b-a67f-0cd96d60af91.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID2627cf68-632b-45bc-b53e-74edae092d3a"},"startTimestamp":"2020-10-28T11:15:04Z","duration":11,"status":"SKIPPED"},{"id":"EID6eeb2074-0175-1000-b041-454fb78c750b","testStepResults":{"TestStepResult":{"id":"EID6eeb2074-0175-1000-e32e-3320d7d48258","parent":{"ref":"EID6eeb2074-0175-1000-b041-454fb78c750b"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/568f86c7-2e5c-419d-ba8b-50afb405ecd9.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID458af16e-a708-4b83-96f2-f13ec03c6bfd"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb2075-0175-1000-518e-ae00267a8588","testStepResults":{"TestStepResult":{"id":"EID6eeb2075-0175-1000-ac35-3c7decb5e825","parent":{"ref":"EID6eeb2075-0175-1000-518e-ae00267a8588"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/703f1938-368b-4d87-8015-a91ba132f77f.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID4ab8b4e8-abd9-4c93-9fb4-ca1921cca478"},"startTimestamp":"2020-10-28T11:15:04Z","duration":8,"status":"SKIPPED"},{"id":"EID6eeb207d-0175-1000-3bac-187108f3169c","testStepResults":{"TestStepResult":{"id":"EID6eeb207d-0175-1000-ab7c-5d8174f0f673","parent":{"ref":"EID6eeb207d-0175-1000-3bac-187108f3169c"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/6a075205-f19c-428c-90b0-f84aae3f4f1e.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID34cb9ce5-899c-4f79-bfea-80166b6f6287"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb207d-0175-1000-e46d-4bc53a00948f","testStepResults":{"TestStepResult":{"id":"EID6eeb207d-0175-1000-7bad-15f9105e52cb","parent":{"ref":"EID6eeb207d-0175-1000-e46d-4bc53a00948f"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/3cd2b17d-7d70-4bb5-b793-152e3cc8a262.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID6b2a0d87-fca5-4e6d-ac49-3c338d08e10a"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"SKIPPED"},{"id":"EID6eeb207e-0175-1000-fc97-44d7aed9a173","testStepResults":{"TestStepResult":{"id":"EID6eeb207e-0175-1000-6b51-3598530ab860","parent":{"ref":"EID6eeb207e-0175-1000-fc97-44d7aed9a173"},"resultedFrom":{"href":"https://inspire.ec.europa.eu/validator//v2/TestSteps/66b6fc90-c345-4864-a512-508acc63ca2d.json"},"startTimestamp":"2020-10-28T11:15:04Z","duration":487,"status":"SKIPPED"}},"parent":{"ref":"EID6eeb2069-0175-1000-d89d-81ea754c9f44"},"resultedFrom":{"ref":"EID7369a02b-be8b-40fb-ae98-d16f93be2fa8"},"startTimestamp":"2020-10-28T11:15:04Z","duration":0,"status":"SKIPPED"}]},"parent":{"ref":"EID36b70879-9ccd-4c0b-b605-0294efe99035"},"resultedFrom":{"ref":"EIDc4154735-aa8a-40cb-9bbf-fba0ef78c7e2"},"startTimestamp":"2020-10-28T11:15:04Z","duration":21,"status":"SKIPPED"}]},"attachments":{"Attachment":[{"type":"GetParameter","id":"EIDe3021611-4cc9-4c7a-a5ac-befd1aa03bca","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID5f57b52b-2ce3-4b4f-bd0c-41cbc9ff9c3f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID5f57b52b-2ce3-4b4f-bd0c-41cbc9ff9c3f"}},{"type":"ServiceResponse","id":"EID1580bf22-518c-48d3-a0e2-200381246bba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID1580bf22-518c-48d3-a0e2-200381246bba"}},{"type":"ServiceResponse","id":"EIDfe8d0054-5a43-4ffb-82dd-9371934af52c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDfe8d0054-5a43-4ffb-82dd-9371934af52c"}},{"type":"Message","id":"EIDd0f79b92-34af-48ad-8c79-d135a74f5000","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd0f79b92-34af-48ad-8c79-d135a74f5000"}},{"type":"ServiceEndpoint","id":"EIDfba06a58-8d35-422a-aa13-53d5f4bca329","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID72604565-d368-4966-a117-122a9cbbf828","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID72604565-d368-4966-a117-122a9cbbf828"}},{"type":"ServiceResponse","id":"EID56785ba5-065b-41f6-8a40-939310c5f697","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID56785ba5-065b-41f6-8a40-939310c5f697"}},{"type":"GetParameter","id":"EID2df8a5c8-64ec-4eeb-be88-4929b8cf766a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDb5b9eed7-b747-4ab5-846e-2171f51aee5a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EIDd0191d0c-6ddd-4386-9b46-ac5fe165cac6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd0191d0c-6ddd-4386-9b46-ac5fe165cac6"}},{"type":"GetParameter","id":"EIDee08856d-23d6-470c-869e-2ae3d673c5f8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID4831291f-297b-4007-9e8d-4cc671e57308","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID8175052f-4d5d-42f4-99fa-46294134e894","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID8175052f-4d5d-42f4-99fa-46294134e894"}},{"type":"Error","id":"EID88924834-2996-4323-9a87-047deb73aa60","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID88924834-2996-4323-9a87-047deb73aa60"}},{"type":"Error","id":"EIDf039d238-0f35-4c4e-9535-49eccd9bd3db","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDf039d238-0f35-4c4e-9535-49eccd9bd3db"}},{"type":"LogFile","id":"EID098fa98a-aa19-407a-ba1f-3831465eb89a","label":"Log file","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID098fa98a-aa19-407a-ba1f-3831465eb89a"}},{"type":"ServiceResponse","id":"EIDc9941c17-ae81-41ea-83be-f54a221ba8ba","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDc9941c17-ae81-41ea-83be-f54a221ba8ba"}},{"type":"Message","id":"EID242fe444-fc5a-48c0-8c0f-d3c39e6a25fa","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID242fe444-fc5a-48c0-8c0f-d3c39e6a25fa"}},{"type":"Error","id":"EID468e1278-2bc1-42ec-8d74-368c57c2eeb9","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID468e1278-2bc1-42ec-8d74-368c57c2eeb9"}},{"type":"GetParameter","id":"EIDe5ae2eba-1c85-4d66-9a9c-602541668e5d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID1d5430a5-4e5a-4b9a-b7f5-ebb229a00e5a","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDd53c5f2a-1fdd-4366-9bec-4a532deb7771","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDf9233c6f-58db-46a3-bd35-2a236c01b42d","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDf9233c6f-58db-46a3-bd35-2a236c01b42d"}},{"type":"Message","id":"EID64ca8cc0-7c7a-4657-ae4a-7078a1055951","label":"Message.8","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID64ca8cc0-7c7a-4657-ae4a-7078a1055951"}},{"type":"GetParameter","id":"EID62f1500a-5a31-451e-9ad0-ed5c59ba7ab0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"GetParameter","id":"EIDb38f99bc-053c-4faf-a21f-f63331144016","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID0293ac76-3a0a-41a0-b2b4-8e12ce32bfbb","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDa2753827-7615-405b-bafb-224d74435512","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDa2753827-7615-405b-bafb-224d74435512"}},{"type":"GetParameter","id":"EID4ebeaf2d-8ccc-4fd6-bcd2-7a13c997659d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID896f04be-62d2-47c5-b9df-88ca6e059516","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID896f04be-62d2-47c5-b9df-88ca6e059516"}},{"type":"ServiceResponse","id":"EIDd8d3dcfe-10f4-4064-9709-ac9cab818c81","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd8d3dcfe-10f4-4064-9709-ac9cab818c81"}},{"type":"ServiceEndpoint","id":"EIDe0fc05ef-87e7-4b67-8480-3b073eb81df4","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EID770e88a5-2d4e-4ac0-ae04-ed5716d0b4e2","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID770e88a5-2d4e-4ac0-ae04-ed5716d0b4e2"}},{"type":"ServiceResponse","id":"EID0d4379ca-6d94-4524-b18d-90c5b4dc905c","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID0d4379ca-6d94-4524-b18d-90c5b4dc905c"}},{"type":"GetParameter","id":"EID861493c0-5057-4465-aaee-377ddad3854d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID117db465-4a18-4e2b-baf1-db5db93733d1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID96d44d48-3a42-4081-bf5c-c8e3cf28f116","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID96d44d48-3a42-4081-bf5c-c8e3cf28f116"}},{"type":"GetParameter","id":"EID78e69f9b-ba27-4f2c-a52f-46f231b3a11d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID5a6a1af8-2d5e-4fc1-a96c-8ba3b98b9e79","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID12f95b25-0ee5-4f2e-8774-3d95ea16e423","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID12f95b25-0ee5-4f2e-8774-3d95ea16e423"}},{"type":"ServiceEndpoint","id":"EIDe81b6e97-50df-4245-9dbb-4de6e016f099","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvYXRvbS9pbmRleC54bWw="},{"type":"ServiceResponse","id":"EID4eba6a9e-7503-45e3-b653-d3085ded8f61","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID4eba6a9e-7503-45e3-b653-d3085ded8f61"}},{"type":"ServiceEndpoint","id":"EIDd36aee1d-d822-4c0b-89d4-52674262f367","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EID27a265bf-0eb6-4279-acf3-78fa53af360d","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID27a265bf-0eb6-4279-acf3-78fa53af360d"}},{"type":"ServiceEndpoint","id":"EID8d8b7322-bdb0-446e-81f9-d470a2941892","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID834e574b-2ec8-43eb-b977-4e1725094acf","label":"Message.5","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID834e574b-2ec8-43eb-b977-4e1725094acf"}},{"type":"ServiceEndpoint","id":"EID13e28dad-e349-446a-9084-254c86ec3746","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID72f6668c-9dc3-413f-a16a-3b6908922e05","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID1f72babf-d645-4577-a658-a9375d295f7c","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID48324064-227c-48c4-89c4-f6f6c9fa3186","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"ServiceResponse","id":"EIDc234cb67-e807-4886-bb80-04868c1b0a93","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDc234cb67-e807-4886-bb80-04868c1b0a93"}},{"type":"ServiceResponse","id":"EIDa7e963d0-8faf-4071-8811-71128409a206","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDa7e963d0-8faf-4071-8811-71128409a206"}},{"type":"ServiceResponse","id":"EID3e5bebde-b6dd-40f3-9c22-a69fb24ed7dc","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID3e5bebde-b6dd-40f3-9c22-a69fb24ed7dc"}},{"type":"ServiceEndpoint","id":"EID84b64d26-8fde-4198-a7cb-df6886c55739","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID55b74484-bc0b-48a7-b54f-1642d14d6c8c","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID55b74484-bc0b-48a7-b54f-1642d14d6c8c"}},{"type":"Message","id":"EIDea634db8-8511-4326-b40b-61108971d041","label":"Message.7","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDea634db8-8511-4326-b40b-61108971d041"}},{"type":"GetParameter","id":"EIDf1e95064-2d72-4e2c-adcb-3d9d5222f599","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"ServiceResponse","id":"EIDed9a5f82-527c-4b42-8cef-c05613b03b81","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDed9a5f82-527c-4b42-8cef-c05613b03b81"}},{"type":"ServiceResponse","id":"EIDfce42df2-1632-47ac-a475-e7c0a46298c5","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDfce42df2-1632-47ac-a475-e7c0a46298c5"}},{"type":"Message","id":"EID13f82699-c4e5-4b54-b469-6d2ddefcc205","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID13f82699-c4e5-4b54-b469-6d2ddefcc205"}},{"type":"ServiceEndpoint","id":"EID2b0d1a81-0eb8-4d28-8ca5-62e2d3daee18","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID54e3f0d7-f615-4363-9ac8-b731ad45b6a9","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID54e3f0d7-f615-4363-9ac8-b731ad45b6a9"}},{"type":"ServiceEndpoint","id":"EID2fd46eee-b160-4c9c-8636-40eac6b13b0b","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID663c926c-59f3-4b4b-944e-ac34d8063a3e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID663c926c-59f3-4b4b-944e-ac34d8063a3e"}},{"type":"GetParameter","id":"EIDd9d36796-7cf3-483a-9801-e187fb575dab","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDee29504f-bd70-4652-8e37-12cbf566bab3","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDee29504f-bd70-4652-8e37-12cbf566bab3"}},{"type":"Message","id":"EID596c50e7-c063-4daa-b78e-04eb6affe2c3","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID596c50e7-c063-4daa-b78e-04eb6affe2c3"}},{"type":"ServiceEndpoint","id":"EIDedfd78eb-8121-4f02-b997-19d9afd7fef1","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1314cb21-7fa4-4d84-947f-a5d2495ae05d","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID1314cb21-7fa4-4d84-947f-a5d2495ae05d"}},{"type":"Error","id":"EID60497302-e94d-43d4-a8ce-95247858ee77","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID60497302-e94d-43d4-a8ce-95247858ee77"}},{"type":"ServiceResponse","id":"EID2e36f9da-397a-436b-a206-982d25782006","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID2e36f9da-397a-436b-a206-982d25782006"}},{"type":"ServiceEndpoint","id":"EIDcad7b49d-ea87-4714-a832-87515d75caaf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Error","id":"EID6d79f8af-6c3f-4df2-9117-b8af2c1c0cce","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID6d79f8af-6c3f-4df2-9117-b8af2c1c0cce"}},{"type":"ServiceEndpoint","id":"EIDa7cab846-879d-4300-b116-90c2d55aa105","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDeb4e3338-041c-49ea-baff-fd0e625a0630","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDeb4e3338-041c-49ea-baff-fd0e625a0630"}},{"type":"ServiceResponse","id":"EIDaefca810-bdb5-4e4d-a060-3d59d18e3a26","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDaefca810-bdb5-4e4d-a060-3d59d18e3a26"}},{"type":"Message","id":"EID6359a81d-7647-4e78-b723-f3d1a2e34407","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID6359a81d-7647-4e78-b723-f3d1a2e34407"}},{"type":"ServiceEndpoint","id":"EID398f58d4-816c-4847-84f6-36601d90eb7d","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID2adb8a56-b70d-4bae-b1e3-00e67652c176","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID2adb8a56-b70d-4bae-b1e3-00e67652c176"}},{"type":"GetParameter","id":"EID35d6f042-71c2-4a92-9065-55d57b9cd2a0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID8e89cede-727c-4df9-ad29-5f450b9c95b1","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EIDd799997d-4d01-4979-b482-645e7a60c57f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDe5f29d15-5ca3-43e0-ae0f-c2f43532e6c2","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDe5f29d15-5ca3-43e0-ae0f-c2f43532e6c2"}},{"type":"GetParameter","id":"EIDaca1cac3-48dd-4ce0-94f7-614e3ce70b5d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EIDd048b238-c4d4-4506-8ebb-90b2d1be28b6","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd048b238-c4d4-4506-8ebb-90b2d1be28b6"}},{"type":"ServiceEndpoint","id":"EIDb3eade06-336e-47b7-919a-0c235f453758","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID6894b7c2-5058-4987-88c0-1aadc4f3a4b8","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID01da8eaf-05ed-4302-a432-da524ecf0389","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID51b34d8b-c5c8-4b14-bab8-20b3d4f6cd5e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDc4a7b942-26f5-4b0b-805f-4ecc3cb939e0","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID5fcfdbd0-8667-4695-bff8-4078bb7ed66f","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID66ef14bc-005a-4f47-98fb-0daba15d4a60","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID66ef14bc-005a-4f47-98fb-0daba15d4a60"}},{"type":"GetParameter","id":"EID4db9b49b-d0d2-4f6c-a54c-30b42d783e0e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDf55b8590-7032-4232-8f12-e2cfd4c06faa","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"Message","id":"EID84dad6cc-d9af-47d1-a85c-f456e837c814","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID84dad6cc-d9af-47d1-a85c-f456e837c814"}},{"type":"ServiceResponse","id":"EIDf1d94230-1f88-4259-9ff2-5171b6d9a278","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDf1d94230-1f88-4259-9ff2-5171b6d9a278"}},{"type":"GetParameter","id":"EID24d18df8-72a7-4252-8153-0c40759916f3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZWRpYS10eXBlcw=="},{"type":"GetParameter","id":"EID8b34f86f-bebe-483f-b78e-1c0cea72be22","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EIDbfce5391-1c77-4867-a69e-71b60792c2ab","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDbfce5391-1c77-4867-a69e-71b60792c2ab"}},{"type":"ServiceEndpoint","id":"EIDf05a5a5b-77b0-4d9e-b759-0c4dde515fc5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID0f84bb8c-a0f4-4532-bcb9-736704bcc050","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EID7e70fbb6-e931-4614-9ca1-06201bfe4390","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID2d967229-34b0-4085-b9f0-b2bdc0a95238","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID1e5c601f-73d8-45df-a526-f310e19d6389","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID1e5c601f-73d8-45df-a526-f310e19d6389"}},{"type":"ServiceEndpoint","id":"EID55269d1a-03c5-4bb5-9a61-19d4a868a450","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDe0623b8a-493b-47d4-9291-358c87417fcf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EID777f7057-1fd2-4a36-999f-3694d1e4fc36","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID777f7057-1fd2-4a36-999f-3694d1e4fc36"}},{"type":"Message","id":"EID0a07e17e-1bc9-4004-99ad-294204f46e93","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID0a07e17e-1bc9-4004-99ad-294204f46e93"}},{"type":"ServiceResponse","id":"EID72afa1f0-75d0-4931-a425-e60ec686a313","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID72afa1f0-75d0-4931-a425-e60ec686a313"}},{"type":"Message","id":"EIDe9f2fd1c-d5ce-414a-8c09-47b70e8d862a","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDe9f2fd1c-d5ce-414a-8c09-47b70e8d862a"}},{"type":"ServiceEndpoint","id":"EIDacd3b33e-950d-46aa-a62b-0faff6e2fbc2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDf93d6721-349b-4b1d-9768-c45523b12096","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDf93d6721-349b-4b1d-9768-c45523b12096"}},{"type":"GetParameter","id":"EIDc839a7ca-efbb-4478-8d54-945ae39fafa3","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID040355fa-b66f-493a-b3e7-7ce9ca14c94e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EID42d09b7e-4c06-4a2e-acd6-177bd3ecde44","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDcda734a7-2c9d-4d61-b003-bf7b0114d01a","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDcda734a7-2c9d-4d61-b003-bf7b0114d01a"}},{"type":"ServiceResponse","id":"EID7cde0e26-b0ef-4653-b5c2-ab35e49e7453","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID7cde0e26-b0ef-4653-b5c2-ab35e49e7453"}},{"type":"GetParameter","id":"EIDb7ec1bdb-2dea-408c-9c9a-f81899f64aef","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID121c43f0-8d99-440c-a88b-da2c32fe8747","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceResponse","id":"EIDcb2ff163-63e2-403b-863b-2fb1282b1fbd","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDcb2ff163-63e2-403b-863b-2fb1282b1fbd"}},{"type":"ServiceEndpoint","id":"EIDa889e206-457f-4736-b650-bb959ec8ab77","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2FwcGxpY2F0aW9u"},{"type":"ServiceResponse","id":"EID0b1c8bf8-276e-4f87-a69d-9c1d2f586f48","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID0b1c8bf8-276e-4f87-a69d-9c1d2f586f48"}},{"type":"Error","id":"EIDc353d0dd-ccbe-4ce9-a217-cdd51afc3ef2","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDc353d0dd-ccbe-4ce9-a217-cdd51afc3ef2"}},{"type":"GetParameter","id":"EID8f6447b1-10af-48b8-8352-247ff73ee395","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDf59bf748-13ad-4c68-9b97-fab3e7556cfe","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly93d3cubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvZ2VvbmV0d29yay9vcGVuc2VhcmNoL2R1dC85ZmYxYTEzYy1kMWUwLTQxNTAtODUyMy05MWNiNDg5YWUxYTQvT3BlblNlYXJjaERlc2NyaXB0aW9uLnhtbA=="},{"type":"Message","id":"EID3036886c-8809-40c2-8487-2882d1763323","label":"Message.9","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID3036886c-8809-40c2-8487-2882d1763323"}},{"type":"Message","id":"EID876a1a72-a25c-4c1b-b618-a74425bebedd","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID876a1a72-a25c-4c1b-b618-a74425bebedd"}},{"type":"GetParameter","id":"EIDc2ce8411-0389-4ff7-b3f1-fa17f05a99ae","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Error","id":"EID1949003d-2847-4f30-9a6f-115e18e4e6ba","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID1949003d-2847-4f30-9a6f-115e18e4e6ba"}},{"type":"Message","id":"EIDd7c06981-c9a9-48bf-aceb-5dbb605a3850","label":"Message.4","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd7c06981-c9a9-48bf-aceb-5dbb605a3850"}},{"type":"ServiceEndpoint","id":"EID1d85a24d-4560-4814-9044-8d941ae8724e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EIDb63cbccc-a778-4995-adfb-e31e6437e1b2","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceResponse","id":"EIDd04ad80e-ae74-405a-a26f-31e393c068d6","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDd04ad80e-ae74-405a-a26f-31e393c068d6"}},{"type":"Message","id":"EID38d6c0fe-0791-405d-bb90-41785ae6f82f","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID38d6c0fe-0791-405d-bb90-41785ae6f82f"}},{"type":"Error","id":"EID05989eb0-a330-4c45-82a7-09cf93583533","label":"Error.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID05989eb0-a330-4c45-82a7-09cf93583533"}},{"type":"ServiceEndpoint","id":"EIDc4d394ec-10c8-4847-866c-67cfcd9ccf8e","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"ServiceEndpoint","id":"EID0909bba1-cbff-4e90-8b96-e228fb204f07","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL2ltYWdl"},{"type":"Message","id":"EID0abc67f8-45fd-4dc2-8a1e-a91cf8ba404d","label":"Message.2","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID0abc67f8-45fd-4dc2-8a1e-a91cf8ba404d"}},{"type":"Message","id":"EIDa4f037f5-e588-41bf-bc3d-91435a9ac462","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDa4f037f5-e588-41bf-bc3d-91435a9ac462"}},{"type":"ServiceResponse","id":"EID48bffdca-52c2-406b-b3d4-d86ef1df7860","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID48bffdca-52c2-406b-b3d4-d86ef1df7860"}},{"type":"ServiceResponse","id":"EIDbc3d7414-d476-43b4-8bd2-ea9092b7135e","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDbc3d7414-d476-43b4-8bd2-ea9092b7135e"}},{"type":"ServiceResponse","id":"EID00ec9d61-5a3b-4f14-86bb-df7b93d1121b","label":"Service Response","encoding":"UTF-8","mimeType":"application/atom+xml","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID00ec9d61-5a3b-4f14-86bb-df7b93d1121b"}},{"type":"Message","id":"EID3b421fc7-07dc-4e27-a8c3-bff6bd4f9c5e","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID3b421fc7-07dc-4e27-a8c3-bff6bd4f9c5e"}},{"type":"ServiceEndpoint","id":"EIDd23cc3e0-7695-4646-876f-efc9606fdbbf","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDfdfae4f6-0ca8-4c1d-9fc3-aaec92ba55ba","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID154ec4aa-2d39-4736-84c0-4cb9dc72e7a7","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID154ec4aa-2d39-4736-84c0-4cb9dc72e7a7"}},{"type":"ServiceResponse","id":"EID06132bf0-ef97-4783-bf55-ac8bf293a712","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID06132bf0-ef97-4783-bf55-ac8bf293a712"}},{"type":"GetParameter","id":"EIDbb68ecc5-2a72-4898-9543-c189bb4d7e1d","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"GetParameter","id":"EIDe4288941-9938-46d3-8f3f-f95b1f367b8e","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EIDb9dc29ca-683a-4bc2-8efb-f71212048921","label":"Message.3","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDb9dc29ca-683a-4bc2-8efb-f71212048921"}},{"type":"ServiceEndpoint","id":"EID14ab7da3-3f8c-4ff3-a162-fe69ddcfe0a3","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"Message","id":"EID0db7f827-a882-4dd1-a17a-2745315c26c0","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID0db7f827-a882-4dd1-a17a-2745315c26c0"}},{"type":"GetParameter","id":"EIDb32b42ca-8fa7-423a-8d12-91778cd3533b","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21lZGlhLXR5cGVzL3RleHQ="},{"type":"ServiceResponse","id":"EIDc801423c-b4fe-48b3-a6f1-1b24c516e294","label":"Service Response","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EIDc801423c-b4fe-48b3-a6f1-1b24c516e294"}},{"type":"Message","id":"EID6060442f-8172-4c79-8f94-54d1c17ff8b2","label":"Message.1","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID6060442f-8172-4c79-8f94-54d1c17ff8b2"}},{"type":"ServiceEndpoint","id":"EID76c3bd7c-2e8d-4542-b763-f1910eef8d24","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"ServiceEndpoint","id":"EID21f85ac5-69bf-45eb-9b4e-3ec65ab557b5","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"},{"type":"GetParameter","id":"EIDcd8ff62e-8d2c-4892-9bc1-398cdd055223","label":"Request Parameter","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cDovL2dlb2RhdGEubmF0aW9uYWFsZ2VvcmVnaXN0ZXIubmwvaW5zcGlyZV9wdl9wcy9hdG9tL2luc3BpcmVfcHZfcHMueG1s"},{"type":"Message","id":"EID593b7d74-01bf-4c0d-a33f-1081e5f6e71e","label":"Message.6","encoding":"UTF-8","mimeType":"text/plain","referencedData":{"href":"https://inspire.ec.europa.eu/validator//v2/TestTaskResults/EID36b70879-9ccd-4c0b-b605-0294efe99035/Attachments/EID593b7d74-01bf-4c0d-a33f-1081e5f6e71e"}},{"type":"ServiceEndpoint","id":"EID51561190-9249-41df-ad54-b7cf32a28354","label":"Endpoint","encoding":"UTF-8","mimeType":"text/plain","embeddedData":"aHR0cHM6Ly9nZW9kYXRhLm5hdGlvbmFhbGdlb3JlZ2lzdGVyLm5sL2F0b20vaW5kZXgueG1s"}]},"resultedFrom":{"ref":"EID11571c92-3940-4f42-a6cd-5e2b1c6f4d93"},"startTimestamp":"2020-10-28T11:14:51Z","duration":12661,"status":"FAILED"}}}}}
11:15:16.054 [print] EIDa893ba4d-0f6e-42ac-813b-1b19df10d586
11:15:16.054 [print] FAILED
11:15:16.054 [print] FAILED
11:15:16.054 [print] Conformance Class Download Service - Pre-defined Atom
11:15:16.054 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a893ba4d-0f6e-42ac-813b-1b19df10d586.json
11:15:16.054 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/a893ba4d-0f6e-42ac-813b-1b19df10d586.json
11:15:16.054 [print] https://inspire.ec.europa.eu/validator//v2/TestRuns/EIDa893ba4d-0f6e-42ac-813b-1b19df10d586/log
function(url, hyperlinkText)
{ var html = '<a href=\"' + url + '\" >' + hyperlinkText + '</a>';
karate.embed(html,'text/html'); }
11:15:16.061 [print] [ "TR.fallbackInfo", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers", "TR.missingLinkToMetadataRecordForDownloadService", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingOneFeedEntryWithDlFile", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingElement", "TR.fallbackInfo", "TR.missingFeedUpdatedInformation", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.missingLinkToRegistry", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingFeedRootElement", "TR.fallbackInfo", "TR.missingFeedRootElement" ]
11:15:16.061 [print] [ "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.fallbackInfo", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedRootElement", "TR.missingFeedUpdatedInformation", "TR.missingLinkToMetadataRecordForDownloadService", "TR.missingLinkToRegistry", "TR.missingOneFeedEntryWithDlFile", "TR.unexpectedHtml", "TR.uniqueDatasetIdentifiers" ]